Heuristická analýza (řecky heuriskó) je v informatice metoda využívající zkusmé řešení problému, protože přesnější metoda či algoritmus není k dispozici, využívá přitom intuici, zkušenosti. Existují různé heuristické postupy. Heuristika je často využívána antivirovými programy, kde slouží k detekci dosud neznámých počítačových virů.
V antivirových programech
Antivirový program využívá při detekci počítačových virů dvou postupů: antivirový test a heuristická analýza. Antivirový test využívá databázi známých počítačových virů. Pokud nebyl nalezen žádný známý virus, zahájí se logická analýza podezřelého testovaného kódu a porovnává se s kódem virů. Tím, že ale metoda používá nahodilého přístupu řešení problému, vzniká velmi mnoho falešných oznámení o výskytu nebezpečí uvnitř operačního systému. Velmi častým cílem jsou různé generátory klíčů, patche, cracky.
Heuristická analýza je základní expertní analýza, která určuje citlivost systému na konkrétní hrozby a rizika pomocí různých rozhodujících pravidel nebo vážících metod. Multikriteriální analýza (MCA) je jeden z prostředků vážení. Tato metoda se liší podle statistické analýzy, která se opírá o dostupné údaje/statistiky.
Jak to funguje
Většina antivirových programů, které používají heuristickou analýzu, vykonávají tuto funkci spouštěním programovacích příkazů podezřelého programu nebo spouštěním skriptu v rámci specializovaného virtuálního stroje, a tím umožňují antivirovému programu vnitřně simulovat, co se stane v případě, když podezřelý soubor bude spuštěn při zachovaní podezřelého kódu izolovaného od reálného stroje. Ten pak analyzuje příkazy, tak jak jsou prováděny, monitoruje typické virové chování, jako je replikování, přepisování souborů a snahu o utajení existence podezřelého souboru. Jestliže je detekováno jedno nebo více virového chování, je podezřelý soubor označen jako potenciální virus a uživatel je upozorněn.
Další běžná metoda heuristické analýzy je pro antivirový program dekompilovat podezřelý program a pak analyzovat uvnitř obsažený zdrojový kód. Zdrojový kód podezřelého programu je porovnán se zdrojovým kódem známého viru a virového chování. Pokud se určité procento zdrojového kódu shoduje s kódem známých virů nebo virovými aktivitami, je soubor označen a uživatel je upozorněn.
Efektivita
Přestože heuristická analýza je schopna rozpoznat mnoho dříve neznámých virů a nové varianty stávajících virů, účinnost je poměrně nízká pokud jde o přesnost a počet falešných poplachů. A to protože počítačové viry, stejně jako biologické viry, se neustále mění a vyvíjí. Vzhledem k tomu, že heuristická analýza většinou funguje na základě minulých zkušeností (tím, že porovnává kód podezřelého souboru a funkce známých virů), je pravděpodobné, že neodhalí nové viry, které obsahují dosud neznámý kód nebo metody operací, které se nevyskytují v žádných známých virech. Spolu s viry se ale vyvíjí i heuristická analýza. Jako nové viry jsou objevovány alternativními metodami detekce, informace o nich jsou přidány do „heuristic analysis engine“, který poskytuje prostředky k detekci nových virů na základě dosud neznámého kódu.
Reference
V tomto článku byl použit překlad textu z článku Heuristic analysis na anglické Wikipedii.
Související články
Externí odkazy