Demo

A CheckVir tesztlaborban a vírusvédelmi rendszerek folyamatos, valós idejű (real-time) tesztelésére vonatkozó rendszert az NKTH Baross Gábor Programjának (KD_INTEG_07-FB124076), illetve a Gazdaságfejlesztési Operatív Programjának (GOP-2.1.1-09/A-2009-1298) támogatásával fejlesztettük.

Közép-Dunántúli Regionális Fejlesztési Ügynökség
Nemzeti Kutatási és Technológiai Hivatal
Új Magyarország Fejlesztési Terv

Tesztelési módszerek

A Veszprog Kft. által üzemeltetett CheckVir tesztlaborban elindult a vírusvédelmi rendszerek valós idejű tesztelése. A szolgáltatást az erre a célra fejlesztett automatikus rendszer biztosítja, mely képes a vírusvédelmi rendszerek közel valamennyi verzióját vizsgálni.

Megjegyzés: A rendszer képes arra, hogy észlelje, ha egy vírusvédelem frissítése megtörtént, azonban ez kb. 30 percet vesz igénybe. Amennyiben ez alatt az idő alatt több új frissítés is történik, akkor csak az egyiket veszi figyelembe.

Technikai háttér

A tesztfeladatok egy speciális keretrendszerben kerülnek végrehajtásra. Ez az automatikus rendszer egy adatbázisban gyűjti vírusvédelmek különböző verzióira vonatkozó tesztelési eredményeket, melyek az interneten folyamatosan elérhetők. A rendszer az alábbi részekből épül fel:

Kliensek: Ezek a számítógépek képesek arra, hogy különböző feladatokat hajtsanak végre, mint például frissítés vagy tesztelés. A kliens számítógépek teljesen egyforma hardver és szoftver felépítéssel rendelkeznek. (A kártyák is ugyanazon a helyen találhatók.)

  • Frissítési feladat: Egy debian Linux alatti rendszer perl szkriptekkel gondoskodik arról, hogy Windows operációs rendszer image-ét (képfájlját) – mely tartalmazza a vírusvédelem aktuális verzióját – cserélje és időközönként elindítsa. A Windows operációs rendszer egy Wintask alkalmazással képes a frissítési feladat elvégzésére. Amennyiben frissítés történt, ezt jelzi a vezérlő számítógépnek, ami elvégzi a frissített verziójú operációs rendszerről az újabb image (képfájl) mentését.
  • Tesztelési feladat: A tesztelési feladatot ellátó számítógépek biztonsági okokból egy speciális tűzfalon keresztül érik el az internetet. Egy debian Linux alatti rendszer perl szkriptekkel gondoskodik arról, hogy Windows operációs rendszer image-ét (képfájlját) – mely tartalmazza a vírusvédelem aktuális verzióját – cserélje és időközönként elindítsa. A teszteléshez a frissítési feladat során elmentett image-et (képfájlt) tölti be. A tesztelési feladatnak megfelelő Wintask szkriptet, illetve a teszteléshez szükséges fájlokat (pl.: minták, vírusmentes állományok) másol a rendszerbe, majd a bootolását követően a tesztelési feladat végrehajtódik. A tesztelést követően az eredményeket a debian Linux alatt futó perl szkript a webszerver SQL adatbázisába másolja.

Webszerver: Ez a számítógép gyűjti a tesztelési eredményeket és teszi őket elérhetővé az interneten.

Tároló: A teszteléssal kapcsolatos valamennyi információ ezen a számítógépen kerül archiválásra. Ez a teszteredmények mellett a naplóállományokat a Windows operációs rendszer image-eit (képfájljait), illetve minden teszteléshez szükséges adatot jelenti.

Vezérlő: A rendszerben futó valamennyi folyamatot ez a számítógép vezérli.

Tűzfal: A belső (piros) és a külső (kék) hálózat között elhelyezkedő tűzfalon keresztül a rendszer üzemeltetéséhez szükséges manuális feladatokat lehet elvégezni. A két hálózat közötti kapcsolat nem szükséges a rendszer automatikus működéséhez.

Tűzfal és router: Egy speciális tűzfal található a kliens számítógépek, a "malware proxy" szerver és az Internet között. Ennek a számítógépnek a fő feladata, hogy megkülönböztesse a kártevő, illetve a védelmi rendszer hálózati forgalmát. A kártevő hálózati forgalmát a "malware proxy" szerver felé, míg a védelmi rendszer hálózati forgalmát az internet felé továbbítja. Így a védelmi rendszerek korlátozás nélkül használhatják a "cloud technológiát".

"Malware proxy" szerver: Ennek a számítógépnek a feladata a teszteléshez használt – bizonyos időponthoz tartozó – fertőzött internetes oldalak tartalmának tárolása. Így képes arra, hogy a kliensek részére szimulálja az Internet teszteléshez használt részét. A "malware proxy" szervert a dinamikus teszteléshez használjuk, melynek során a kártékony kód végrehajtásra, illetve a fertőzött weboldal megnyitásra kerül.

