Makroviry - vše o nich

podstatně ovlivnily svět počítačů, a dnes pro uživatele znamenají stále větší nebezpečí.

1. Na úvod trochu historie

První funkční makrovirus se objevil před pouhými čtyřmi lety, shodou okolností takřka přesně v době, kdy byly na trh uvedeny Windows 95, takže makroviry jsou stále poměrně mladou záležitostí. Přesto podstatně ovlivnily svět počítačů, a dnes pro uživatele znamenají stále větší nebezpečí. Brzy poté totiž nastalo období masového využívání aplikací, které jejich šíření umožňují. V současné době se jedná hlavně o programy firmy Microsoft: MS-Word a MS-Excel a MS-PowerPoint, ale obecně mohou pracovat ve všech aplikacích, které podporují makra nebo skripty na dostatečně silné úrovni.

Prvním známým makrovirem se stal v létě 1995 virus WM/Concept.A. Velmi rychle se rozšířil zejména v Americe a Anglii, ale například i v severní Evropě. Netrvalo dlouho a objevily se další - WM/Nuclear.A, WM/Colors.A, WM/Hot.A a WM/Atom.A. Jak se později ukázalo, prvním existujícím makrovirem byl WM/DMV.A, který vytvořil již koncem roku 1994 Joel McNamara pro své studijní účely. Svůj virus pak zveřejnil až poté, kdy se objevil WM/Concept.

2. Co je to vlastně makro?

Již první kancelářské aplikace umožňovaly práci s takzvanými makry. Tehdy se ve většině případů jednalo o zapamatování a uložení posloupnosti kláves (klávesnicová makra). Tato makra mohla být opakovaně vyvolána a mohla zjednodušit a zautomatizovat práci aplikačního programu. Postupem se ale způsob práce s makry měnil, takže dnes jsou makra vytvářena ve speciálních vyšších programovacích jazycích, jejichž možnosti se vůbec neliší od klasických programovacích jazyků. Mohou tedy manipulovat s daty aplikace a také s makry, které jsou s danými daty spojeny (například je kopírovat). Bohužel mohou i modifikovat ostatní data na daném počítači.

3. Co je to makrovirus?

Makro (nebo souhrn maker), které je schopno zkopírovat sebe sama z jednoho dokumentu do druhého (a to opakovaně), je nazýváno makrovirem. Je zřejmé, že úspěšné šíření viru vyžaduje několik podmínek. Používaná aplikace musí být široce používána a musí docházet k výměně dat včetně maker mezi jednotlivými uživateli a počítači. Všechny tyto podmínky dnes splňují hlavně programy MS-Word a MS-Excel, a proto jsou zdaleka nejrozšířenější právě makroviry pro tyto dva programy.

Programy z MS-Office neukládají makra, spjatá s dokumentem, do zvláštního souboru, ale do stejného, ve kterém jsou uložena vlastní data (takové soubory jsou například v MSWordu 6 a 95 nazývány šablonami). V takovém případě se tedy nejedná o čistě datové soubory, ale svým způsobem o programy. To zásadně mění přístup k takovým souborům z hlediska bezpečnosti.

Zajímavou vlastností makrovirů je to, že mohou fungovat na různých počítačích (IBM PC, Macintosh) a v různých operačních systémech (Windows 3.1, Windows 95, Windows NT, MacOS). Platformou je pro ně totiž příslušná aplikace. Například virus Tristate je schopen napadat dokumenty všech tří základních aplikací MS-Office. Kromě již zmíněných aplikací MS-Word, MS-Excel a MS-PowerPoint dnes existují makroviry i pro AmiPro a Corel. Tyto viry ale nemají reálnou šanci šířit se, protože obě aplikace ukládají makra do zvláštního souboru. Koncem března 1998 se objevil první makrovirus, který je schopen pracovat v prostředí programu MS-Access, který poté následovaly i další. V praxi však tyto viry neznamenaly žádné nebezpečí, protože mezi uživateli k výměně dokumentů programu MS-Access takřka nedochází.

