Hogyan működik a vírusirtó

Sokszor találkozunk a neten olyan kritikákkal, hogy egyik, vagy másik vírusirtó “rossz”, vagy épp “tökéletes”, de vajon mi alapján ítéljük meg őket? Ahhoz, hogy korrekt ítéletet hozhassunk róluk, előbb ismerjük meg hogyan működnek, de legalábbis legyünk tisztában az alapfogalmakkal!
Vegyük tehát sorra, milyen arzenállal vonulnak fel a biztonsági programok, hogyan és milyen eszközökkel próbálják felderíteni és megakadályozni a kártevőket.
Vírusdefiníciós adatbázis
Arról már írtunk korábban, hogy mik is azok a vírusírtók, de vajon hogyan ismeri fel őket a vírusirtó? Mivel a vírus (vagy egyéb kártevő) is többnyire csak egy programkód, ami valahol egy fájlban (vagy épp a memóriában) tárolódik, egyszerűen csak meg kell vizsgálni a tartalmát rosszindulatú kódsorok után kutatva. Ahogy mi egy szövegszerkesztőben rákereshetünk például a “vírus” szóra, az antivírus programok hasonló módon keresnek a fájlokban rosszindulatú kódokat rejtő karaktersorozatokra. Ahhoz, hogy felismerjék mik a kártékony kódsorok, úgynevezett vírusdefiníciós adatbázist használnak, ami nem más, mint egy nyilvántartás az ismert (már felfedezett) rosszindulatú kódokról. Lényegében tehát a vírusirtó végigpásztázza a fájlokat és egyezést keres bennük, a listájában található kódokkal és ha talál egyezést, akkor jelez, hogy kapás van.
Ez a vírusdefiníciós lista, vagy adatbázis alapú keresés a legegyszerűbb és legelterjedtebb módszer, de természetesen nem az egyetlen. A módszer hátránya, hogy gyakorlatilag lehetetlen olyan adatbázist készíteni, ami minden kártékony kódot tartalmaz, így 100%-os hatásfok nem érhető el vele. Az adatbázis mérete is kritikus szempont, ugyanis a túlzottan nagy adatmennyiség kezelése a rendszer erőforrásait emészti fel (tipikusan a memóriát), a túl kicsi adatbázis pedig a keresési hatékonyság rovására megy. Rendszerint úgy egyensúlyoznak a biztonsági programok e két véglet között, hogy a leggyakoribb, legveszélyesebb, vagy legújabb kártevőket tartják az adatbázisban.
A felhő alapú vírusirtók itt egy lépéssel tovább menve, nem a gépünkön, hanem egy távoli szerveren tartják az adatbázisukat, így leveszik a terhet a gépünkről és nagyobb listával is dolgozhatnak, ráadásul nekik nem kell óránként, vagy naponta a felhasználók gépeire küldözgetni a legfrissebb listákat (frissítéseket), hanem azonnal a legújabb adatokkal dolgozhatnak. Tehát, úgy tűnik hogy a felhős víruskergetők lepéselőnyben vannak, de fontos megjegyezni, hogy csak akkor, ha élő internetkapcsolatunk van! Egy offline gépen egy csak-felhős víruskeresés problémás.
Heurisztika
Az előző módszerrel ellentétben a heurisztika, nem előre definiált kódsorokat keres, hanem a programok viselkedése alapján próbálja felismerni a rosszindulatú folyamatokat. Ha például egy program megpróbálja önmagát lemásolgatni, vagy szokatlan módon módosítgatná a rendszerfájlokat, azzal nyomban felkelti a vírusirtó figyelmét és szerencsés esetben blokkolásra kerül. Sajnos azonban az ilyen viselkedésminták definiálása nem egyszerű dolog, emiatt gyakran félre is értik a túl szigorú vírusirtók az egyes alkalmazások tevékenységeit és ilyenkor hamis riasztást produkálnak. A másik véglet pedig, ha túl engedékeny a heurisztika – ebben az esetben a malware-ek nyernek értelemszerűen.
Fals Pozitív?
Annak ellenére, hogy a biztonsági programok fejlesztői mindent elkövetnek az adatbázisok és viselkedésminták optimizálásakor, elkerülhetetlen módon mindig akad olyan eset, amikor egy ártatlan kódot bélyegeznek kártékonynak. Felhasználóként, ha nem vagyunk biztosak egy vírusriasztás hitelességében, érdemes a VírusTotal, vagy egyéb hasonló szolgáltatást igénybe venni, ahol több más víruskergető eredményével is összevethetjük a találatokat. A gond csak az ilyenkor, hogy itt már mi döntünk, és nem a vírusirtónk és bizony mi felhasználók sokkal gyakrabban hozunk téves döntést, mint a választott védelmi programunk. Sok felhasználó akkor sem riad vissza egy-egy kulcsgenerátor használatától, ha az VirusTotal-on 10 riasztást kapott a 40 vizsgálatból – mondván: csak az (általa) ismeretlen, cuccok riasztottak rá.
Időzítés
Pro-aktív, on-access, realtime, miegymás… a lényeg az időzítés! Egyáltalán nem mindegy mikor lép közbe a vírusirtó, megvárja míg futtatni akarjuk a letöltött alkalmazást, vagy már magát a letöltést is megakadályozza, ha gyanús fájlt észlel. A különböző víruskergetők, különböző taktikákat alkalmaznak, vagy épp többet is egyszerre. A legtöbbjük rendelkezik valamilyen böngészőbe épülő, vagy tűzfalas megoldással, ami már a letöltőoldal linkje alapján is blokkolhat, ha az szerepel a feketelistáján. Gyakori eljárás még, hogy a letöltött fájlok is azonnal ellenőrzésre kerülnek automatikusan.
Az on-access, vagy realtime (valós idejű) védelem, a fájl megnyitásakor végzi el az ellenőrzést, tehát, amikor egy fájlra kattintunk, az nem rögtön nyílik meg, hanem először átvizsgálásra kerül. Ebből mi jó esetben semmit nem veszünk észre, mert nagyon gyorsan történik, kivéve persze, ha fennakad a szűrőn a fájl.
Mindezek lényege, hogy a vírusirtó nem csak úgy képes elkapni a malware-eket, ha kézzel (vagy időzítve) elindítjuk a keresést, hanem képes folyamatosan figyelni a háttérben, így megelőzve a bajt.
Sandbox
A sandbox (homokozó) is számos biztonsági program beépített funkciója ma már. Ez nem más, mint egy elkülönített terület, ahol kedvünkre játszadozhatunk a kétes eredetű alkalmazásokkal, mert minden ami a sandbox-on belül történik ott is marad, a rendszert, vagy a fájljainkat nem érik el (ill. nem módosíthatják) az itt futó esetlegesen kártékony kódok. Ez az elmélet legalábbis. Gyakorlatilag a sandbox sem nyújt tökéletes védelmet, mert a karantén nem 100%-os, időről-időre napvilágot látnak olyan malware-ek, amik sikeresen ki tudnak szökni onnan, tehát bánjunk ezzel is óvatosan!
Eredményesség
Általánosságban igaz, hogy minél több rétegűbb, összetettebb védelmi megoldást érdemes használni, hogy az átfedések segítségével befoltozzuk az egyes elemek réseit. Ha csak adatbázis alapú védelmet használunk, a legújabb (zero-day) kártevők, amik még nem kerültek be az adatbázisba, átbújhatnak a résen, de egy heurisztikus keresés már elkaphatja ezeket is. Rajtunk áll, mennyit vagyunk képesek és hajlandóak áldozni a rendszerünk erőforrásaiból az adataink védelmére, de a spórolás nagyon sok fejfájást okozhat!
Az egyes vírusirtó alkalmazások hatékonyságát értékelni nem egyszerű feladat, hiszen rengeteg kritériumot állíthatunk fel, ráadásul tudásban, összetettségben, funkcionalitásban is akkora különbségek lehetnek az egyes termékek között, hogy az összehasonlításnak csak külön kategóriánkét van értelme. Szerencsére léteznek erre szakosodott, hozzáértő oldalak, ahol tájékozódhatunk, és bár az itt közölt teszteredményeket sem vehetjük mindig készpénznek, még mindig inkább bízzunk ezekben, mint a különböző fórumok kommenthuszáraiban! Az av-test.org, vagy az av-comparatives.org jó kiindulási alapot jelenthetnek biztonsági program választásakor.
Hogyan működik a tört, carak-elt vírusirtó?
Nem tudjuk. Te sem. Senki sem, csak az aki a törést készítette. Amikor egy crack-et, vagy patch-et telepítesz, hogy megúszd a fizetést egy vírusirtóért, azzal magát a vírusirtót és annak fájljait, kódját módosítod. Mivel fogalmunk sincs milyen módosításokat eszközölnek ezek, nem tudhatjuk, hogy valóban csak ártalmatlanul “jóárasítja” a programot, vagy emellett még különböző hátsóajtókat is nyit a gépünkön. Tehát, amikor tört vírusirtót telepítesz, akkor lényegében a törést készítő cracker kezébe adod a teljes géped, az összes fájlod, az összes jelszavad, minden családi fotód, a legtitkosabb dokumentumaidat, e-mailjeidet, még akár az élő webkameraképed is! Megéri? Nem lenne jobb inkább ingyenes alkalmazást használni?
Szerencsére ma már sok, valóban jó, ingyenes alternatíva közül választhatunk, közülük jelenleg a Panda Cloud Antivirus és a 360 Internet Security megoldásait javasoljuk. Előbbi régóta bizonyította rátermettségét és egyszerűsége mellett meggyőzően és szerény erőforrásigénnyel védi a gépünket, utóbbi társa egyelőre még most bontogatja szárnyait, de máris kiemelkedő eredményeséggel és bővebb funkcionalitással hívja fel magára a figyelmet.