Igiho stránka o virech
Novinky
Kniha o virech
1.Pomoc
Testy
Odkazy
Download
AV-Konference
Akce
Autor

Antivirové programy, část první

Článek je stále ve vývoji, některé části budou doplněny, popřípadě upraveny.

- obsah -

Nahoru

Úvod

Stále stoupající množství počítačových virů nás nutí brát antivirovou ochranu jako naprostou samozřejmost. V dnešní době je již poměrně vzácné najít zodpovědného uživatele, který by si hrozby neuvědomoval a ponechával počítač bez ochrany. Například ekonomické ztráty, které mohou vyplynout ze ztráty firemních dat, jsou vážnou hrozbou pro stabilitu firmy na to, aby ji bylo možné beztrestně ignorovat. Daleko jednodušší to mají domácí uživatelé, těm obvykle stačí nainstalovat některý z dostupných antivirových programů a cítit se tak v relativním bezpečí. Řada antivirových programů je navíc šířena také bezplatně a lze si je za jistých podmínek stáhnout z Internetu. Zajistit ovšem komplexní antivirovou ochranu firmy dá mnohem více práce a vyžaduje i nepoměrně více finančních prostředků. Ve firemní počítačové síti je totiž ukryto obrovské množství míst, která mohou její fungování ohrozit.

Dalším faktorem ovlivňujícím náročnost je problematičnost nasazení antivirové ochrany. Nutností je odborná dovednost a zkušenost pro skutečnou fungující ochranu. Stoupající rafinovanost škodlivých kódů vede logicky i k růstu složitosti nasazované antivirové ochrany. Zatímco pro domácího uživatele tato složitost zůstává skryta uvnitř programů, pro administrátory sítí to často představuje těžce řešitelné problémy spojené s instalací a nastavením antivirové ochrany firemní sítě. Se stále větší rozšířeností Internetu a počítačových sítí obecně, stoupá i pole působnosti škodlivých kódů. Příkladem může být e-mailový červ o kterém by i ten největší odborník před několika lety řekl, že nic takového nezná. Tyto relativně nové hrozby kladou na antivirovou ochranu další náročné požadavky.

Stačilo jen několik prvních incidentů, aby antivirové firmy zareagovaly a implementovaly do svých programů účinnou kontrolu příchozích a odchozích e-mailů. Dalším příkladem mohou být makroviry napadající dokumenty. Lze tedy konstatovat, že hrozeb přibývá. Tvůrci antivirových programů jsou naštěstí "pisálkům virů" těsně v patách a dokážou nám dát do rukou účinné zbraně, kterými se jim můžeme bránit.

Nahoru

Historie antivirových programů

Historie vývoje antivirových programů je prakticky stejně dlouhá jako historie virů. Již se vznikem prvního viru Brain vznikla zároveň potřeba napsat antivirový program. Tehdy šlo obvykle pouze o jednoúčelové antiviry (detekující a léčící jeden konkrétní virus), později se ovšem s přibývajícím počtem virů stala situace neúnosná a tak někdy kolem roku 1988 spatřil světlo světa první antivirový systém.

Nahoru

Dělení antivirových programů

Antivirové programy můžeme rozdělit do několika skupin například následovně od nejednodušších až po nejsložitější:

Nahoru

Jednoúčelové antiviry

Jde o antivirové programy, které jsou zaměřeny na detekci, popřípadě i dezinfekci jednoho konkrétního viru. Jednoúčelové antiviry tedy nelze rozhodně použít jako plnohodnotnou antivirovou ochranu, jde pouze o jakousi "krabičku poslední záchrany". Pokud uživatel zjistí (popřípadě ho někdo upozorní), že je jeho počítač infikován určitým virem, pak není nic jednoduššího, než přivolat na pomoc právě jednoúčelový antivirus. V dnešní době jsou jednoúčelové antiviry velice oblíbené u takto "postižených" uživatelů. Narozdíl od plnohodnotného antivirového systému nabízejí důkladnější dezinfekci (při dnešním množství virů není možné, aby antivirový systém dokázal důkladně odstranit všechny známé viry) a daleko vyšší rychlost. Jednoúčelové antiviry vznikají obvykle pouze pro detekci/dezinfekci hojně se vyskytujících virů.

