<<< SSL hibák... még...Cryptonite előadásom >>>

Dióhéjban: Halott. Nagyon halott, és régóta. A vírusölők többnyire igen pocsék védelmet nyújtanak, és még maguk is kockázatot jelentenek. A vírusölő eredendően vesztes csatát vív, más módokon (pl. whitelisting) sokkal jobb eredményt érhetnénk el. Mégsem mondhatom ma nyugodt szívvel, hogy ne használjunk vírusölőt.

Mire jó a vírusölő?

A vírusvédelmi szoftverek vizsgálódnak - figyelik a számítógépünkön lévő fájlokat vagy a hálózati forgalmat - és vírusra, illetve valami "rosszra" utaló jelet keresnek. Hajdanán csak a futtatható fájlokat (exe, com, bat) kellett átnézniük, később a Word dokumentumokat is (mert valaki kitalálta, hogy doc fájlba is lehessen futtatható kódot tenni), manapság már szinte mindent figyelnek.

A vírusvédelmi szoftverek szinte mindenütt ott vannak (a Windows 8-ban már alapból is van valami efféle), egyre több és több, immár elképesztő mennyiségű erőforrást fogyasztanak, de cserébe... mit is érnek el?

A vírusok száma az egekbe szökött. (A továbbiakban az egyszerűség kedvéért nevezzünk vírusnak mindenféle rosszindulatú kódot, malware-t.) A Kaspersky 2012-es jelentése szerint akkor 1,5 milliárd vírus létezett, és minden nap 200 000 új vírus jelent meg. (Ez időközben rosszabb lett.) A vírusvédelmi cégek óriási erőforrásokkal próbálják követni a vírusok fejlődését (a vírusokat ma automatizmusok fedezik fel), de alig, illetve nem bírják tartani a lépést. A vírusvédelmi cégek nem spórolnak az erőforrásokkal, a miénkkel sem, szoftvereikkel bizony alaposan lelassítják gépeinket.

A sajtóban nemrég megjelent hírek szerint a világ egyik (vagy mindkét) fele évekkel ezelőtt hozzálátott, hogy feltörje a világ másik (vagy mindkét) felét, és ez sikerült is, különböző vírusaikkal és rosszindulatú kódjaikkal alaposan beépültek a másik (vagy mindkét) fél rendszereibe, és hosszú éveken át ott is maradtak, és bizonyára sok helyen ma is ott vannak. A közelmúltban kirobban malware botrányok mögött sok évvel ezelőtt végrehajtott támadások vannak, a támadások éveken át működtek, és - vírusvédelmi rendszere ide vagy oda - évekig senki nem vette észre őket. Érdekes módon, a vírusvédelmi cégek ügyesen beépítették a malware-botrányokat a marketingjükbe (vigyázz, jön az X ország, és feltör, de mi megvédünk), holott az egész ügy szerintem egy égés a vírusvédelmi piacnak.

Egy 2014-es Symantec bejelentés szerint a vírusölők a támadások 45%-át veszik észre. Ez az érték (amely egy cseppet sem lep meg) bizony igen siralmas, azt jelenti, hogy a vírusölő valószínűleg nem veszi észre a támadást. Látni fogjuk, hogy különösen az új, még élő támadásokat, és a kifejezetten ránk irányuló támadásokat nem.

Miért nem működnek rendesen a vírusölők?

  • Iparággá vált a malware-készítés, olyan iparággá, amelyben óriási pénzek mozognak, és jól képzett, specializálódott csapatok jelentek meg. Mára léteznek exploitokat kereső csapatok, a felhasználók eltérítésével és weboldalakra irányításával foglalkozó csapatok, botneteket kiépítő csapatok, és a tényleges támadásokat megvalósító csapatok, ezek között pedig különféle brókerek közvetítenek. Ráadásul ennek az iparágnak a kormányzatok (úgy tűnik, minden nagyobb ország kormányzata) is megrendelői, és látjuk, hogy a kormányzatoknak nem biztos, hogy az az érdeke, hogy minden számítógép biztonságos legyen.

  • Célzott vírusok - Míg a nagy tömegek ellen bevetett vírusokat (amik bankkártya-számokat lopnak vagy más módon csalnak ki pénzt a felhasználóból) előbb-utóbb észreveszi valaki, ha másról nem, arról hogy terjednek, ha egy vírus csak az adott célpontot fertőzi meg (mert kifejezetten annál a vállalatnál akar ipari kémkedni), és nem terjed széles körben, sokkal kisebb a lebukás kockázata. A célzott vírusok gyakran el sem jutnak a vírusvédelmi cégekig.

    A vírusvédelmi rendszerek a régi, ismert vírusokkal szemben nyújtanak védelmet, de sokkal kevésbé védenek az új vírusokkal szemben (akik most akarják ellopni a pénzünket), és sokkal kevésbé védenek a célzott támadások ellen, amikor valaki igazán fel akar törni bennünket.

  • Az új vírusokat nehéz felismerni, és ez mindig is így lesz. Egy magára valamit is adó vírusíró nyilván beszerzi a legfrissebb vírusölő szoftvereket, kipróbálja rajtuk a frissen fejlesztett vírusát, és addig csiszolja, amíg át nem megy a tesztjeiken. A vírusölő - heurisztikus módszereivel - elvileg ismeretlen vírust is megtalálhatna, de profi vírusíró nem ad ki ilyen vírust.

  • Jogi ügyek - Időnként viták merülnek fel arról, hogy mi minősül rosszindulatú kódnak. Az adware/spyware gyártók szoktak úgy érvelni, hogy ők igenis legális alkalmazásokat gyártanak, és az alkalmazásért cserébe a felhasználó reklámokat kap vagy adatokat szolgáltat. Némi pereskedést követően időnként a vírusölő hódol be, és letesz az adott szoftver felismeréséről.

