Makro viry


Poznámka: Tento článek byl psán v době, kdy ještě na trhu nebyl produkt Microsoft Office 97 !

V dalším textu se omezíme výhradně na makroviry pro Microsoft Word. Jména všech menu a položek odpovídají české lokalizaci Wordu. Pro lepší pochopení problému si připomeňme některá fakta:
  • Makroviry se mohou šířit a projevovat jen v prostředí Wordu.
  • Pokud tento není aktivní, lze se soubory naprosto bezpečně manipulovat. Není tedy nutné provádět takové akce, jako zavádění systému z čisté diskety.
    Nebezpečí se ovšem skrývá tam, kde je Word nastaven jako implicitní prohlížeč a spouští se zcela automaticky, příkladem může být prohlížení elektronické pošty. V mnoha případech je možné nahradit plný Word jeho omezenou verzí (např. WordView), která není schopna makra zpracovávat a pro makroviry tedy nepředstavuje použitelné prostředí. Nevýhoda spočívá v tom, že WordView prostě není Word a nemusí být schopen správně zobrazit všechny informace v dokumentu obsažené.
    Omezení šíření makrovirů lze dosáhnout použitím jiného formátu pro uchování (a zejména pro výměnu) textů, než je formát .doc tam, kde je to možné. Příkladem může být formát .rtf, který je schopen nést některé typografické informace o textu, ale nemůže obsahovat makra. Tato metoda je schopna vyřadit z boje většinu makrovirů, existují ovšem i takové, které dokáží přinutit Word, aby i pod označením .rtf používal běžné dokumenty (příkladem budiž v současnosti stále rozšířenější makrovirus Cap).
    Pokud se tedy smíříme s tím, že budeme používat plnohodnotný Word a dokumenty tak, jak je Microsoft vymyslel, musíme se poohlédnout po jiných metodách. K tomu, aby makrovirus zajistil své další šíření musí docílit svého spustění. K tomu účelu bývá zneužívána šablona normal.dot, kterou Word při svém spuštění automaticky načítá a interpretuje. Tato šablona představuje jakési globální prostředí Wordu a mnoho metod je tedy zaměřeno právě tímto směrem.
    Word disponuje řádkovými volbami, které omezují provádění některých automatických akcí. Tyto volby lze zadat kliknutím pravým tlačítkem na ikoně zástupce Wordu, menu Vlastnosti, panel Zástupce.
    Volba /a zakáže automatické spuštění makra AutoExec v načítaném dokumentu. Volba /m znemožní automatické spuštění makra AutoExec v načítaném dokumentu.
    Takto spuštěný Word ovšem nebude imunní vůči ručnímu otevření infikovaného dokumentu, navíc ztrácíte možnost používat vlastní AutoExec a jiná makra z globální šablony.
    Uživatelům Wordu 97 lze doporučit využití možnosti nahrát dokument bez maker, kterou Word nabízí v případě, že v nahrávaném dokumentu nějaká makra najde. Není vhodné toto varování vypínat.
    Pokud se vám podaří při spouštění Wordu držet klávesu shift, neprovede se makro AutoOpen, obdobně, stisknutý shift při ukončení Wordu zabrání provedení makra AutoClose. Pro rutinní používání však tato rada příliš praktická není, protože dříve či později na stisk klávesy shift zapomenete (nadto jsou situace, kdy se stisk této klávesy neprojeví).
    Vhodnější řešení této situace nabízí obecný zákaz spouštění automaker. Toho lze dosáhnout vytvořením makra AutoExec, které bude obsahovat příkaz

    DisableAutoMacros 1


    Takto vytvořené makro pak musí být uloženo v globální šabloně případně v libovolné šabloně umístěné v adresáři pro automatický start. Je zřejmé, že jediné automakro, které se provede, je právě makro AutoExec, tato metoda tedy není použitelná, pokud sami využíváte některá jiná automakra.
    Za normálních okolností může makrovirus zapsat do globální šablony bez jakéhokoliv varování, doporučujeme proto využívat možnost podmínit takovýto zápsi dotazem. Toto lze docílit zaškrtnutím položky výzva pro uložení normální šablony v menu nástroje/možnosti/ukládání. Musím ovšem připomenout, že tato výzva se objeví až při ukončení Wordu. To že virus má možnost tuto volbu programově vypnout už snad ani připomínat nemusím, to je u Wordu normální.
    Pokud neprovádíte příliš časté změny v globální šabloně, je velmi účinné ochránit globální šablonu proti zápisu nastavením systémového atributu read-only. Na rozdíl od předchozích případů by nemělo být možné, aby virus v jednom spuštění odstranil atribut read-only a poté zapsal do globální šablony. Také je možné (a velmi vhodné) si vytvořit záložní kopii souboru normal.dot a v případě napadení Wordu nahradit tuto infikovanou šablonu původní. V nouzi lze globální šablonu i smazat (Word si vytvoří novou), přijdete tak však o všechna uživatelská nastavení, která v ní byla uložena.
    Proti jednotlivým konkrétním virům se lze někdy bránit vytvořením některých speciálních maker. Například virus Concept stejně jako český virus Bertík lze od další činnosti odradit vytvořením maker Payload případně FileSaveAs. Pokud je některé z těchto maker přítomno, zmíněné viry se nebudou nijak projevovat ani šířit. Některé méně chytré antivirové programy ovšem mohou na tato makra reagovat poněkud podrážděně (t.j. zobrazením falešného poplachu).
    Při podezření z napadení Wordu je vhodné zkotrolovat jestli a jaká makra jsou aktivní. Bohužel, prostředky Wordu umožňují virům, modifikovat menu, takže typický postup Nástroje/Makro může být z důvodů nepužitelný (ovšem už samotné zmizení položky Makro z menu signalizuje něco nekalého). O něco spolehlivější metoda ke kontrole maker vede přes menu Soubor/Šablony, tlačítko Organizátor, panel Makra. Ovšem ani tato metoda není dokonalá, bohužel se mi nepodařilo najít způsob zobrazení seznamu maker, který bych byl ochoten označit za spolehlivý.
    K automatickému zavedení maker slouží kromě globální šablony také všechny šablony uložené ve speciálním adresáři. Jméno tohoto adresáře je v různých variantách Wordu různé a lze jej nalézt pomocí menu Nástroje/Možnosti panel Umístění souborů, položka Spouštění. Typické jméno je wrdstart nebo startup v adresáři Wordu. Některé viry umisťují svá makra do tohoto adresáře a nevyužívají NORMAL.DOT, je tedy vhodné při podezření prohlédnout jeho obsah.
    Mezi makroviry je populární metodou, jak dosáhnout svého cíle vytvoření a spuštění běžného dosového programu. K tomu virům velmi dobře slouží program Debug, který je standardní součástí DOSu i Windows a je schopen vytvořit binární program z textového scriptu obsaženého v těle makroviru. Pokud program debug.exe (dříve DEBUG.COM) přejmenujete, znemožníte makrovirům jeho zneužití.
    Žádná z výše popsaných metod není stoprocentní a ani jejich kombinace nevyloučí možnost napadení virem. Přesto ale vhodným výběrem a kombinací metod, které vás neomezují, lze dosáhnout nezanedbatelného zvýšení bezpečnosti a omezení šíření makrovirů.

    Zdroj: Virus Info - Makroviry? Bijte je! - Grisoft s.r.o.