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 !