Nahoru

Balík jednoúčelových antivirů

Jedná se o podobnou záležitost jako v předchozím případě, pouze s rozdílem, že tento antiviru dokáže důkladně najít a odstranit větší počet obvykle hojně se vyskytujících virů.

Nahoru

On-demand skenery

Další kategorií jsou plnohodnotné on-demand skenery (viz. níže). V dnešní době je lze obvykle stáhnout z Internetu ve formě freeware verze pro operační systém MSDOS. Typickým příkladem může být "F-Prot antivirus for DOS". Tato kategorie antivirových programů se uplatní především při dezinfekci počítačů, kdy např. operační systém MS Windows není schopen provozu. Lze sem zařadit i Internetové on-line skenery, které někteří výrobci antivirových programů nabízejí na svých stránkách. Obvykle jde o všelijaké aplety, které ve spojení s internetovým browserem (Internet Explorer, Netscape Navigator atd.) dokážou plnohodnotně prohledat na výskyt virů pevný disk uživatele, bez toho, aby tento antivirus získal fyzicky natrvalo.

Nahoru

Antivirové systémy

V dnešní době nejčastější forma antivirových programů. Antivirový systém se skládá s částí, které sledují všechny nejpodstatnější vstupní místa, kterými by se případná infiltrace mohla do počítačového systému proniknout. Mezi tyto vstupní/výstupní místa může patřit například elektronická pošta (červi šířící se poštou), www stránky (škodlivé skripty, download infikovaných souborů), média (cédéčka, diskety apod.). Samozřejmostí antivirového systému též bývá aktualizace produktu prostřednictvím Internetu. Antivirové systémy jsou komplexním řešením pro stanice. Do této kategorie patří takové programy jako avast!, AVG, Norton AntiVirus, Kaspersky AntiVirus, NOD32, McAfee Viruscan atd.

Nahoru

Komplexní antivirová řešení ("balíky")

Obvykle jde o balení několika produktů stejného výrobce, které je určeno pro podnikové sítě. Balení je obvykle složeno tak, aby jednotlivé produkty dokázaly dohromady uhlídat všechny vstupní/výstupní místa sítě, které jsou pro infiltraci populární.