Tesztelési eljárások

A tesztelési eljárások a felhasználói használatot mintázzák. A vírusvédelmi megoldásokat a tesztelés során fekete doboznak tekintjük. A CheckVir projektben az alábbi tesztfeladatokat hajtjuk végre:

Kártevők ismeretének a vizsgálata (felismerés): Alapfeltétel, hogy a tesztelt megoldás képes legyen valamilyen naplóállományt készíteni a vizsgálatról. A felhasználó által indított on-demand ellenőrzés során a kártevők találatainak az összesítése történik. A folyamatosan figyelő on-access védelmek esetén a vizsgálat kicsit bonyolultabb. Itt nemcsak a naplóállományokat elemezzük, hanem megvizsgáljuk, hogy a kártevők másolása esetén mi történik a forrással és mi lesz a "célban". Természetesen itt olyan beállításokat kell alkalmaznunk, ami arra utasítja a védelmet, hogy kártevő esetén valamilyen módon gátolja meg a másolást. Tekintettel arra, hogy a védelmi rendszerek jelentős része ma már proaktív védelemmel is rendelkezik, az olyan kártevők esetén, amiket a másolás során nem azonosított a védelem, szükség van a proaktív védelem vizsgálatára. Ehhez a kártevőket el kell indítani a tesztkörnyezetben és vizsgálni a védelmet, hogy meggátolja-e a kártevő működését. Ehhez azonban minden egyes kártevő vizsgálatát megelőzően kártevőmentes környezetre van szükség.

Kártevők ismeretének a vizsgálata (eltávolítás - helyreállítás): A kártevők kódjának eltávolításának, az eredeti kártevőmentes állapot visszaállításának vizsgálata mind az on-demand, mind az on-access, illetve a proaktív esetben is elvégezhető. Mindegyik esetben a vizsgálat arra terjed ki, hogy a védelem működése előtti állapot hogyan változott meg. A változásokat természetesen a védelmi rendszer naplójával is összevetjük.

Téves (false positive) riasztások vizsgálata: Az on-demand ellenőrzések esetén a védelmi rendszerek által generált naplóállományok vizsgálata alapján, on-access esetben pedig a naplóállományok, illetve a forrás és a célterületek alapján történik azon fertőzésmentes állományok körének a meghatározása, amelyek esetén a védelem – tévesen – kártevőt jelez.

Sebesség ellenőrzése kártevőmentes környezetben: A sebesség ellenőrzését alapvetően kártevőmentes környezetben célszerű elvégezni. Kártevő(k) találata esetén ugyanis már másodlagossá válik a sebesség, a felhasználók számára sokkal fontosabb lesz a biztonságos helyreállítás. Másrészt pedig a sebesség nagyban függ a találat esetén elvégzendő akciótól (törlés, eltávolítás, karanténba helyezés, …). Kártevőmentes környezetben a sebességet nagyban befolyásolja a hardver és szoftver környezet is. On-demand esetben az indítás és befejezés közti időtartam jelenti az ellenőrzés idejét. On-access esetben ez egy kicsit bonyolultabb. Ekkor ugyanis, ha például másolással történik a vizsgálat, akkor – a korrekt összehasonlíthatóság érdekében –, az indítás és befejezés között eltelt időtartamot csökkentenünk kell a védelem nélküli rendszerben ugyanezen feladat elvégzéséhez szükséges időtartammal. Így kapjuk meg ugyanis tisztán a védelem időszükségletét. A sebességellenőrzések mindegyikét – a hiba mértékének csökkentése érdekében - legalább 30-szor végezzük el. A vizsgálat eredményét ezen időtartamok statisztikai jellemzői (minimum, maximum, átlag, szórás) jelentik.

"Konténer" teszt: A számítógép használata során átlagos körülmények között is előfordulhat, hogy egy felhasználó olyan állomány(oka)t hoz létre, amely fájl(oka)t tartalmaz(nak). Ez történhet a felhasználó interaktívitásával, vagy akár – mintegy észrevétlenül – teljesen automatikusan. A felhasználó közreműködése lehet például, ha egy ZIP állományt hoz létre vagy egy dokumentumba beleágyaz egy másik állományt. Az automatikus esetben például a felhasználó egy e-mail üzenetet tölt le és azt az e-mail kliense tárolja el. Az ilyen típusú állományok esetén a védelmi rendszernek ismernie kell ezen állományok felépítését. Az ilyen vizsgálatok elvégzése azért nagyon fontos, mert ha például egy védelem azt az üzenetet adja – miután egy számítógépet teljesen átvizsgált -, hogy az vírusmentes, akkor legyünk tisztában ezen üzenetnek a korlátaival. A vizsgálat során olyan állományt használunk, melyet valamennyi, a tesztelésben résztvevő védelem ismer (például az EICAR tesztfájlt: www.eicar.com) és ezt az állományt csomagoljuk be különböző "konténerekbe". A vizsgálat során azt teszteljük, hogy képes-e a védelem az adott „konténerben" megtalálni a kártevőt illetve, hogy ezt konténerbe ágyazott konténerek sorában milyen mélységig képes megtenni. Ezen túlmenően speciális körülmények között is vizsgáljuk a védelem képességeit: hosszú fájlnevek használata, jelszóval védett konténerek.