Existují i viry, které kromě dokumentů napadají i další objekty (Anarchy-6093, který napadá normální programy, Navrhar-12888, který napadá drivery typu VxD pro Windows 95 či Beast-41472, Fabi-15930, Coke-22231 a Heathen-12288). Úplná novinka to ale není, filosofie odpovídá klasickým multipartitním virům, které napadají programy i systémovou oblast disku.

Pro ukládání údajů do souboru používá Microsoft svůj vlastní formát, nazývaný Compound Storage File, který je součástí OLE2 (Object Linking and Embedding). Takový soubor obsahuje svůj vlastní souborový systém, včetně tabulek FAT, adresářů, podadresářů, souborů. Struktura souboru (a způsob uložení maker) nebyla firmou nikdy Microsoft zveřejněna, je definováno pouze API rozhraní, které však v řadě případů nechtějí či nemohou antivirové programy využívat, a to někdy z principiálních důvodů (například pro programy pracující pod MS-DOSem není API k dispozici). Způsob uložení maker se navíc mezi jednotlivými verzemi značně liší.

Jaký je tedy princip činnosti makroviru? Pro MS-Word funguje většina virů následujícím způsobem: makrovirus je uložen v napadeném dokumentu. Pokud je takový dokument otevřen a načten danou aplikací, může být za určitých podmínek virus spuštěn (např. pomocí automaker, ale i jinými způsoby, o nichž se zmíníme za chvíli). Virus pak může zkopírovat sebe sama do nějakého globálního dokumentu, který mu zajistí aktivaci při každém následujícím spuštění aplikačního programu (u MS-Word je to soubor NORMAL.DOT). Při dalších spuštěních aplikace tak zůstává aktivní a může napadat všechny vytvářené, modifikované či jen čtené dokumenty. Toto samozřejmě není jediná cesta, jak se mohou makroviry šířit, je však rozhodně nejpoužívanější.

4. Trochu hlubší pohled

V následujících odstavcích se podíváme trochu podrobněji na způsob činnosti makrovirů a na možnosti, které mají v daném prostředí k dispozici.

4.1 Dokument a šablona

MS-Word verze 6 a 95 rozlišuje dva typy dokumentů, se kterými pracuje. Jednak „čistě datové" dokumenty a jednak šablony. Šablony mohou kromě klasických dat obsahovat různé další informace, jako definice tlačítek lišty, klávesové zkratky, či právě makra. Rozlišení mezi oběma typy není dáno rozšířením ve jméně souborů (.DOC pro dokumenty a .DOT pro šablony), i když tato rozšíření MS-Word standardně používá. Vlastní rozlišení je v jediném bitu ve stavovém slově uvnitř dokumentu. Typ dokument nemůže uživatel změnit pomocí prostředků MS-Word, výjimkou je příkaz makrojazyka, který je používán makroviry. Soubory, označené jako dokumenty, mohou obsahovat makrovirus, který je ale v tom případě v neaktivním stavu. Dokumenty, které makrovirus napadne, jsou vždy změněny na šablony, aby virus mohl být při jejich načtení aktivován.

4.2 Automakra

Vlastností MS-Wordu i dalších aplikací firmy Microsoft, která zcela jistě přispívá k šíření a úspěchu makrovirů, jsou automakra. Jedná se o makra se speciálními jmény, která jsou za určitých podmínek automaticky vykonána. Příkladem mohou být makra AutoExec (automaticky spuštěno při startu programu), AutoOpen (při otevření dokumentu), AutoClose (při uzavření dokumentu) a AutoExit (při skončení aplikace). Naneštěstí provedení těchto maker nejde jednoduše a spolehlivě zakázat, navíc mají přednost makra, uložená v právě otevíraném dokumentu přednost před globálními makry (např. z NORMAL.DOT). To vše přispívá k tomu, že makroviry, které používají právě automakra, patří k nejrozšířenějším a nejúspěšnějším.

4.3 Změny v menu

