Heuristická analýza (heuristické skenování) je soubor antivirových funkcí zaměřených na detekci malwaru neznámého virovým databázím. Zároveň se tímto pojmem označuje i jedna ze specifických metod.
Téměř všechny moderní antivirové nástroje využívají technologii heuristické analýzy programového kódu. Heuristická analýza se často používá ve spojení se skenováním signatur k hledání složitých kódovaných a polymorfních virů . Technika heuristické analýzy umožňuje detekovat dříve neznámé infekce, avšak léčba je v takových případech téměř vždy nemožná. V tomto případě je zpravidla vyžadována dodatečná aktualizace antivirových databází pro získání nejnovějších signatur a léčebných algoritmů, které mohou obsahovat informace o dříve neznámém viru. V opačném případě je soubor odeslán k analýze antivirovým analytikům nebo autorům antivirových programů.
Metody heuristického skenování neposkytují zaručenou ochranu proti novým počítačovým virům, které nejsou v sadě signatur, což je způsobeno použitím dříve známých virů jako objektu analýzy signatur a znalostí mechanismu polymorfismu signatur jako pravidel heuristického ověřování. . Zároveň, jelikož je tato vyhledávací metoda založena na empirických předpokladech, nelze falešné poplachy zcela vyloučit.
V některých případech jsou heuristické metody mimořádně úspěšné, například v případě velmi krátkých částí programu v zaváděcím sektoru: pokud program zapisuje do sektoru 1, stopy 0, strany 0, vede to ke změně oddílu disku. . Ale kromě pomocného programu fdisk se tento příkaz nikde jinde nepoužívá, a proto, pokud se nečekaně objeví, mluvíme o boot viru.
V procesu heuristické analýzy je emulovaný program kontrolován analyzátorem kódu. Například program je infikován polymorfním virem sestávajícím ze zašifrovaného těla a dešifrovače. Emulátor kódu čte instrukce do antivirové vyrovnávací paměti, analyzuje je do instrukcí a provádí je po jedné, načež analyzátor kódu vypočítá kontrolní součet a porovná jej s tím, který je uložen v databázi. Emulace bude pokračovat, dokud nebude dešifrována část viru nezbytná pro výpočet kontrolního součtu. Pokud se podpis shoduje, program je definován.