Mi az, ami viszont segít a vírusok ellen?

  1. Whitelisting - Miért akarjuk felismerni a vírusokat? Sokkal könnyebb volna a jóindulatú szoftvereket felismerni, és minden másnak megtiltani, hogy fusson. Az én gépemen az oprendszer mellett van böngésző, van levelező, van Office (Word/Excel/Powerpoint), néhány kisebb szoftver (putty, text editor, jelszókezelő), és néhány játék. Ha futtatni akarok valamit, miért azt próbáljuk kitalálni, hogy az épp a sok milliárd vírus egyike-e, miért nem azt nézzük meg, hogy az 1-2 tucat jó szoftver között van-e. Sokkal könnyebb volna. (A Windowsban pl. az Applocker nyújtana ilyen funkciót.)

    A default permit vagy default accept (mindent szabad, ami nem tilos) leginkább semmi jóra nem vezet az IT biztonság területén. Sokkal nehezebb kitalálni, hogy hányféle rossz képzelhető el, mint hogy felsoroljuk azt a néhány célt, amire egy informatikai rendszert terveztek.

    (A whitelisting sem könnyű dolog. Pl. össze kell hangolni vele, hogy manapság minden szoftver frissíti magát. A jelenleg elérhető eszközökkel nem könnyű megbízhatóan belőni. Itt olvasható egy pro-kontra érvelés (Schenier-Ranum) a whitelisting-gel kapcsolatban. Schneier érvelése itt is elérhető.)

  2. Biztonsági policy kikényszerítése - Vannak dolgok, amiket tisztességes szoftver nem akarhat megcsinálni. Miért telepítenénk olyan alkalmazást, amely az operendszer alá rootkit-ként beépül, vagy keyloggerként elfogja a billentyűleütéseket. Az ilyen nyilvánvalóan rossz dolgokat miért nem tiltja alapból az oprendszerek biztonsági policy-je?

    Itt felhívnám a figyelmet Buherátor előadására a 2013-as Hactivity-n. Néhány ilyen nyilvánvalóan rossz dolgot próbált ki, és tesztelt több vírusölőn. Az eredmény igen-igen siralmas volt. Ismert, nagy vírusvédelmi cégek termékeit vizsgálta, és sok közülük rettentően leszerepelt. Nem arról volt szó, hogy nem tudtak mit kezdeni a vadonatúj high-tech vírusokkal, hanem arról, hogy ismert rossz viselkedést, néhány soros keyloggert nem vettek észre. (Ez egy másik kritikus írás Buherátortól.)

  3. Menedzselt platformok - Vannak platformok, ahol a fentieket következetesen kikényszerítik, ilyen pl. az iOS és az Android. E platformokon sokkal kisebb a felhasználó szabadsága, de cserébe úgy tűnik, elég szilárd biztonságot lehet teremteni. A 2013-as Hactivity-n Charlie Miller arról beszélt, hogy mindössze 4-5 iOS malware létezik "in the wild", míg androidos néhány százszor ennyi, Windowsra pedig sok-sok-sok nagyságrenddel több. A menedzselt platformokon kikényszeríthető, hogy csak meghatározott személyek által aláírt kódot lehessen futtatni, illetve hogy csak meghatározott helyről lehessen telepíteni. Ez láthatóan működik. (És láthatóan nagy különbség van az iOS és az Android biztonsági szintje között, ahol az előző esetén a kódaláírás kérdését sokkal szigorúbban fogják.)

    Igen, ez kisebb szabadságot jelent, de nem az átlagfelhasználót korlátozza, hanem csak néhány mélyen szakmabélit (aki úgyis rootolja a telefonját).

  4. Némi józan ész:

    • Ha nincs rá szükséged, ne töltsd le.
    • Ha nem tudod, mi az, ne futtasd le.
    • Ha nem kell az alkalmazás, ne telepítsd.
    • Ha nem kell a funkció, kapcsold ki.
    • Ha nem kell neki jog, ne adj neki.
    • ...

    Mindez meghökkentően sok dolgot megfog. Igaz, ehhez - a fentiekkel szemben - a felhasználóra is szükség van, és abba nem bízhatunk, hogy mindenki biztonsági szakértőként gondolkodjon. A vírusok problémáját a technológiának kell megoldania.

