Soha nem látott vita bontakozott ki, az "Illúziók és tévhitek a vírusirtókról" című szakértői anyagunk kapcsán, amely hatására Leitold Ferenc a Checkvir tesztlabor vezetője tollat ragadott és egy cikkben adja most közre a biztonsági programok teszteléséről szerzett tapasztalatait.
A kártevők elleni védekező eszközök az informatikai eszközök egy speciális csoportját képviselik. Lehetnek szoftver és hardver megoldások egyaránt, azonban tudnunk kell, hogy egy ilyen célú hardver eszköz (elsősorban tűzfalak) belül szoftver elemekre épül. Mostani írásunkban elsősorban a szoftveres eszközökkel foglalkozunk - a továbbiakban vírusvédelmi, illetve antivírus programoknak, szoftvereknek hívjuk őket -, de természetesen a megállapítások, módszerek többsége a hardver eszközökre is megfelelően vonatkozik. A vírusvédelmek tesztelése, vizsgálata a szoftvertesztelésnek egy teljesen különálló területévé nőtte ki magát, ez az "általános" szoftverteszteléshez képest egy teljesen más terület. Ezen a területen ugyanis számos speciális körülmény nehezíti a tesztelést.
Egyrészt talán a vírusvédelmeken kívül nincs még egy olyan szoftverterület, ahol olyan gyorsan jelennének meg az új verziók. Ennek oka, hogy - mint matematikailag is bizonyított - általános vírusvédelem nem létezhet. A vírusvédelmek gyártói így az ismert kártevőkkel foglalkoznak elsősorban, ellenük próbálnak 100 százalékos védelmet biztosítani. Természetesen voltak és vannak is próbálkozások, kísérletek arra vonatkozóan, hogy bizonyos módszerekkel ismeretlen kártevőket is azonosítsanak. De mitől lesz egy kártevő ismert? Az "ismertség" itt arra vonatkozik, hogy a vírusvédelem gyártója a konkrét kártevő (vagy esetleg egy csoportjuk) ismeretében készíti el a kártevő ellenszerét (felismerési és eltávolítási algoritmusát). Így viszont az újabb és újabb kártevők megjelenésével újabb és újabb verziójú védelmeket kell kibocsátani. Létezik olyan gyártó, mely átlagosan 5-6 percenként (!) ad ki egy új verziót. Nyilvánvaló, hogy ennek még csak a követése (minden verzió letöltése és archiválása) is komoly feladat.
A gyakorlatilag folyamatosan megjelenő új verziók mellett a vírusvédelmek esetén egyre inkább megjelenik a "cloud technology" fogalom, ami azt jelenti, hogy a védelmek a folyamatos internetes kapcsolat révén a gyártó által felállított központtól segítséget kérve hozzák meg döntéseiket. Ez azt jelenti, hogy a védelem működése különböző időpontokban más és más lehet.
További lényeges különbséget jelent, hogy a kártevők nagy száma miatt rengeteg tesztkörnyezetet feltételezhetnénk. Tegyük fel ugyanis, hogy létezik 10 millió kártevő. Elméletileg (de hangsúlyosan csak elméletileg) egy kártevő vagy jelen van egy tesztelési környezetben vagy nem, azaz így 210 millió darab tesztelési környezetet képzelhetnénk el. Ez természetesen kezelhetetlen, de még akkor is gondot okoz a mennyiségi probléma, ha csak azokat az eseteket vesszük alapul, ahol csak egyetlen kártevő van jelen (ez nyilván 10 millió a példa szerint).
Nagyon nehéz definiálni, hogy egy vírusvédelmi szoftvernek milyen elvárásoknak kell megfelelnie, mi az a működés, ami a vírusvédelem szempontjából korrekt, megbízható működésnek tekinthető. Az sem egyértelmű - és ebben is vannak különbségek a gyártók között -, hogy mely programokat tekintünk kártevőknek és melyeket nem. Sok védelem ugyanis olyan programokat is kártevőként azonosít, melyek esetén kérdéses a megítélés. Például egyes védelmek valamely szoftverhez licenckulcsot generáló ún. feltörő (crack) programot is kártevőként azonosítanak.
A vírusvédelmek tesztelését az AMTSO segíti
Az AMTSO-t (Anti-Malware Testing Standards Organization) 2008-ban alapították elsősorban kártevők elleni védelmi szoftvereket fejlesztők, de a munkában számos tesztelést végző szervezet mellett néhány magánszemély is részt vesz. A szervezetnek jelenleg 38 tagja van, köztük természetesen valamennyi jelentős fejlesztő. A hazai színeket a Virusbuster mellett a Checkvir tesztlabort üzemeltető Veszprog Kft. képviseli. Az elsődleges célkitűzések között szerepel, hogy a vírus- és kártevővédelmi szoftverek tesztelésére vonatkozóan ajánlásokat, oktatási anyagokat dolgozzon ki, tesztelést segítő eszközöket bocsásson rendelkezésre , illetve az érintett felek között fórumot biztosítson.
Mit és hogyan érdemes tesztelni?
Vírusvédelmi rendszerek esetén a fent vázolt problémák miatt elképzelhetetlen, hogy a szoftver minden ágát teszteljük. Bizonyos szempontokat - melyek megfelelnek az AMTSO ajánlásainak is - azonban célszerű betartani. A tesztelési eljárásnak célszerűen nyíltnak és átláthatónak kell lennie. Ez vonatkozik egyrészt a tesztelési metódus és a konkrét tesztelési folyamatok átláthatóságára is. A nyílt és átláthatóság követelménye nem feltétlenül jelenti a reprodukálhatóság biztosítását. Ennek legfőbb oka a dinamikus internethasználat, mely mind a védelmek (fenti 2. probléma), mind a kártevők részéről egyaránt jelen van. A nyíltságot és átláthatóságot azonban a dokumentáltság szintjének emelésével javíthatjuk. Ehhez célszerű a tesztelt állapotot (installált rendszert), a naplóállományokat, hálózati forgalmat elmenteni, illetve a problémás szituációkról képet és videót is rögzíteni.
Mint azt a fenti problémák esetén láthattuk, a vírusvédelmek valamennyi folyamatát nem tesztelhetjük. Bizonyos szempontokat vizsgálhatunk "csak", célszerűen azokat, melyek a legfontosabbak a felhasználó szempontjából:
1. Hatékonyság, azaz a védelem milyen biztonsági szintet tud biztosítani (kártevők korrekt ismerete - felismerés, eltávolítás). Ez a szempont kifejezetten az antivírus képességeire vonatkozik: Milyen kártevők elleni védelemre készítették fel a védelmet? Milyen területeket képes vizsgálni? Ide tartoznak a különböző diszkterületek vizsgálati lehetőségei, fájlformátumok, tömörítők és egyéb fájlok tárolására használható formátumok vizsgálati lehetősége. Ebbe a csoportba tartozik természetesen a téves riasztások tesztelése is.
2. Megbízhatóság (stabil, hibamentes működés). Képes-e a védelem úgy működni, hogy folyamatosan ellássa feladatát. A stabilitás vizsgálatánál a tesztelés során hangsúlyozottan kell törekedni a reprodukálhatóságra.
3. Teljesítmény (sebesség, számítógép lassítása, bootolás időigénye). Általában a teljesítménnyel szembeni felhasználói elvárás akkor jelenik meg, ha védelem képes hibamentesen megfelelő biztonsági szintet nyújtani. Nem véletlen, hogy az AMTSO alapelvei között szerepel az, hogy a hatékonyságot és a teljesítményt együtt, kiegyensúlyozottan kell tesztelni. Ennek oka az, hogy ha például egy védelem nem vizsgál meg bizonyos dolgokat, nyilván gyorsabban képes végrehajtani feladatát. De hiába gyorsabb, ha nem véd bizonyos problémákkal szemben.
Vírusvédelmi rendszerek tesztelése esetén - a kártevők ismeretének vizsgálata során - kulcskérdés, hogy milyen és mennyi mintát használunk. A minőségre vonatkozóan az AMTSO május elején fogadott el egy dokumentumot, mely a használt minták validálásával foglalkozik. E szerint a tesztelés során olyan kártevő mintákat kell alkalmazni, melyek egyrészt működőképes kódot tartalmaznak, illetve valóban képesek a kártékony tevékenységet végrehajtani. Ennek biztosítása/bizonyítása nem egyszerű feladat. Mint az a fenti problémák között is szerepelt, nem egyértelmű, hogy mi tekinthető kártevőnek és mi nem. Hasonlóképpen számos védelmi rendszer olyan állományt is kártevőként azonosít, amelyet semmilyen környezetben nem lehet futóképessé tenni, azaz végrehajtani, például tönkretett futtatható állományok. A tesztelés szempontjából a mennyiség is nagyon fontos kérdés, azonban a használt minták mennyiségét (mint a tesztelési metódus egy lényeges elemét) a tesztelés céljának kell meghatároznia.
A tesztelés kiterjedhet egyrészt a létező kártevők összességére. Ebben az esetben nyilván milliós nagyságrendű készlettel lehetne statisztikailag helyes következtetésre jutni (itt viszont a korrekt validálás okozna nagy problémát). A szűkítésre két lehetőség kínálkozik: egyrészt vizsgálhatunk bizonyos típusú kártevőket, amivel egy adott területre fókuszálva vonhatunk le következtetéseket a vírusvédelmek tudására vonatkozóan. Másrészt figyelembe vehetjük az elterjedtségi adatokat is. A létező kártevők mennyiségéhez képest az elterjedt kártevők száma több nagyságrenddel kevesebb. Ezen kártevők körében már statisztikailag is helyes következtetést vonhatunk le néhány ezres mintakészlettel. Felmerülhet még továbbá olyan vizsgálatnak a lehetősége is, ahol nem az a cél, hogy a felismerési képesség alapján rangsoroljuk a védelmeket, hanem hogy egy-egy konkrét biztonsági probléma kezelésére következtessünk, azaz például válaszoljunk olyan kérdésekre, amelyek arra terjednek ki, hogy valamely felmerült probléma jelent-e biztonsági kockázatot. Ilyen esetben néhány minta is elegendő lehet a vizsgálathoz.
A védelmi rendszerek számos tevékenységgel azonosíthatnak egy kártevőt. Amennyiben a felhasználó indítja el interaktív módon a vizsgálatot, on-demand eljárásról beszélünk. Az azonosítást a folyamatosan figyelő ún. on-access védelem is megteheti. Ez utóbbi felfedezheti a kártevőket a fájlhoz történő hozzáféréskor, de előfordulhat, hogy bizonyos kártevőket a védelem csak akkor képes azonosítani és persze blokkolni, ha azokat elindítjuk. Ez utóbbi - proaktívnak hívott - működés egyre gyakoribb a vírusvédelmek esetén. A tesztelési folyamat során tehát célszerű proaktív vizsgálatot végezni. A módszer természetéből adódóan ezt viszont csak úgy szabad elvégezni, ha az operációs rendszer bootokását követően minden egyes alkalommal csak egyetlen kártevőpéldánnyal tesztelünk. Az ily módon történő tesztelés ezért rendkívül időigényes.
Gondoljunk csak bele: Ha egy számítógépet használunk egy védelmi rendszerhez és egyetlen kártevő tesztelése 5 percet vesz igénybe - amibe beletartozik az eredeti, biztosan vírusmentes operációs rendszer visszaállítása is -, akkor egymillió minta teszteléséhez mintegy 9 és fél évre lenne szükség. Proaktív tesztet mindezek alapján tehát nagy mennyiségű mintán belátható időn belül nem végezhetünk. További nehézséget jelent, hogy egyes kártevők az azonosításukhoz szükséges tevékenységeket esetenként internetes kapcsolat révén biztosítják. Ebben az esetben viszont bonyolult feladat annak biztosítása, hogy a kártevő ne kerülhessen ki a tesztkörnyezetből.
A fentiekből látható, hogy a vírusvédelmi rendszerek tesztelése messze nem triviális feladat. Általában is igaz, mindenfajta tesztelésre, hogy az nem azt igazolja, hogy egy szoftver hibamentes, funkcionálisan megfelelően működik, csupán azt képes bizonyítani (ha hiba adódott), hogy a szoftver nem tökéletes. Ez fokozottan igaz a vírusvédelmekre is, hiszen gyakorlatilag megoldhatatlan, hogy teljes, átfogó tesztet végezzünk egy-egy antivírus verzióval. Mindezek ellenére a vírusvédelmi rendszereket oly módon kell (és lehet is) vizsgálni, amivel kimutathatóak azok a problémák, melyek az átlagos felhasználónál is előfordulhatnak.
A cikk eredetilag a Computerworld.hu biztonság rovatában jelent meg.
Teszteljünk vírusvédelmi programokat
Néhány hete hatalmas vita bontakozott ki az egyik szakértői cikkünk körül, most megszólal a másik oldal is. Leitold Ferenc a vírusvédelmi megoldások módszereiről és problémáiról.
Hirdetés
Hirdetés