Chip
12/2005: antivirový koutek
Už před několika lety jsme si povídali o pojmenovávání virů. Virům je možno
přidělovat jména různým způsobem, z nichž bohužel žádný není dokonalý. A
zmatek, který mezi jmény od jednotlivých antivirových firem panuje, je
naneštěstí obrovský. Je běžné, že se ve firmě používá více než jeden antivirový
program – jiný například na pracovních stanicích, jiný na serverech, jiný pro
kontrolu pošty či na firewallu. V případě infekce je pak bohužel běžné, že
správce obdrží různá hlášení s různými jmény virů a naprosto netuší, zda
se jedná o ten samý škodlivý kód, či o různé typy infekce. Situaci zhoršují i
autoři virů, kteří v několika případech doslova chrlí nové a nové varianty
svých škodlivých programů, které jsou si velice podobné, a které různé firmy
detekují různě (například genericky), což vede k „desynchronizaci“
pojmenovávání – zatímco některé varianty jsou detekovány jedním programem pod
jedním jménem, jiný je může pojmenovávat každou zvlášť. To se týká například
virů Mytob, Beagle, SDBot a podobně. Co s tím? Může existovat nějaké
obecné schéma, které by uvedenou situaci řešilo a výsledný zmatek odstranilo? Není
možno nalézt shodu, která by uživatelům s tímto problémem pomohla?
Krásným příkladem, kdy podobné názvosloví funguje, je pojmenovávání
hurikánů v Atlantiku. Každý dostane přiděleno předem dané jméno, které
odpovídá písmenu v abecedě, a tím i pořadí, ve kterém se daný hurikán
objevil. Jména jsou navíc politicky korektní v tom, že se střídají mužská
a ženská. Nikdo si proto nesplete Katrinu s Ritou či Wilmou. Tento způsob
se však na škodlivé programy naprosto nehodí, a to hlavně proto, že se jich
objevuje obrovské množství. Nejde jen o omezený počet písmen abecedy (který byl
letos stejně překročen) ale o určení pořadí výskytu a další problémy. Kdyby
v Atlantiku vznikalo více než tisíc tropických bouří a hurikánů měsíčně,
byl by tento systém také zcela bezcenný.
Jaké tedy dnes existují způsoby pojmenovávání virů? Většina antivirových
programů vychází z takzvaného schématu CARO, který vznikl už před patnácti
lety a který byl v poslední době revidován. Ten v sobě zahrnuje
několik základních principů a definuje jednotlivé položky, z nichž je řada
nepovinných. První položkou je platforma, definující prostředí, v němž škodlivý program pracuje
(například Win32, VBS, PalmOS, ExcelMacro atd.). Následuje jméno rodiny virů
(jediná opravdu povinná položka). Platí pravidla, že do stejné rodiny virů
patří pouze ty viry, které mají stejný mechanismus šíření, jméno viru nesmí obsahovat názvy produktů,
firem, lidí, vulgární výrazy (což může být při existenci stovek jazyků na Zemi
někdy docela problém), jména zvolená autory virů, názvy míst, kde se virus
poprvé objevil, a podobně. Následovat může několik dalších položek –
podvarianta, délka viru, varianta, označení zvláštních vlastností (mass mailer)
či jazyková specifikace. Z nich je nejdůležitější označení varianty, ke
kterému se používají písmena A až Z, následována kombinacemi AA až ZZ, AAA až
ZZZ a tak dále. V praxi nikdo zcela důsledně toto schéma nedodržuje –
zápis některých virů by byl možná pro uživatele větším šokem než jeho vlastní
výskyt na jeho počítači. A ani toto schéma nemůže vyřešit základní rozpor, o
kterém jsme se již zmínili výše, a to, že se u rychle přibývajících variant
dříve či později jejich označení různými antivirovými programy začne lišit.
V loňském roce vznikla speciální iniciativa,
podporovaná americkými úřady, která nese vznosný název CME (Common Malware
Enumeration). Ta si klade za cíl vnést do této oblasti jasno a vyřešit tento problém
jednou pro vždy. Každému (naštěstí ne úplně každému, ale každému většímu)
incidentu, způsobenému škodlivým programem, je přiřazeno „náhodné“ číslo CME. A
tím je celý problém vyřešen! Opravdu je to tak jednoduché? Bohužel nikoli – i
tento koncept obsahuje řadu úskalí. Prvním je to, že číslo přiřazuje jakási
komise odborníků, ovšem antivirové firmy nemohou s uvolněním detekce
čekat, až budou mít přiděleno číslo, a tak postupují stejně, jako dosud. Poté,
co je číslo přiděleno, je mohou uvést jako referenci na webu. Zásadní rozdíl
oproti klasickému jménu je to, že se nepojmenovává jednotlivý škodlivý program
ale „incident“ – událost. Jenže pak může několik škodlivých programů nést
stejné číslo CME (všechny byly částí stejného incidentu). A pokud je některý
(typicky knihovna DLL) použit i při dalším incidentu? Dostane další číslo CME
nebo mu zůstane to původní? Podobně se může stát, že jediný (například
polymorfní) škodlivý program obdrží více čísel CME proto, že se při prvotní
analýze neodhalí, že se jedná o stejný kód. Co potom? Na tyto otázky neexistují
uspokojivé odpovědi, a tak se pravděpodobně CME stane jen dalším ekvivalentem
jména virů, které na svých stránkách antivirové firmy uvádějí. Zatím
nejspolehlivější pomůckou tak zůstávají jen nástroje, které porovnávají názvy
škodlivých programů, hlášené jednotlivými antivirovými programy: statický VGREP
na stránkách www.virusbtn.com či online
stránky virusscan.jotti.org či www.virustotal.com,
které umožňují poslat podezřelý soubor a okamžitě zjistit, jak jej jednotlivé
antivirové programy pojmenovávají. Je to rychlé, bezpečné a žádné číslo CME to
nepotřebuje J !