To však zdaleka není jediný způsob, jakým může být makrovirus aktivován. Ve skutečnosti je celé prostředí dnešních aplikací velmi flexibilní - pomocí maker je možno předefinovat libovolnou položku menu či libovolné tlačítko na stavové liště. Makrovirus pak může být aktivován například tím, že uživatel uloží nebo vytiskne soubor. Tuto vlastnost řada virů využívá i pro skrývání své přítomnosti, když manipuluje s položkou Tools/Macro, popřípadě File/Templates/Organizer. Existují viry, které takovou položku prostě zakáží, změní ji na prázdné okno, simulují chybu či dokonce zobrazí všechna makra, samozřejmě kromě svých. Uživatel pak může jen těžko zjistit prostředky dané aplikace přítomnost viru.

4.4 Předefinování kláves

Další věcí, kterou jsou schopna makra modifikovat, jsou klávesové zkratky a vůbec stisk libovolné klávesy. Virus tak může být aktivován, kdykoli například stisknete klávesu „a", „e" nebo mezerník (virus WM/Gangsterz.A). Je zkrátka vidět, že zabránit viru v jeho aktivaci vlastními prostředky například MS-Wordu je nesplnitelný úkol.

4.5 Metody stealth

Řada virů dokáže v prostředí dané aplikace velmi efektivně skrývat svoji přítomnost podobně, jako to dělají klasické viry. Již jsme se zmínili o některých metodách, například znepřístupnění položky Tools/Macro. I v tomto případě nazýváme takové viry „stealth". Některé jdou dokonce tak daleko, že na položku Tool/Macro mají napojenu svůj reprodukční mechanismus, takže uživatel nejen že nezjistí přítomnost viru, ale svým pokusem virus přímo aktivuje. Přímým důsledkem stealth technik je to, že z prostředí aplikace nelze spolehlivě zjistit, zda je dokument skutečně infikován nebo ne.

4.5 Polymorfismus