Tesztelési módszerek

A tesztelést statikus, illetve dinamikus módon végezzük. Statikus esetben a kártevő kódja nem hajtódik végre, dinamikus esetben viszont a kártevő kódja végrehajtódik, mialatt a védelem viselkedését vizsgáljuk. Dinamikus teszt, illetve mindenfajta sebességteszt esetén natív környezetben történik a tesztelés. Virtuális környezetben csak a sebességteszten kívüli statikus vizsgálatokat végezzük.

A statikus tesztelési eljárások on-demand és on-access módon hajtódnak végre. Az on-access teszteléshez a

copy <tesztminta> <célkönyvtár>

parancsot használjuk.

A dinamikus teszt során a kártevő kódja végrehajtódik, illetve a fertőzött weboldal megnyitásra kerül. A tesztelés során a kártevő által kezdeményezett minden internetre irányuló kérést a "malware proxy" szerverhez továbbítjuk. Ez azt jelenti, hogy a különböző megoldások tesztelése során az interneten pontosan ugyanazt a bitsorozatot érik el.

Minták

A teszteléshez az alábbi mintákat használjuk:

Kártevőcsomag:

A kártevőminták kártékony kódot tartalmazó fájlokat, illetve kártékony kódot tartalmazó webcímeket jelentenek. A kártékony kódot tartalmazó fájlokat a CheckVir labor honeypot-jai segítségével gyűjtjük, illetve vírusvédelemmel foglalkozó gyártóktól, az Offensive Computingtól szerezzük be. A fertőzött kódokat tartalmazó weboldalakat a "malware proxy" szerver segítségével, az interneten elérhető fekete listák alapján archiváljuk. Minden egyes mintát előzetesen ellenőrzünk, hogy az egyrészt működőképes, másrészt valóban képes kártékony tevékenységre. A minták ellenőrzését követően az elterjedt kártevők halmazát állítjuk össze. Ebből a célból a vírusvédelmek gyártóinak, illetve más cégek, szervezetek (pl. IEEE ICSG Malware Workin Group) által kiadott, kártevőkre vonatkozó elterjedtségi adatokat használunk.

Tiszta mintakészlet:

Ez a csomag az operációs rendszer, illetve alkalmazások állományait tartalmazza, melyek nem tartalmaznak kártékony kódot. A csomag tartalmaz olyan futtatható tömörítvényeket is, melyek segítségével kimutathatók ezen tömörítvények esetleges fekete listázása.

Konténer csomag:

A csomag egyrészt az alábbi típusú "konténereket" tartalmazza:

  • Email kliensek tárolófájljai: Microsoft Outlook, Outlook Express, The Bat!, Eudora, Pegasus Mail, Mozilla Thunderbird, Incredimail
  • Adatállományok tömörítvényei: ZIP, ARJ, RAR, GZ, TAR, TGZ, ACE, CAB, JAR, LZH, BZ2, HA, Z, 7Z, BFC
  • Beágyazott állományok: DOC, XLS

Másrészt a csomag tartalmazza a tömörített kártevőt is, illetve a speciális teszteléshez szükséges speciális tömörítvényeket.

Megoldások és beállítások

A vírusvédelmi megoldásokat a gyártók biztosítják. Egy megoldás nem feltétlenül egyetlen szoftver, több szoftver is lehet, a gyártó javaslata alapján.

A teszteléshez továbbá a gyártóknak az alábbiakat kell biztosítani:

  • A gyártóknak meg kell adni az otthoni, illetve vállalati környezetben a javasolt beállításokat. (Ez általában az alapértelmezés szerinti beállítást jelenti.) Minden tesztfeladathoz a megadott beállításokat használjuk. A gyártók különböző megoldásokat adhatnak meg otthoni, illetve vállalati környezethez.
  • A gyártóknak meg kell adni a találatok osztályozásához szükséges instrukciókat, melyek megkülönböztetik a kártevők detektálását, a gyanúsítástól, illetve a csupán informatív találattól.

A gyártóknak a megoldásokat, illetve a hozzájuk tartozó beállításokat az alábbiak figyelembe vételével kell megadni:

  • A megoldásoknak az adott beállításokkal képesnek kell lennie, hogy egy vagy több naplóállományt készítsen, mely tartalmazza az összes azonosítást és eltávolítást.
  • Automatikus akciót kell végrehajtani a találat esetén.

A tesztelések során mindegyik tesztfeladat esetén azonos beállításokat használunk.