Heuristická analýza

Jedinou možnou změnou, která by stále aktuálnější problém detekce nových virů řešila, je změnit způsob vyhledávání virů.

Namísto kontroly pouhé přítomnosti sekvence znaků sledovat emulovaný program, a na základě analýzy toho co dělá, lze usoudit, zda se jedná o virus či nikoli – a je tu heuristická analýza.

Jestliže jsme o vytvoření funkčního emulátoru instrukcí hovořili jako o problému, není vytvoření funkční analýzy o nic jednodušší.

Nepostačí totiž pouze zjistit, co sledovaný program s počítačem provádí, ale také rozhodnout, zda tyto operace jsou nekorektní (jedná se o virus), nebo jde-li v daném případě pouze o netypický systémový program. Přes veškerou složitost a někdy i problematické vyhodnocení testovaného objektu je heuristická analýza nejperspektivnější funkcí moderních antivirových programů právě z toho důvodu, že není závislá na tom, zda je virus programu známý či nikoliv.

Jistěže se objevují (a objevovat budou) viry, které heuristická analýza poznat nedokáže, ale většinu zachytí.

Kromě heuristické detekce virů existují i pokusy o jejich heuristické odstraňování. Vir se totiž po svém spuštění dříve nebo později pokusí předat řízení původnímu programu. Pokud se podaří odsimulovat jeho běh až k tomuto bodu, stačí napadený soubor správně zkrátit a všechno je v nejlepším pořádku. Úspěšnost je u jednoduchých virů relativně slušná, ale za zcela spolehlivou tuto metodu prozatím označit nelze.