Když již hovoříme o podobnosti s klasickými viry, připomeňme si, že i makroviry mohou být polymorfní. O polymorfismu hovoříme tehdy, když je virus schopen být v každé své instanci jiný, modifikovaný, přičemž jeho základní chování zůstává většinou stejné. K polymorfismu používají makroviry opět s úspěchem prostředky samotné aplikace. Ta totiž umožňuje to, že makro může editovat jiné makro. Tělo makra (tedy jeho zdrojový kód) není tedy fixní, ale proměnné. To samozřejmě může ztížit detekci viru. Úpravy, které virus provádí, mohou být velice triviální (pouhé přidávání řádků, změny komentářů, změny jmen proměnných a podobně. V některých případech jsou však velmi komplikované: virus může mít části svého kódu šifrovány, případně uschovány i mimo oblast maker. Ve správném okamžiku pak pouze vytvoří v reálném čase nové funkční makro, které spustí a následně vymaže. Dobrou zprávou je to, že polymorfní makroviry často pracují příliš pomalu a těžkopádně, navíc v některých verzích MS-Wordu nemohou modifikaci vlastních maker skrýt, takže uživatel vidí všechny prováděné změny na svém monitoru.

4.6 Šifrovaná makra

MS-Word umožňuje makra, uložená v dokumentu, zašifrovat. Toto šifrování nemá nic společného s vlastním šifrováním virů, zmíněném v předchozím odstavci. Makra, zašifrovaná programem MS-Word, jsou nazývána execute-only a jsou určena pouze pro spouštění, nelze je tedy žádným způsobem číst nebo modifikovat. Toho využívají distributoři nejrůznějších komerčních maker (chrání svoje intelektuální vlastnictví), správci velkých podniků (mají jistotu, že jim uživatelé makra nemění), ale bohužel také makroviry. Šifrovaná makra totiž nemohou být zobrazena či dokonce modifikována pomocí položky Tools/Macro. Samotné šifrování je natolik triviální, že není nejmenší problém makra dešifrovat a případný virus nalézt. Dnešní antivirové programy s tím nemají nejmenší potíže. Jen to nejde udělat z prostředí MS-Wordu. Vlastní data dokumentu při tomto způsobu ochrany maker samozřejmě zůstávají nedotčena.

4.7 Viry se potkávají...

Na rozdíl od klasických virů nemají makroviry jednoznačný začátek, v řadě případů se skládají z více maker, a tak mají více vstupních bodů a cest, kterými mohou být aktivovány. Typickým příkladem může být virus, který obsahuje makra FileSave (Uložit) a FileSaveAs (Uložit jako). Pokud se na jednom počítači setkají dva různé makroviry, jejichž sada maker se překrývá (jedná se o jména maker), může dojít ke vzniku nového druhu viru, který je kombinací dvou předchozích. V některých případech výsledný „produkt" není funkční, tj. není schopen se dále množit, ale někdy dojde k tomu, že nový makrovirus se bez problémů šíří dál. Dokonce ani nemusí jít o setkání virů, některé makroviry jsou totiž schopny „spolykat" i obyčejná neškodná makra uživatele či dokonce antivirová makra, která se někdy používají.

4.8 Viry degenerují...

Některé makroviry jsou náchylné k tomu, že za určitých podmínek jsou schopny některá svoje makra „poztrácet" a přesto zůstávají funkční. Většinou se jedná o chybu v kódu makra, který někdy zapomene určité části viru zkopírovat . Typickým představitelem této skupiny maker je virus WM/Rapi.A, který má původně sedm maker, ale jejich počet se může snížit až na pět, přičemž virus je stále schopen se šířit.

4.9 Viry bývají poškozeny...

Některé starší verze programu MS-Word obsahují chybu, jež vede za určitých podmínek k tomu, že při zápisu souboru dojde k poškození makra. Mechanismus tohoto poškození není příliš jasný, ale tu a tam dojde k tomu, že makro je zapsáno špatně. Změněna je většinou jen jedna či několik slabik a samozřejmě záleží na tom, kam se zrovna MS-Word „trefí". V makrech je totiž uložen zdrojový text, který může obsahovat řadu věcí, které s funkcí maker přímo nesouvisí (komentáře, řetězce znaků a podobně). Navíc i při poškození některé výkonné funkce může makrovirus celkově zůstat funkční. V praxi to vede k tomu, že se objevuje celá řada různých variant téhož viru, které vznikly „samovolně", tj. bez přímého zásahu člověka. A je jasné, že výše uvedené platí zejména pro ty viry, které jsou více rozšířeny mezi uživateli, a tedy častěji kopírovány.

4.10 Viry mohou být zničeny...

Uvedli jsme si několik způsobů, kterým mohou být viry poškozeny. V některých případech virus může fungovat i nadále, jindy ale přestane být virem - ztrácí možnost šířit se do dalších dokumentů. Uvedený případ často nastává i po „odborném" ale pouze částečném odstranění makrovirů. Nepříjemný může být i případ, kdy manipulační činnost zůstane funkční, takže může dojít k jejímu vyvolání i u jinak nefuknčního viru.

4.11 Různé verze aplikací

Jak je ve světě programového vybavení zvykem, neexistuje pouze jediná verze dané aplikace. Asi to pro tak rozšířené programy ani jinak být nemůže. Brzy po uvedení na trh se totiž objeví nejrůznější lokalizace, servisní aktualizace (service pack) a jen o málo později nová verze, přičemž se celý cyklus opakuje. Jak tento koloběh ovlivňuje makroviry? Dost podstatně. Všimněme si nejdříve lokalizací. Například program MS-Word se vyskytuje v nejrůznějších jazykových verzích. Zajímavé je, že způsob lokalizací se v jednotlivých zemích velmi odlišuje. Srovnáme-li německou a českou verzi MS-Word verze 6, uvidíme, že v německé verze jsou přejmenovány funkce, spjaté s položkami menu (DateiSpeichern místo FileSave), v české verzi se nic takového nevyskytuje. Naopak u nás byla lokalizována i jména datových vnitřních struktur, k čemuž naopak nedošlo v Německu. Asijské mutace programu MS-Word mají data uložena ve formátu Unicode, který používá pro kódování jednoho znaku šestnáct bitů, západní svět ukládá každý znak do osmi bitů, takže tyto programy nejsou vzájemně kompatibilní.

Z uvedeného plyne, že ne všechny makroviry se mohou šířit ve všech verzích programu MS-Word verze 6. Některé se šíří pouze v dané jazykové mutaci, jiné mohou pracovat v několika různých programech. Ve jménu makroviru se takové případy rozlišují uvedením kódu příslušné země (např. německý WM/Xenixos.A:De či tchajwanský WM/Twno.A:Tw). Díky české lokalizaci se České republice a částečně i Slovensku vyhnula první velká vlna šíření makrovirů, které se nebyly schopny šířit v českém MS-Wordu a objevovaly se pouze sporadicky a zejména u firem, které byly v kontaktu se zahraničními partnery. Vše se změnilo až v létě 1997, kdy se objevil WM/CAP.A, který byl schopen šířit se snad ve všech západních verzích programu bez ohledu na způsob lokalizace.

Na jaře 1997 se objevila nová verze kancelářských programů firmy Microsoft pod názvem MS-Office 97. Ta přinesla z hlediska virů řadu novinek. Zcela se změnil programovací jazyk, způsob ukládání maker do dokumentu, ochrana maker a podobně. Obecně lze říci, že vše je v nové verzi mnohem složitější. Podstatným rozdílem je i to, že prostředí maker nebylo lokalizováno vůbec, a tak se úplně stírají rozdíly mezi jednotlivými národními verzemi programu MS-Word97. Změny, které přinesla verze MS-Office 2000, nejsou zdaleka tak radikální, i když opět došlo ke změnám vnitřního uložení maker v dokumentu.

4.12 Automatická konverze

MS-Word97 (součást MS-Office 97) umí automaticky zkonvertovat makra, vytvořená předchozí verzí programu. To se samozřejmě týká i makrovirů, které mohou být převedeny do nového programovacího jazyka, a přitom zůstat plně funkční. Neplatí to pro všechny makroviry, hodně záleží na tom, jaké funkce používají - čím jednodušší virus, tím větší šance na jeho konverzi (je to podobné jako s klasickými viry v DOSovém okně Windows 95 či Windows NT). Makra, která jsou šifrována, zásadně konvertována nejsou. Některé viry sice zkonvertovány jsou, ale ztratí schopnost se množit. Příkladem může být známý virus WM/CAP.A. Z hlediska binárního vyjádření, vlastní činnosti, způsobu detekce i odstraňování jsou zkonvertované makroviry úplně jinými druhy virů, než jejich předchůdci. Přitom vznikají zcela automaticky. Microsoft sice do finální verze zařadil velice primitivní mechanismus na zjišťování tehdy nejrozšířenějších druhů virů, ale ten pouze nepatrně snížil nebezpečí konverze. Navíc se objevil až ve finální verzi, takže některé makroviry (např. WM/Wazzu.A) byly úspěšně konvertovány beta verzí programu (v případě viru W97M/Wazzu.A dokonce uvnitř Microsoftu!). Zveřejněný Service Pack pro Office-97 výrazně omezil nejrozšířenější metodu šíření tehdy známých makrovirů. Přesto se rychle objevila cesta, jak toto opatření obejít. Tento způsob se poprvé objevil ve virech MW97/Class a od té doby je používán i v řadě dalších makrovirů.

MS-Excel z balíku Office 97 umí (na rozdíl od MS-Word) ukládat soubory ve formátu předchozí verze, a to včetně maker, tedy i makrovirů. V takovém souboru jsou pak uloženy vlastně viry dva - jeden pro starší a jeden pro novější verzi programu MS-Excel.

4.13 Jazyk pro vytváření maker

Makroviry (obecně makra) jsou dnes vytvářeny ve vyšších programovacích jazycích. V případě MS-Wordu verze 6 a 95 se jedná o poměrně jednoduchý WordBasic, u Excelu verze 5 o VBA 3 (VBA znamená Visual Basic for Applications) a u aplikací z Office 97 a 2000 o VBA 5. V Office 97 mohou být makra používána u Programu PowerPoint. Navíc Microsoft již poskytl několik licencí na VBA dodavatelům dalších aplikačních programů - časem se tedy mohou vyskytnout makra (a tedy i makroviry) pro řadu jiných aplikací (WordPerfect, AutoCAD). Všechny tyto programovací jazyky jsou velmi mocné - umějí manipulovat nejen s příslušným dokumentem v paměti, ale i s ostatními makry, se soubory na disku, a dokonce mohou komunikovat i s jinými aplikacemi. Samotné vytváření maker je velmi jednoduché a jelikož je k dispozici zdrojový kód, v řadě případů dochází k modifikaci virů jiným uživatelem (např. pouhou změnou textů).

4.14 Šifrování dokumentů

Dokumenty, vytvořené aplikačními programy, mohou být zašifrovány, takže bez znalosti hesla je nelze přečíst. U programu MS-Word verze 6 a 7 jsou šifrována veškerá data včetně maker, normálně tedy bez hesla nejde zjistit, zda takový dokument obsahuje virus nebo ne. Šifrování, které zvolil Microsoft, není příliš silné a dokument je možno dešifrovat. Je samozřejmě etickou otázkou, zda má tuto činnost provádět antivirový program. Různé antivirové programy proto zvolily různý přístup: od ignorování takového souboru přes varovnou informaci o tom, že daný soubor nebyl zkontrolován, až po automatické dešifrování a otestování. Jiná je situace u MS-Word97, kdy je šifrován pouze samotný obsah dokumentu a makra leží v oblasti, která není šifrováním dotčena. Přesto mohou obsahovat odkazy do dokumentu, na což je potřeba dát pozor při odstraňování viru.

4.15 Manipulační činnost virů

Makroviry mohou, podobně jako klasické viry, kromě svého šíření provádět i nejrůznější manipulační činnost. Vše záleží na úmyslech a morálním profilu autora viru. Virus WM/Concept (o kterém se říká, že možná dokonce vznikl v létě 1995 přímo na půdě Microsoftu) obsahuje makro Payload, které ale nic neprovádí, pouze obsahuje komentář „To stačí, abych dokázal svoji teorii". Již následující makroviry ale tak neškodné nebyly. WM/Nuclear.A například přidával na konec dokumentu při tisku či odeslání faxem větu: „A závěrem bych chtěl říci - zastavte všechny francouzské nukleární pokusy v Pacifiku" a pokoušel se nakazit počítač klasickým virem Ph33r-1322, virus WM/Colors.A naprosto náhodně měnil nastavení palety barev Windows 3.1, virus WM/Atom.A za určitých podmínek zašifroval dokument heslem. Virus WM/ShareFun.A se pokusil zaslat sebe sama (spolu s napadeným dokumentem) třem vybraným obětem z adresáře elektronické pošty přes program Microsoft Mail. V poslední době se objevily makroviry, které manipulují s citlivými daty na disku (PGP – virus Caligula) nebo přímo komunikují s ostatními aplikacemi buď kvůli manipulační činnosti či kvůli svému šíření (Outlook a Melissa). Jak je vidět, makroviry mohou provádět ledacos a prostředky na to mají. Velmi nepříjemně se například projevuje v Americe dosud rozšířený virus WM/Wazzu.A. Ten za určitých podmínek prohodí dvě náhodně zvolená slova v dokumentu a na náhodné místo přidá slovo „wazzu". U IBM provedli v roce 1997 zajímavý pokus. Hledali totiž na Internetu právě slovo „wazzu", a to na místech, kde se nehovoří ani o virech, ani o washingtonské universitě, která bývá právě tímto slovem slangově označována. Výsledek byl překvapivý - mnohé dokumenty obsahovaly „wazzu" na těch nejnepravděpodobnějších místech. I když je nativním formátem webových stránek HTML, řada textů je do něho převedena z programu MS-Word, a ten byl právě v těchto případech infikován virem WM/Wazzu. Činnosti podobné náhodnému prohazování slov jsou velice nepříjemné. Následky rozhodně nejdou odstranit automaticky a v řadě případů vůbec.

5. Detekce makrovirů

Jak je možné makroviry detekovat? Viděli jsme, že v samotném prostředí programu MS-Word není spolehlivá a účinná detekce možná. Musí proto nastoupit specializované programy, které jsou schopny makroviry vyhledat jinak. Problémem je zde samozřejmě složitost formátu OLE2 i vlastního makrojazyka. Proto také v pionýrských dobách nastoupila hrubá síla - charakteristické řetězce se hledaly v celém souboru. To bylo samozřejmě velice pomalé a navíc ne vždy účinné. Poté se objevily dvě metody. To první, jednodušší a v současné době zřídka používanou je používání API na OLE2. Druhou metodou, ke které se přiklonila většina antivirových firem, je zpětná analýza jak formátu OLE2 tak makrojazyků.

Pro detekci virů se používají principiálně dvě metody: první je založena na počítání kontrolních součtů těla maker a porovnání se známými hodnotami. Její výhodou je to, že dokáže makrovirus identifikovat přesně. Nevýhoda je zřejmá - nelze detekovat poškozené či modifikované viry (varianty původního viru), tato metoda se naprosto nehodí k detekci sebejednodušších polymorfních virů. Proto se někdy do kontrolního součtu nezahrnují nevýznamné části (například komentáře, prázdné řádky atd.). Druhou metodou je vyhledávání charakteristického řetězce v těle makra. Výhodou je to, že dokáže zjistit i řadu variant původního viru, nevýhodou je větší náchylnost k falešným poplachům a nemožnost přesně virus identifikovat. V praxi se často obě metody kombinují.

Některé antivirové produkty obsahují i heuristickou metodu detekce makrovirů. Ta opravdu může v řadě případů odhalit neznámý virus. Kromě známého problému s falešnými poplachy zde přistupuje i fakt, že důkladná analýza programu psaném ve vyšším programovacím jazyce je velmi komplikovanou záležitostí. To platí zejména pro VBA 5.

6. Odstranění makrovirů

Odstranění makrovirů není jednoduchou záležitostí. Je prakticky nemožné uvést napadený soubor do přesně stejného stavu, v jakém byl před napadením. Přesto existuje řada metod, jak virus eliminovat. U makrovirů pro MS-Word je virus neaktivní, pokud se vnitřní příznak v souboru změní ze šablony na dokument. Také binárním přepsáním jmen maker je virus vyřazen z činnosti. Tyto postupy však nelze doporučit. Správně je potřeba zjistit, která makra jsou součástí viru, tato makra smazat, jejich těla přepsat, zrušit veškeré související odkazy (např. klávesové zkratky) a pokud je to možné, soubor měnit ze šablony na dokument. Situace je ještě komplikovanější u VBA maker, protože jejich struktura je komplikovanější (tabulky proměnných, ve VBA 5 existuje dvojí vyjádření viru) a makra mohou být spjata přímo s daty dokumentu, takže kromě likvidace vlastních maker je nutno provést i zásah do vlastních dat.

7. Virová situace

Počet makrovirů neustále stoupá a za poměrně krátkou dobu již dosáhl skutečně úctyhodných čísel. Je zřejmé, že řada variant starších virů vznikla samovolnou modifikací a že zdaleka ne všechny se volně šíří, a proto znamenají nebezpečí pro uživatele. Viry, které se volně šíří, jsou asi čtyřiceti odborníky z různých zemí publikovány v takzvaném seznamu virů In the Wild (v divočině).

Nejrozšířenějším makrovirem dneška jak u nás tak ve světě je určitě WM/CAP.A, XM/Laroux.A, XM97/Laroux.A, a dále viry z rodiny WM97/Class a WM97/Ethan. Dodnes je překvapivě značně rozšířen i virus WM/Concept.A a WM/Wazzu.A.

8. Závěr

Makroviry dnes představují skutečně reálnou hrozbu a jejich masové rozšíření již v řadě případů zastínilo i klasické počítačové viry, napadající programy či systémovou oblast disků. Je to dáno zejména masovým nasazením příslušných aplikačních programů, masivní výměnou dat mezi nimi (uživatelé si vyměňují dokumenty mnohem častěji než programy) a v neposlední řadě i zvýšeným využíváním elektronické pošty. Šíření infikovaných dokumentů po sítích za pomoci elektronické pošty je mnohem rychlejší a účinnější, a proto nebezpečnější, než klasický přenos virů na disketách. A protože všechny tři zmíněné faktory budou i v budoucnosti zcela jistě nabývat na významu, musíme být připraveni na to, že makroviry budou v nejbližších letech spíše větším než menším problémem.