Mi lesz a vírusölőkkel?

A Symantec pár hónapja bejelentette, hogy a vírusölő halott. Ezt persze arra értette, hogy a hagyományos, signature-alapú vírusölőt már nem lehet eladni, így az üzletileg halott.

A 2013-as ITBN-en is mindegyik vírusvédelmi cég prezentációjában elhangzott valami hasonló: "Vannak, akik azt mondják, hogy a hagyományos, signature-alapú antivírusnak befellegzett, de ez nem igaz. Pontosabban, igaz ugyan, de ... [és itt valamilyen érvelés következik arról, hogy ők valójában sokkal többet nyújtanak, mint antivírust]."

Tény, hogy minden nagy vírusölő cég új funkciókkal is próbálja felvértezni magát. Tartalmaznak URL szűrést, személyi tűzfalat, whitelisting kezdeményeket, biztonsági policy-ket stb, és azt állítják magukról, hogy már régóta többek egy signature-alapú ellenőrzőnél.

De azért egy vírusölő csak nem árt, ugye?

Ez sajnos nem ilyen egyszerű, néha sajnos ártalmas is lehet. Ez a kutatás épp arról számol be (részletes eredmények itt), hogy a vírusölők bizony hemzsegnek a súlyos biztonsági hibákról, és gyakran a vírusölőn keresztül a legkönnyebb feltörni valamit. A következő fő okokat sorolja fel:

  • A vírusölő gyakran rendszergazdai jogokkal fut (pl. azért, mert az oprendszer mélyén kell, hogy turkáljon).

  • A vírusölő sokszor nem menedzselt nyelveken (C, C++) készül, hogy gyors lehessen, de ebből adódóan össze-vissza lehet címezni a memóriát.

  • A vírusölő természetéből adódóan parsereket tartalmaz, sok különböző fájlformátumot kell olvasnia, értelmeznie. (Ráadásul, ezt jobban kell csinálnia, mint a gyártónak, a hibás fájlokkal is kell kezdenie valamit.) A C/C++ nyelven írt parser melegágya a buffer overflow hibáknak.

  • A vírusölő kapcsolatot tart a külvilággal. Minden bejövő információ keresztül megy rajta (így könnyű megcélozni), és kapcsolatot tart a központjával, frissíti magát (néhány ráadásul csak sima http-n keresztül, aláíratlan frissítésekkel) stb.

  • A kutató megmutatta, hogy nagyon sok vírusölőt trehány módon, a mai biztonságos fejlesztési gyakorlatok mellőzésével írnak/fordítanak, mintha fel sem merülne a készítőben, hogy az ő szoftvereik is támadási felületet jelent.

A kutató két hónapot fordított a munkára, 17 vírusölőt vizsgált, és ennyi idő alatt 14-ben súlyos hibákat talált. Nem csak a garázscégek eszközeit, hanem a nagy cégek termékeit is ízekre szedi. Nagyon érdekes olvasmány. Sajnos.

Akkor ne használjak vírusölőt?

A mezei felhasználó számára még mindig az a legjobb tanács: használj vírusölőt, tartsd frissen az adatbázisát stb. Hátha olyan támadást kap, amit épp megfog a vírusölője. Felelőtlenség volna azt mondani, hogy nincs szükség vírusölőre, és számára a whitelisting eszközök még nem jelentenek reális alternatívát.

Nagyobb rendszerben alaposan végig kell gondolni, hogy mi ellen akarunk védekezni, és hol és milyen módon szűrünk a vírusokra. Nem mindig, és nem mindenhol éri meg kinyitni egy rendszert és naponta frissíteni a vírusölőt, cserébe az általa nyújtott, erősen megkérdőjelezhető szintű védelemért. A vírusölő nem a tökéletes védelem záloga, és butaság azt mondani, hogy ha nincs vírusölő, nincs biztonság. Vakon hinni bennük szintén butaság.

Nem tudom, merre fejlődik majd a világ, de remélem, nem abba, hogy még több erőforrással még több vírust próbáljunk meg felismerni. Ez az út sehova sem vezet.

Szerencsére vannak biztató kezdeményezések is.

 

 

 
Ez az én személyes honlapom, amit itt írok, az az én saját, személyes véleményem, nem feltétlenül egyezik a munkahelyem véleményével. A blogomban szereplő tartalom a Creative Commons CC BY licenc szerint (azaz a szerző és a forrás megnevezésével) szabadon felhasználható.