V balení se tak často může vyskytovat:

  • antivirový systém pro stanice
  • antivirus pro poštovní servery
  • antivirus pro souborové servery
  • antivirus pro firewally

    Zatímco všechny výše uvedené typy antivirů, včetně antivirových systémů, lze při troše štěstí získat legálně zadarmo, za komplexní antivirová řešení se musí snad ve všech případech zaplatit. Cena se může zdát vysoká, ale v řadě případů je jen zlomkem částky, kterou je potřeba investovat to odstranění škod způsobených řáděním počítačové infiltrace.

    Nahoru

    Součásti antivirového systému pro stanice

    Jak už bylo řečeno, antivirový systém se skládá s částí, které sledují všechny nejpodstatnější vstupní místa, kterými by se případná infiltrace mohla do počítačového systému proniknout a jde o komplexní řešení pro stanice.

    Antivirový systém se tak obvykle skládá z části:

  • vykonávající nepřetržitý dohled - antivirovou kontrolu nad daty, se kterými uživatel pracuje (tzv. on-access skener).
  • umožnující provést antivirový test na vybrané oblasti. Test je vyvolán na základě požadavku uživatele (on-demand) a obvykle se tak tato část označuje jako on-demand skener.
  • udržující antivirový systém v aktuální podobě. Zajišťuje stahování aktualizací antivirového systému z Internetu.
  • vykonávající automatickou antivirovou kontrolu příchozí a odchozí elektronické pošty.

    Mezi další části, které již nejsou tak běžné může patřit například:

  • plánovač akcí (scheduler), který umožňuje ve zvoleném termínu automaticky vyvolat naplánovanou úlohu (např. antivirovou kontrolu důležitých dokumentů).
  • kontrola integrity dat.
  • karanténa (quarantine).
  • monitorovací program.
  • antivirový plug-in pro aplikaci Microsoft Office.
  • antivirový spořič obrazovky (screensaver).
  • další.

    Absence řady uvedených částí v antivirovém systému nemusí nijak ovlivnit celkovou kvalitu antivirového systému. Nutným minimem je ovšem on-access skener (bod 1) a část udržující antivirový systém v aktuální podobě (stahování aktualizací z Internetu - bod 3). Pokud antivirový systém tyto části neobsahuje, bude bezpečnější se mu velkým obloukem vyhnout.

    Nyní již podrobněji o jednotlivých částech antivirového systému. Seřazeny jsou tak, aby text co nejvíce navazoval.

    Nahoru

    Aktualizace (update) antivirového systému

    V předchozím textu byla zmíněna pouze aktualizace antivirového systému prostřednictvím Internetu. V začátcích se aktualizace k uživateli distribuovaly prostřednictvím papírového vydání různých počítačových časopisů, kde se objevovaly dlouhé seznamy detekčních řetězců (sekvencí), které si musel uživatel sám do svého antivirového programu přepsat a seznámit ho tak s viry, které před nedávnem spatřily světlo světa. Později se běžně aplikovala aktualizace prostřednictvím disket či cédéček. Ty rozesílaly antivirové firmy obvykle každý měsíc, popřípadě jednou za čtvrt či půl roku. V dnešní době Internetu je však nutností aktualizovat antivirový systém právě skrze tuto celosvětovou počítačovou síť. Důvodem jsou viry, popřípadě červi, které se po celém světě dokážou rozšířit prostřednictvím sítě Internet za několik hodin. Část, která se stará o stahování aktualizace antivirového systému z Internetu je tak důležitou strategickou součástí každého antivirového systému. Důležitou práci v tomto směru hrají i antivirové společnosti, které tyto aktualizace vydávají a umisťují je na své servery. Důležitým parametrem je v tomto případě především rychlost, z jakou dokáží antivirové firmy zareagovat na nově objevený virus. Tj. jak dlouho jim trvá, než vydají aktualizaci a zajistí tak ochranu uživatelů, používajících jejich antivirový systém. K úplné dokonalosti je nutné ještě zajistit, aby uživatel stáhl tuto aktualizaci co možná nejdříve od jejího vydání. Proto by měl být antivirový systém vybaven automatickou aktualizací, která v co možná nejkratších intervalech stahuje ze serveru výrobce nejaktuálnější verze jejího antivirového produktu.

    Souhrnně lze tedy prohlásit, že pro efektivní činnost aktualizace je nutné zajistit:

  • rychlou reakci ze strany av společnosti,
  • správné nastavení části stahující aktualizace na straně uživatele.

    Zatímco první bod av společnosti obvykle dodržují, v druhém bodě to již tak růžové není. Některé dnešní antiviry nejsou v tomto směru optimálně standardně nastaveny, jde především o:

  • nízkou četnost pokusů automatické aktualizace o stažení nové verze z Internetu.
  • vypnutou automatickou aktualizaci.

    Nízkou četností pokusů o stažení aktualizace lze v dnešní době považovat například stahování aktualizace jednou za týden. Viry se dokážou rozšířit po světě za několik hodin a proto je nutné stejně často aktualizovat i antivirový systém !

    Některé antivirové společnosti se "chlubí" ve svých materiálech s vydáváním aktualizací každý den (tzv. daily updates) s dodatečným textem typu "jen antivirus s každodenní aktualizací dokáže zajistit maximální ochranu před viry". Nezkušený uživatel se tímto nechá velice snadno ovlivnit při rozhodování o koupi svého budoucího antivirového systému. Praxe již několikrát dokázala, že toto tvrzení je pouze velký nesmysl a slouží jen a jen k nalákání ke koupi. To že antivirová společnost vydává aktualizace pouze jednou za čtrnáct dní, vůbec neznamená, že během této doby "spí na vavřínech". Pouze to svědčí o tom, že světlo světa nespatřilo nic, co by si zasloužilo patřičnou pozornost (tj. nevznikl virus, šířící se významně v reálu). Pokud se objeví něco významného, zareagují velice rychle všechny schopné antivirové společnosti (i do několika minut od obdržení vzorku).

    Majitelé s pomalejším připojením do sítě Internet (prostřednictvím modemu - dialup apod.) jistě bude zajímat rychlost, s jakou se aktualizace ze serveru výrobce antiviru stáhne do počítače uživatele. V dnešní době se antivirové společnosti snaží zajistit co možná nejrychlejší proces stahování aktualizace. Rychlost ovlivňuje nepochybně velikost aktualizace. Z jednou metod, jak snížit velikost aktualizace je její rozdělení na dvě nezávislé části, obvykle záleží na konkrétním antivirovém systému:

  • aktualizace pouze programové části antivirového systému. Tato aktualizace odstraňuje nedostatky v programové části antiviru, popřípadě tuto část vylepšuje o nové funkce.
  • aktualizace virové databáze. Tato aktualizace zajišťuje detekci nových virů, popřípadě upravuje detekci těch stávajících.

    Druhý bod je naprostou nutností (vysvětleno výše), první není v některých případech do antiviru vůbec zaimplementován. V takovém případě lze aktualizaci programové části provádět pouze ruční návštěvou serveru výrobce antiviru a stažením kompletní nové instalace.

    To jakým způsobem se aktualizují virové databáze je opět závislé na konkrétním antiviru. Obecně existují dva způsoby:

  • "plná" aktualizace, kdy se pokaždé stahuje celá virová databáze znovu. Logicky je tento typ aktualizace časově více náročný s přibývajícím množstvím známých virů. Velikost každé takové aktualizace lze obvykle měřit na MB. Antivirové společnosti se tak snaží tento způsob aktualizace ze svých produktů odstranit.
  • inkrementální aktualizace, kdy se stahují pouze ty části virové databáze, které na serveru výrobce přibyly od poslední aktualizace, kterou uživatel provedl. Výsledkem je, že jsou stahovány pouze ty informace, které se na stanici uživatele dosud nevyskytují (nestahuje se vše opakovaně jako v předchozím případě). Pozitivem je zároveň i rychlost a velikost aktualizací (obvykle maximálně několik desítek KB).

    Poznámka: Část, starající se o stahování aktualizací z Internetu je v případě všech známých antivirových systémů natolik "inteligentní", že při každém pokusu stahuje pouze nové aktualizace, nikoliv znovu ty, které se vyskytují na stanici uživatele.

    Nahoru

    Virová databáze

    V předchozích odstavcích byl nakousnut problém "virová databáze". Nyní tedy přesněji, o co se jedná.

    Virová databáze je souhrn informací, na základě kterých dokáže antivirový skener vyhledávat známé viry. Virová databáze je obvykle označena datem vydání. Antivirový skener dokáže na základě informací z virové databáze detekovat většinu známých virů, které vznikly před datem vydání virové databáze. Pravidelnou aktualizací lze zajistit, že rozdíl mezi současným datem a datem vydání bude co nejmenší a budou tak detekovány i nejnovější přírůstky mezi viry.

    Virová databáze obsahuje obvykle následující minimum:

  • název viru,
  • informace, na základě kterých lze virus detekovat.

    === TATO ČÁST BUDE DOPLNĚNA ===

    Informace o virové databázi jsou dalším místem, na které se snaží některé antivirové společnosti nalákat budoucí majitele antivirového systému. Jde především o hodnotu, která v některých antivirech vyjadřuje množství detekovaných virů. Nezkušený uživatel si může nesprávně domyslet, že čím vyšší číselná hodnota, tím lepší antivirus. Realita může být (a často i je) zcela odlišná. Odlišnosti mohou být způsobeny především díky generické detekci, která umožňuje detekovat například i celé "rodiny" podobných virů pomocí několika málo sekvencí či za užití jiné metody.

    Nahoru

    Antivirové skenery

    Antivirové skenery (od slova "scanner") jsou nejstarší součástí každého antiviru. Umožňují vykonávat proces skenování (scanning), během kterého jsou vyhledávány počítačové viry. V předchozí části bylo řečeno, že skener vyhledává viry na základě informací z virové databáze. Pokud virová databáze informace o daném viru neobsahuje, "obyčejný" skener ho nedokáže detekovat. Proto postupem času vznikly metody detekce, které dokážou odhalit i doposud neznámé viry a tohoto nedostatku se tak částečně zbavit. O těchto metodách bude řeč později. Skenery lze rozdělit na hlavní dvě skupiny:

  • on-demand
  • on-access ("rezidentní štít")

    On-demand skener je takový, který vyhledává viry (skenuje) až po vydání požadavku uživatelem (proto on-demand). Požadavek tak musí být vydán manuálně, obvykle vybráním požadované oblasti pro test (adresáře, pevný disk, disketa atd.) a stiskem tlačítka "start" v antivirovém programu. On-demand skenery se hojně využívaly především v době operačního systému MSDOS, v dnešní době přijde vhod obvykle pouze v momentě, kdy těžce infikovaný počítač "mele z posledního". On-demand skener dokáže v řadě případů prohlížet i zkomprimované soubory at už interně, tak pomocí archivačních programů (RAR, ZIP apod.).

    Provoz on-demand skeneru je tak zjevně pro běžného uživatele až příliš komplikovaná, proto jsou dnes všechny antivirové systémy vybaveny on-access skenerem. On-access skener zcela automaticky a neustále vyhledává viry v datech (nejčastěji v souborech), se kterými přichází uživatel do styku. On-access skener tak může testovat:

  • spouštěné soubory / programy
  • otevírané soubory
  • ukládané soubory

    Hledat viry ve spouštěných souborech je nutným minimem pro on-access skener. Z principu je zřejmé, že on-access skener provede antivirovou kontrolu souboru ještě před okamžikem, než dojde k jeho spuštění. Pokud by kontrolovaný soubor čistě náhodou obsahoval virus, on-access skener k danému souboru zablokuje přístup do doby, než se uživatel rozhodne, co s ním provede (viz. níže). "Otevírání" souborů je velice širokým pojmem, dochází k němu například i při přesouvání či kopírování. Běžný on-access skener tak dokáže ohlídat před spuštěním i případné infikované přílohy elektronické pošty. Antivirový systém bez kontroly elektronické pošty tak není nutné ihned zatracovat, on-access skener ji na poslední chvíli nahradí (tj. těsně před spuštěním přílohy). Kontrolování ukládaných souborů již není zdaleka tak běžné, občas bývají testovány pouze takové soubory, které jsou ukládány odjinud ze sítě do nasdílených disků či adresářů.

    On-access skenery se začaly běžně vyskytovat až s nástupem operačního systému Microsoft Windows 95. Důvodů bylo několik:

  • Operační systém MSDOS byl narozdíl od on-access skenerů až příliš nenáročný na množství operační paměti a výkon počítače. Přítomnost on-access skenerů pod MSDOS tak ostatní činnost počítače citelně zpomalovala a často tak vznikaly ochuzené verze, které dokázaly detekovat pouze nejrozšířenější viry.

  • Operační sytém Microsoft Windows 95 byl na tehdejší dobu natolik náročný na množství operační paměti a výkon počítače, že přítomnost on-access skeneru nehrála významnou roli. Navíc, celá řada OS Windows je narozdíl od MSDOSu známa tím, že "co chvíle, to jiný čas na dosažení cíle". On-access skenery tak do tohoto prostředí zapadnou dokonale a v dnešní době nelze přesně určit, za jakou prodlevu může on-access skener a za kterou jiná aplikace běžící pod Windows.
  • Rychlost dnešních počítačů je natolik vysoká, že přítomnost on-access skenerů nelze v řadě případů vůbec pozorovat.

    Oba typy skenerů provádějí antivirovou kontrolu pouze na těch souborech či systémových oblastech, které jsou pro viry nějak zajímavé. Bohužel je velice těžké zjistit, zda je, či není daný soubor pro virus zajímavý. Antivirové skenery tento problém řeší následovně:

  • Prohlížejí všechny soubory (*.*). Virus se sice nikam "neschová", ale celý test trvá citelně déle a navíc může přinést i řadu falešných poplachů.
  • Prohlížejí soubory podle dlouhého seznamu masek (*.exe, *.doc, *.xl?, *.scr atd.). Virus se může vyhnout detekci v případě, kdy infikuje kupříkladu soubor typu EXE, který má nestandardní příponu (tj. nemá příponu .EXE). Proces skenování je v tomto případě nejrychlejší.
  • Nahlížejí do hlaviček všech souborů a na základě rychlého úsudku rozhodnou, zda bude soubor podroben detailnímu průzkumu v podaní skeneru (tj. zda je soubor pro virus důležitý nebo ne). Obvykle je tato metoda kombinována s bodem č.2. Výsledkem je rychlost na úrovni mezi bodem č.1 a č.2.

    Nahoru

    Skenery uvnitř

    Na počátku éry skenerů byla využívána metoda, vyhledávající viry na základě skupiny (sekvence, řetězec) instrukcí, které byly pro daný virus typické. Jednoduše řečeno, virová databáze byla naplněna sekvencemi známých virů a skener tyto sekvence vyhledával v jednotlivých souborech, popřípadě systémových oblastech disku. Pokud byla sekvence z virové databáze totožná se sekvencí v souboru, skener ho považoval za infikovaný, což oznámil i uživateli. Pro spolehlivější detekci s minimem falešných poplachů používaly některé antivirové programy více sekvencí pro detekci jednoho viru. Vedlejším efektem je v tomto případě i vyšší schopnost rozpoznat novou, dosud neznámou variantu existujícího viru. Rychlost stoupla od chvíle, kdy antiviry vyhledávaly tyto sekvence pouze v místech souboru, kde se daly očekávat (na konci, na začátku). Na druhé straně toho využívali i autoři virů, kteří se snažili umístit tělo viru někam, kde by ho antivirus nenašel (obvykle do středu souboru). Významné snížení množství falešných poplachů přinesla tzv. exaktní identifikace, kdy po nalezení sekvence ještě skener spočítá kontrolní součty konstantních oblastí v těle viru, porovná je s informacemi ve virové databázi a pak teprve upozorní uživatele na téměř jistou přítomnost viru. Exaktní identifikace umožňuje i jemné rozlišování variant jednotlivých virů, o tomto v části věnované pojmenování virů. Výběr spolehlivé sekvence býval relativně snadnou záležitostí. Autoři virů se proto pokoušeli znesnadnit detekci svých dílek tím, že začali psát zakódované viry. V takovém případě je možné sekvenci vybrat pouze z velmi malé části kódu - dekryptovací smyčky. Zbytek těla viru je v každém exempláři jiný. Opravdová legrace ovšem začíná až s příchodem polymorfních virů, které umí generovat různé tvary dekryptovacích smyček. Pro některé z nich je sice možné stvořit sekvence (nebo několik sekvencí), která virus zachytí, ale ta už obsahuje tolik variabilních částí, že se často najdou i zdravé programy, ve kterých nějaký fragment kódu nebo dat takové sekvenci vyhovuje. Většina polymorfních virů ale generuje takové dekryptory, že nelze hledání podle sekvencí použít. Skenery se nějaký čas snažily o rozpoznávání polymorfních virů pomocí jednoúčelových funkcí, ale to byl vlastně krok zpět. Moderní skenery proto obsahují emulátor strojového kódu, kterým se pokouší emulovat provedení smyčky, a pak mohou hledat sekvence až v dekryptovaném těle viru. Dnešní emulátor kódu bývá natolik propracovaným systémem, že za jeho asistence není větším problémem detekovat jakýkoliv, například i ten nejsložitější polymorfní virus. Emulátor kódu znamenal i příchod kvalitnější heuristické analýzy.

    Nahoru

    Heuristická analýza

    Heuristická analýza je další z mnoha kouzelných termínů, které věrně doprovázejí moderní antivirové programy. V podstatě jde o rozbor kódu hledající postupy pro činnost virů typické nebo nějak podezřelé. Tímto způsobem lze odhalit i dosud neznámé viry. Heuristická analýza měla odjakživa své zastánce i odpůrce. Zatímco zastánce těšila možnost detekce neznámých virů, odpůrce strašila zvýšená hladina falešných poplachů. Dnešní heuristická analýza bývá často natolik propracovaná, že výskyt falešného poplachu je spíše náhodou. To však nic nezměnilo na tom, že odpůrci existují i nadále... Starší heuristické analýzy by bylo možné označit za "pasivní". První z nich byla použita v antivirech F-PROT a TBAV. Pasivní heuristika prohledávala soubory a hledala v nich typické příznaky (sekvence znaků) pro virus. Pokud bylo takových příznaků (často označovány jako flags) nalezeno dostatečné množství, byl takový soubor považován za napadený. Příznakem mohlo byt např. volání nějaké služby INT 21h apod. Nevýhodou bylo, že pasivní heuristika nedokázala proniknout pod "povrch" kódovaných či polymorfních virů a tak složitější nedokázala detekovat. Neaktivní heuristiku mohly viry snadno oklamat. Pokud například heuristická analýza využívala sekvenci v hexadecimálním tvaru: B440CD21 (vyjadřuje souhrn instrukcí mov ah,40; int 21h), mohl virus stejnou činnost vyvolat jinou sekvencí: B43FFEC4CD21 (mov ah,3f; inc ah; int 21h). V dnešní době je ve všech známých případech využita "aktivní" heuristická analýza. Základem je emulátor kódu a s ním spojená existence virtuálního prostředí počítače. Emulátor kódu dokáže spustit soubor a jeho část "odemulovat" podobně, jako by ho spustil sám uživatel. Emulátor kódu ovšem veškerou činnost provádí ve virtuálním prostředí a skutečný počítač uživatele tak v případě "spuštění" infikovaného souboru nemůže ohrozit. Pokud by byl zpracovávaný soubor infikován, emulátor v podstatě vykoná i činnost viru, proemuluje dekódovací smyčku (dekryptor) a dostane se tak přímo na povrch viru. Emulátor vykoná i činnost případného viru - proemuluje dekódovací smyčku (decryptor) a dostane se tak přímo k "vnitřnostem" viru, kde už může skener pokojně vyhledávat podle sekvencí. Pokud jsou během emulace sbírány informace o aktivitách programu (např. proces přesměrování vektorů přerušení...), může být do akce zapojena i aktivní heuristická analýza, která na základě získaných informací vyhodnotí, zda se ne/jedná o virus. Jelikož emulace programu probíhá pomaleji než při skutečném spuštění programu, má emulátor nastaven tzv. timeout - tj. čas (či počet instrukcí), po kterém se chod emulátoru na aktuálním souboru zastaví. Tohoto časového limitu některé viry dokážou využít pro svůj prospěch, viz. techniky virů - EPO.

    Poznámka: Heuristická analýza dokáže detekovat pouze takové typy virů, pro které je navržena (makroviry, souborové viry pro Windows, viry pro DOS apod.). Pokud světlo světa spatří nový typ viru (šířící se v jiném prostředí), je podle toho nutné upravit i stávající heuristickou analýzu.

    Nahoru

    Falešné poplachy

    Již od začátku doprovázejí všechny skenery tzv. falešné poplachy (false positives). Za falešný poplach označujeme situaci, kdy antivirus detekuje virus i když ve skutečnosti o žádný nejde. Následuje výpis některých okolností, které mohou vést k falešným poplachům a zároveň k znehodnocení celého antiviru:

  • Použití krátkých sekvencí pro detekci virů. Při použití krátkých sekvencí (obvykle délky několika bajtů) se zvyšuje pravděpodobnost, že stejná sekvence bude nalezena i ve zcela nezávadných oblastech (soubory, systémové oblasti).
  • Použití nesprávných sekvencí pro detekci virů. Příkladem může být sekvence, reprezentující kus textu. Text se sice vyskytuje v těle viru, ale může být například i součástí zcela nezávadného dokumentu.
  • Zvýšení citlivosti antiviru za účelem zvýšení úspěšnosti detekce. Přílišné zvýšení citlivosti antiviru může nejen zvýšit úspěšnost detekce, ale i množství falešných poplachů. Typickým příkladem je "přecitlivělá" heuristická analýza.

    Pokračování příště...

    Použité zdroje informací:

  • Praktická sebeobrana proti virům - Petr Odehnal, Petr Zahradníček - GRADA (c) 1996
  • Jak na Počítačové viry (Chip Special) - Ing. Petr Nádeníček, Olga Přikrylová, Ing. Tomáš Přibyl, Tomáš Vobruba - Vogel Publishing

    Zpět