NA ÚVOD, ANEB PROČ VZNIKLA TATO KNIHA Je několik dobrých důvodů, proč nabídnout uživateli výpočetní techniky základní informaci o počítačových virech. Důvod 1. Problematika počítačových virů je mediálně propírána v intervalech zhruba 1/2 až 3/4 roku. Většinou u příležitosti destruktivní akce nějakého výjimečně rozšířeného viru nebo u příležitosti okurkové sezóny. Denní tisk se vyjadřuje s přesností papouška tahajícího z koše horoskopy a běžného uživatele tím jen mate. Objektivní a přitom stručná informace, to je to, co vám chceme v naší knížce nabídnout. Důvod 2. Skoro ke každému komerčnímu počítačovému programu je přiložena dokumentace, sdělující, že tlačítkem A, vyvoláte funkci B, která otevře okno C, vy pak jen zadáte D a je to hotovo. Možná to stačí u textového editoru nebo tabulkového procesoru, ale u antiviru to rozhodně nestačí. Nebezpečí chyby z neznalosti je v případě užívání antiviru o řád vyšší, než u jiného software. A základy problematiky počítačových virů mohou pomoci jednak lépe užívat antivirový software a jednak se i vyhnout častým uživatelským chybám mnohdy s těžkými následky. Důvod 3. Mezi uživateli koluje celá řada pověr o tom, co jsou všechno schopny počítačové viry natropit a co zase prý rozhodně nemohou. Tyto pověry je nutno mýtit, protože záporně ovlivňují přístup uživatele k problematice antivirové ochrany. A tak se v kapitole, speciálně tomu věnované, vyjadřujeme k takovýmto pověrám a mýtům a boříme je. Možná, že bychom našli další důvody, ale tyto budou hlavní. A tak si Počítačové Viry a Vy, prosím, přečtěte, protože Vám nabyté znalosti mohou být v budoucnu užitečné. 5
TROŠKA ANATOMIE VAŠEHO POČÍTAČE Pro vcelku úspěšnou obsluhu automobilu jistě stačí vědět kudy se dolévá benzín a k čemu je to velké kolo před sedadlem řidiče. Přesto se asi shodneme na tom, že je dobré vědět i něco málo navíc. Pokusíme se tedy v této kapitole shrnout (nutně s troškou zjednodušení) nejdůležitější informace o anatomii počítače. Pokud víte co je to boot sektor a nezaskočí vás dotaz "Jaký používáte souborový systém?", tak tuto kapitolu můžete v naprostém klidu přeskočit. My ostatní začneme tím, že se podíváme do počítače, co vlastně obsahuje. Základní deska Základní deska (motherboard) je to, co dělá počítač počítačem. Zde je (mimo jiné) vlastní procesor, operační paměť, BIOS a paměť CMOS. Z našeho pohledu stojí za bližší zmínku především: BIOS BIOS je nemazatelná paměť, obsahující nejnižší úroveň obsluhy počítače. Jsou zde všechny podprogramy pro obsluhu disku, klávesnice, zobrazovaní atp. Chytří výrobci základních desek v poslední době přišli (bohužel) na skvělou ideu - umístit BIOS do Flash paměti, kterou je možné přeprogramovat. Je obtížné odhadnout jak užitečná je tato vlastnost pro uživatele, nicméně autorům virů jako Win32/CIH nebo Emperor to jistě udělalo radost - jejich výtvory se v rámci svých destrukčních hrátek pokouší obsah BIOSu přepsat náhodnými nesmysly a tím vyřadit počítač z provozu. Naštěstí i ve způsobech přeprogramování Flash BIOSu vládne stejná kompatibilita, jako v jiných oblastech dnešních PC a tak většina základních desek tento útok přečká bez újmy na zdraví. 6
CMOS Paměť CMOS je vybavena samostatným napájením a obsahuje veškeré informace o konfiguraci základní desky - počínajíc počtem disketových mechanik a reálným časem, přes typy pevných disků, sériových portů až po ty strašlivosti, které najdete v SETUPu každého počítače (a kterým stejně nikdo nerozumí). Pro viry je CMOS zajímavá především jako oblíbený cíl destrukčních akcí. Triviální útoky spočívají v přepsání obsahu CMOS nesmysly a existují i poněkud sofistikovanější viry, které se třeba pokusí nastavit nějaké heslo pro přístup k počítači nebo vypnout integrovanou antivirovou ochranu. Kompatibilita, tak typická pro současná PC, ovšem vládne i v této oblasti a tak se viru často stane, že přepíše položku, která má pro konfiguraci jiný význam. Výsledky takové změny jsou obtížně predikovatelné. Z technického pohledu je ještě důležité upozornit na to, že CMOS paměť nemůže obsahovat žádný program a nemůže se tedy stát místem, kde by nějaký (obzvlášť zlomyslný) virus přežíval. Operační paměť V této paměti se odehrává veškerá činnost počítače a zde sedí i všechny běžící programy (viry v to počítaje). Naštěstí (v případě výpadku proudu naneštěstí) ztrácí při vypnutí počítače svůj obsah. To ovšem neznamená, že viru přítomného v paměti se zbavíte vypnutím a zapnutím počítače - odněkud se do paměti dostal a jistě bude schopen a ochoten si to zopakovat. Diskety, CD-ROM mechaniky Diskety a CD jsou pro nás zajímavé především jako potencionální brána do systému, kudy může vstoupit infekce. Disketa Diskety (díky své omezené kapacitě nebo možná přesněji díky bumbrlíčkovským nárokům dnešních programů) už dávno ztratily své výsadní postavení nejčastěji používaného média pro přenos informací. 7
Historické tradice (v tomto případě pocházející z dob, kdy ceny pevných disků nedovolovaly tak odvážné myšlenky jako strčit do PC prostor k uložení až 20 MB) jsou respektovanou součástí dnešního stavu PC. V těch blahých dobách představovala disketa jediné médium, na kterém mohl být uložen operační systém (pokročilejší verze operačního systému byly tak velké, že musely být dokonce uloženy na dvou nebo třech disketách!) a tomu je podřízena i její struktura. Na jejím samotném začátku (boot sektor) se nachází magický záznam, který obsahuje nejen informace o typu diskety, ale také krátký zaváděcí program. Pokud počítač při svém startu zjistí přítomnost diskety v mechanice, tak definovaným způsobem zavede obsah boot sektoru do paměti a předá řízení programu, který se v něm nachází. Tzv. boot viry (o kterých se tady ještě dočtete) zneužívají této vlastnosti počítače ke svému šíření, ale ústup od používání disket způsobil jejich pomalé vymírání. Mimochodem. K definitivnímu vymření této kategorie virů můžete přispět i vy (pokud nepatříte k radikálním ekologickým aktivistům, pak by to mohlo být v rozporu s vaším přesvědčením). Stačí si nastavit v SETUPu BIOSu pořadí zavádění operačního systému na hodnotu "C:, A:". Za boot sektorem následuje tabulka se záhadným označením - FAT. Jde o zkratku z anglického File Allocation Table a nemá smysl na tomto místě podrobněji rozebírat její obsah. Stačí vědět, že tato tabulka obsahuje klíčové informace o rozložení souborů na disketě a její poškození nebo zničení vede ke ztrátě dat, která mohou být obnovena pouze speciálním servisním zásahem. FAT je na disketě dokonce dvakrát, jde zřejmě o pozůstatek optimismu tvůrců MS-DOSu, kteří předpokládali, že DOS vybaví nějakou schopností korekce dat, která by umožnila číst obsah diskety i při poškození jedné z kopií FAT. Za FAT následuje tzv. kmenový adresář (root directory), obsahující jména adresářů a souborů a pak už jsou zde jenom roztroušeny kousky souborů (právě FAT určuje co patří k sobě) a případných dalších adresářů. 8
CD-ROM Vnitřní struktura CD-ROM pro nás není nijak zajímavá. Za zmínku stojí spíše (mnohdy neoprávněná) důvěra uživatelů - je to na CD, tak tam přece nemůže být virus. Není to pravda a víme o mnoha CD (počínajíc přílohami herních časopisů, přes demonstrační CD renomovaných firem až po materiály rozesílané vládními institucemi), nad kterými by srdce sběratele virů zajásalo. Mezi "virově nejhodnotnější" CD patří pirátské disky s rozsáhlými sbírkami her i užitečných programů. Tady ovšem platí, že kdo podobné věci používá, tak si své problémy zasloužil. Pevný disk Pevný disk obsahuje všechna vaše data a proto je bezkonkurenčně nejcennější částí vašeho počítače. Pevné disky existují v nepřeberném množství typů, druhů a odrůd - to nás ovšem zajímá pramálo. Podstatný je způsob, jakým si váš disk ukládá informace. Něco málo mají všechny existující způsoby (souborové systémy) společného: Stejně jako u disket má i u pevného disku jeho první sektor zvláštní význam. Obsahuje kraťoučkou tabulku, která říká jak je disk rozdělen (partition table). Tato tabulka je zodpovědná za to, že i na jednom fyzickém disku můžete vidět několik tzv. logických disků (to je to, čemu operační systém říká C:, D:, E:, F:, atd:). Konkrétní obsah jednotlivých částí disku, popsaných tabulkou rozdělení disku, už je závislý na použitém souborovém systému. A asi nepřekvapí, že v prvním sektoru pevného disku je kromě tabulky rozdělení i krátký zaváděcí program, který slouží ke spuštění operačního systému po startu počítače - oblíbený to cíl útoku boot virů a multipartitních virů. Proto se tomuto sektoru také občas říká MBR (master boot sector). Souborový systém FAT Ano. Je to náš starý dobrý známý, kterého jsme potkali už u disket. Od doby svého vzniku se naučil předstírat podporu dlouhých jmen 9
souborů a ve své poslední reinkarnaci (FAT-32) umí zacházet i s velkými disky, ale jinak se příliš nezměnil. Začíná boot sektorem, následuje tabulka FAT, kmenový adresář a vlastní prostor pro uložení dat. Dlouhá jména souborů si zaslouží zmínku - ve skutečnosti pracuje souborový systém FAT s krátkými jmény (maximálně 8 znaků jména plus tři znaky přípony) a dlouhá jména si ukládá zvlášť. To může být zdrojem obtíží - například nápad nastartovat počítač v nějakém historickém MS-DOSu a na disk obsahující dlouhé názvy souborů poštvat některý z programů pro úklid disku, je možno označit za velmi nešťastný. Druhou kategorii obtíží představuje použití českých znaků v názvech souborů. Takové názvy jsou zpracovány stejně jako dlouhé názvy souborů - pro ukládání na disk jsou převedeny i na krátký tvar. Tato konverze je provedena podle chytrých tabulek, které obsahuje vaše lokalizovaná verze operačního systému. Na tom jistě není nic špatného. Škoda, že pak takový soubor (v důsledku jiné konverze) nemusí jít otevřít v prostředí jiné jazykové lokalizace. Nové souborové systémy (NTFS, HPFS, EXT2,...) Souborový systém FAT byl původně navržen skutečně pro diskety a pro operační systém ve kterém může současně pracovat pouze jeden program. Přes všechny úpravy a vylepšení už dnes patří do muzea - někam k děrným štítkům. Moderní operační systémy si proto přinášejí i vlastní souborové systémy jako je NTFS (Windows NT), HPFS (OS/2), EXT2 (Linux) a mnoho dalších. Jejich vnitřní struktura je řádově složitější a nemá žádný smysl se jí na tomto místě podrobněji zabývat. Důležité je si jenom uvědomit, že pokud provedete start počítače z čisté systémové diskety (což může být v případě některých typů virové infekce zatraceně důležité), tak neuvidíte obsah disků s těmito souborovými systémy. 10
Nezajímavé zbytky Video karta, síťová karta, modem, napájecí zdroj - všechny tyto součásti počítače nejsou (z hlediska jejich zneužití počítačovými viry) nijak zajímavé a nemá smysl plýtvat zde místem na jejich popis. 11
POČÍTAČOVÉ VIRY POČÍTAČOVÝ VIRUS?! Je zajímavé, že se počítačové viry objevují ve sci-fi literatuře již v šedesátých letech. V té době opravdu pouze jako produkt fantazie spisovatelů tohoto žánru. Teprve v letech osmdesátých jim však rozvoj techniky dovolil reálnou existenci. V roce 1983 Dr. Frederick Cohen experimentuje na Pennsylvánské univerzitě se samomnožícím se kódem a v souvislosti s ním začíná používat označení virus. Uvědomme si však, že v té době o existenci počítače PC v jeho dnešní podobě, a hlavně rozšíření, se nezdálo ani autorům již zmíněné sci-fi literatury. Skutečným počátkem existence počítačových virů, tak jak je známe dnes, je rok 1986, kdy se narodil Brain - první virus pro osobní počítače IBM PC. Bratři Basid a Amjad Farooq Alvi (provozující v pakistánském Lahore malý softwarehouse) tak odstartovali závod virů a antivirů, kterého se všichni (většina ovšem nedobrovolně) účastníme dodnes. Od té doby se mnoho změnilo. Autoři virů zvládli techniky, které byly označovány jako nemožné - objevily se viry, ukrývající se před antivirovými programy (stealth viry), objevily se viry, které modifikují svůj vlastní kód (polymorfní viry), objevily se viry, které dokázaly napadnout i jiné objekty než výkonné programy (makroviry). To vše dává předpoklad k tomu, že vývoj ve virovém světě se rozhodně nenachází ve své konečné fázi. S příchodem nových operačních systémů se objeví nové viry, které budou využívat jejich specifických vlastností a z dnešního pohledu budou vybaveny neuvěřitelnými a nemožnými schopnostmi. Na druhou stranu je však stejně dobře zřejmé, že neustrne ani vývoj v oblasti antivirových programů, které dosud dokázaly bez větších problémů zvládnout všechny virové triky. Vraťme se však k vlastnímu počítačovému viru. Bývá zvykem začít definicí, pokusme se tak učinit i v tomto případě: 12
Počítačový virus je spustitelný nebo interpretovatelný program, který je schopen sám sebe připojovat k jiným programům a dále se z nich (bez vědomí uživatele) šířit. Tato definice sice není obzvlášť dokonalá a možná není ani na první pohled příliš srozumitelná, ale to nejdůležitější obsahuje. Existují totiž další programy, které bývají občas za viry zaměňovány nebo vydávány. Příkladem může být třeba trojský kůň - program, který se vám za své spuštění odvděčí několika řádky sprostých textů a smazáním obsahu pevného disku nebo nějakou jinou destrukční akcí. Méně škodlivou variantu představují různé žertovné programy způsobující pobíhání roztomilých broučků po obrazovce nebo zoufalé výkřiky počítače, který se dožaduje odstranění vody ze svého matematického koprocesoru. Jak se viry šíří Šíření je základní a nutnou vlastností programu označovaného jako počítačový virus. K tomu, aby se virus mohl šířit, potřebuje několik maličkostí. Především vhodné prostředí (počítač s operačním systémem, který virus zná a je schopen jej používat) a objekty, které dokáže napadnout (a které jsou nějakým způsobem šířeny). Na počítačích označovaných jako PC známe zatím pouze tyto typy objektů, které mohou být napadeny virem: Spustitelné soubory - programy Jedná se obvykle o soubory s příponami EXE, COM, SYS. Program může být uložen i v souboru s jinou příponou - typicky tehdy, když rozsáhlejší systém používá několik různých modulů a nahrává si je do paměti sám podle potřeby. Bývá zvykem takové soubory označit příponou OVL, ale často jim jejich autoři dávají zcela nahodilé přípony. Dobrým příkladem spustitelného souboru s neobvyklou příponou je třeba šetřič obrazovky pro Windows (.SCR). 13
Systémové oblasti Cílem virové nákazy mohou být tyto systémové oblasti - Partition tabulka nebo Boot sektor pevného disku a Boot sektor diskety. Pokud jste pozorně četli předchozí kapitolu víte, že tyto systémové oblasti obsahují kód, který je vykonáván při startu počítače. Poznámka: V prostředí Windows mohou viry napadat některé klíčové systémové soubory (třeba KRNL32.DLL) speciálním způsobem, zcela odlišným od jejich útoku na běžné spustitelné soubory. Není příliš jasné, zda jde spíše o infekci systémové oblasti nebo o infekci spustitelného souboru, ale debatu na toto téma raději přenecháme nadšeným teoretikům. Dokumenty, které mohou obsahovat makra Jde o texty napsané v Microsoft Wordu (obvykle mají příponu DOC nebo DOT), tabulky z Excelu (obvykle XLS), prezentace vytvořené PowerPointem (obvykle PPT), databáze z Accessu (obvykle MDB) a některé další datové soubory. Ostatní objekty Pokusy o napadání jiných typů objektů (třeba zdrojové texty, OBJ soubory, dávky) jsou sice zajímavé, ale z praktického hlediska představují velmi malé nebezpečí. Zábavnější jsou pokusy infikovat Java applety, případně VBScripty a JScripty obsažené v HTML stránkách. Microsoft navíc připravil i variantu těchto scriptů jako náhrady historických DOSových dávek - VBS (Visual Basic Scripting) je standardně instalovanou součástí Windows 2000 a může být instalován i ve starších verzích tohoto operačního systému. V době uzávěrky tohoto textu je známo prvních pár pokusů o viry infikující výše uvedené objekty a pozorně sledujeme další vývoj v této oblasti. Kde se viry nešíří Kromě těchto virových cílů existují objekty, které v žádném případě nemohou být virem napadeny, přestože lidové zkazky (a bohužel občas i články v časopisech) to tvrdí: 14
CMOS paměť Tato paměť slouží k uchování informací o konfiguraci počítače. Virus může tuto paměť smazat nebo v ní změnit některé údaje, ale nemůže ji použít pro umístění svého kódu. Brání tomu nejen její velikost (či snad přesněji její malost), ale hlavně to, že nemůže obsahovat spustitelný kód. Datový soubor Virus se samozřejmě může ukrýt kam chce, ale napadení souboru JPG (nejlépe s nějakým obrázkem anatomických detailů lepé děvy) je pro něj zhruba stejně efektivní, jako kdyby při hře na schovávanou spáchal hráč sebevraždu. Takový soubor totiž nemůže obsahovat spustitelný program. Virus by napadení takového objektu sice pravděpodobně zvládl (a tento objekt zničil), nicméně již nikdy by se z tohoto objektu nedokázal rozšířit dále. Poznámka: O tom co je (a co není) spustitelný soubor nerozhoduje jeho přípona, ale jeho obsah a způsob jakým je používán. Už v dobách DOSu se stávalo, že programátoři (často autoři her) pojmenovali některé moduly oku lahodícím, ale nic neříkajícím, jménem. Nebohý uživatel pak netušil, jak je možné, že se mu v počítači neustále znova a znova objevuje triviální virus napadající pouze EXE soubory, i když všechny tyto soubory kontroloval a byly v pořádku - virus číhal třeba v souboru JBOND.007. Z dnešní doby stojí za zmínku třeba spořiče obrazovky pro Windows, které jsou sice normálními EXE soubory, ale jejich standardní přípona je SCR. Významnou výjimku z tohoto pravidla představují dokumenty obsahující makra (Microsoft Word, Excel a některé další moderní kancelářské balíky). Tiskárna Komunikace s tiskárnou probíhá tak, že počítač odesílá data a jediné, co dostává zpět, jsou signály potvrzující jejich přijetí a informující o stavu, ve kterém se tiskárna nachází. Nic viru pochopitelně nebrání, aby se na tiskárnu odeslal, ale výsledkem bude pouze pár stran papíru potištěného nesmysly. S jistotou dále sdělujeme, že se virus nedokáže usadit ani v monitoru nebo třeba klávesnici. 15
Obecně oblíbené omyly Virům je také přisuzována i řada dalších schopností, kterými ovšem nedisponují, především z toho důvodu, že jimi disponovat nemohou. Zlý virus může zničit hardware Snad nejstručnějším možným komentářem je, že hardware, který lze zničit programovými prostředky si ani nic jiného nezaslouží. Bývají občas uváděny příklady muzeálních kousků počítačových komponentů, které byly ochotny se špatným ovládáním poškodit. Například některé pevné disky, které po provedení low-level formátu upadly do stavu hluboké letargie, odstranitelného pouze firemním softwarem. Nebo monitory, které, nedbajíce vlastního nebezpečí, se pokoušely vyhovět jakémukoli nesmyslnému požadavku o nastavení synchronizačních frekvencí, což mohlo způsobit tepelné přetížení. Dnešní hardware by měl podobné pokusy zvládat bez potíží, a pokud by se přece jenom našel nějaký méně odolný kousek, tak půjde zcela jistě o velmi lokální problém. S troškou zlomyslnosti si také můžeme uvědomit, že ladění viru, s podobnými schopnostmi, by pro jeho autora bylo poněkud nákladnou záležitostí. Poznámka: Jedno nebezpečí ovšem hardwaru hrozí. Viry, které se snaží (jako třeba virus CIH) modifikovat nebo přepsat flash BIOS na základní desce počítače nebo obdobnou (upgrade umožňující) ROM v modemech, tiskárnách apod. Rafinovaný virus dokáže v paměti přežít reset počítače Na každém šprochu je pravdy trochu. Stisk oblíbené trojkombinace Ctrl-Alt-Del některé viry skutečně neznervózní. Reset počítače provedený pomocí tlačítka na čelním panelu ovšem není možné softwarově ošetřit. Mazaný virus zaútočí z napadené diskety, i když se na tuto disketu pouze podíváte (např. příkaz DIR) Jak jsme si již řekli, k tomu aby se virus mohl stát aktivním, musí být spuštěn, tj. procesor musí začít provádět jeho instrukce. K tomu 16
může dojít pouze spuštěním napadeného souboru nebo pokusem o zavedení systému z infikované diskety (zapomenutá disketa v mechanice A: při startu počítače). Pouhým čtením jakýchkoli dat (tedy i virových) nelze počítač infikovat. To se tedy týká nejen prohlížení dat na disku či disketě, ale také dalších operací, které čtení využívají - tisk, kopírování souborů ze vzdáleného systému pomocí modemu. Někdy se Vám může stát, že bezprostředně po prohlížení napadené diskety Vám antivirový program oznámí nalezení viru v operační paměti. Vysvětlení je prosté - při prohlížení diskety si operační systém část diskety načte do paměti - ovšem pouze jako data (nikdy je nespustí). Tato data zde zůstanou tak dlouho, než jsou přepsána jinými daty, a jsou neškodná. Při prohlížení operační paměti však antivirový program nalezne kód viru, a protože nemá možnost posoudit, zda je zde virus aktivní či nikoliv, tuto skutečnost ohlásí. Výjimkou z tohoto pravidla jsou makroviry, kterým stačí načtení infikovaného dokumentu do Wordu resp. Excelu (jakákoli jiná manipulace s ním je ovšem bezpečná). Zákeřný virus napadne i disketu chráněnou proti zápisu Ochrana proti zápisu na disketu je realizována hardwarem a lze ji obejít pouze hardwarovou úpravou disketové mechaniky. Existují viry, které se snaží s tímto handicapem vypořádat způsobem založeným spíše na psychologii, než na softwarovém inženýrství. Drzý virus prostě uživatele požádá, aby zápis na disketu povolil. Jistě se najde dost lidí, kteří zdvořilé žádosti bez dalšího přemýšlení vyhoví. Hoax Jde o poplašnou zprávu, která vyhrožuje nějakým strašlivým nebezpečím a obvykle obsahuje výzvu pošli mne všem lidem, které znáš. Jeden příklad je možná lepší, než deset stránek popisu: 17
Předmět: Nový virus Důležitost: Nejvyšší Jestliže dostanete email s předmětem PENPAL GREETINGS!, tak ho okamžitě smažte ANIŽ byste ho četli. Následuje stručný popis této zprávy a toho, co by následovalo po jejím přečtení. Pokud máte nějaké dotazy, obra te se SAF-IA Info (697-5059). Toto je varování pro všechny uživatele Internetu. Nový nebezpečný virus se šíří elektronickou poštou ve zprávách s předmětem PENPAL GREETINGS!. V ŽÁDNÉM PŘÍPADĚ NEOTEVÍREJTE ŽÁDNOU ZPRÁVU S PŘEDMĚTEM PENPAL GREETINGS! Tato zpráva na první pohled vypadá jako nevinný dopis s dotazem, zda si chcete dopisovat. V okamžiku kdy čtete její text, tak je už ovšem pozdě. V té době už virus napadnul boot sektor Vašeho disku a zničil všechna data. Vzápětí se AUTOMATICKY poslal všem lidem z VAŠEHO seznamu adres. Tento virus zničí Váš disk a může zničit disky všech lidí kterým jste kdy poslali nebo od kterých jste kdy dostali zprávu. Pokud ho nezastavíme, tak má velkou šanci zničit počítačové sítě na celém světě!!!! Smažte prosím každou zprávu s předmětem PENPAL GREETINGS! okamžite, jakmile ji uvidíte! Pošlete tuto zprávu všem svým přátelům a známým aby nemohli být napadeni tímto nebezpečným virem!!!! Pokud dostanete podobné varování nikoli přímo z důvěryhodného zdroje, ale zprostředkovaně, podívejte se na naše stránky nebo na stránky ICSA (http://www.icsa.net/services/consortia/anti-virus/alerthoax.shtml) věnované této problematice. Nerozesílejte podobné zprávy dalším osobám, dokud nemáte naprostou jistotu, že jde o reálný problém. Trojský kůň Trojský kůň je typickým příkladem škodlivého programu (malware), který bývá často zaměňován za počítačový virus. Nejčastěji jde o jednoduché programy předstírající nějakou užitečnou činnost, které místo toho smažou soubory, přepíšou konfiguraci počítače uloženou v CMOS paměti nebo provedou nějakou jinou destruktivní akci. 18
Některé z nich jsou určeny speciálně proti konkrétnímu programu - mění jeho konfiguraci, pokouší se vykrást hesla apod. Poznámka: Velmi nebezpečnou skupinu tvoří trojské koně umožňující vzdálenou kontrolu počítače (například BackOrrifice). Stačí spustit takový soubor na vašem počítači a útočník může přenášet soubory z všeho disku a nebo na váš disk, snímat obsah obrazovky a spouštět nebo ukončovat programy. Další repertoár tohoto prográmku už zahrnuje spíše žertovné, než nebezpečné akce - může vám přehrát nějaké zvuky nebo třeba otevírat a zavírat mechaniku CD-ROM. Primárním úkolem AVG je rozpoznat a likvidovat počítačové viry. Detekci rozšířených nebo velmi nebezpečných trojských koňů ovšem také doplňujeme. TYPY VIRŮ Doposud jsme se o počítačových virech bavili obecně, jako o jednom celku. Počítačové viry však používají rozdílné způsoby šíření a je tedy nutné je rozdělit do několika skupin. Základní dělení virů je odvozeno z toho, které objekty napadají: Bootviry - napadají pouze systémové oblasti Souborové viry - napadají pouze soubory Multipartitní viry - napadají soubory i systémové oblasti Makroviry - napadají dokumenty V případě souborových virů se můžeme dobrat i k podrobnějšímu dělení. Podle způsobu manipulace s obětí známe tyto viry: Přepisující virus Při napadení přepíše část těla oběti vlastním kódem. Takto napadené programy jsou nenávratně zničeny a nejsou kromě dalšího 19
šíření viru schopny žádné jiné činnosti, což je podezřelé i velmi otrlým uživatelům. Díky tomu je šíření těchto virů krajně nepravděpodobné. Link virus Virus se připojí k tělu oběti a může tak zachovat původní funkc programu. Kdybychom chtěli dosáhnout dokonalosti, tak můžeme pokračovat v dalším dělení podle způsobu, kterým se virus připojí (před napadený program, za napadený program, doprostřed souboru). Doprovodný virus Virus, který nezapisuje svůj kód přímo do napadeného EXE souboru, ale vytváří stínový soubor stejného jména s příponou COM. Využívají tak vlastnosti MS-DOSu, který při spouštění dává COM souborům přednost. A dále můžeme rozlišit některé speciální vlastnosti: Virus přímé akce Primitivní souborový virus. Jakmile je spuštěn, tak vykoná vše, co chtěl a skončí. Typicky přepisující viry patří většinou do této kategorie. Rezidentní virus Je přítomen v paměti a může tak neustále ovlivňovat činnost počítače. Velkou výhodou rezidentního viru je, že si nemusí sám hledat programy vhodné k napadení. Viru stačí sledovat, se kterými soubory uživatel pracuje a útočit na ně. Stealth virus Pokud je virus tohoto typu přítomen v paměti, dokáže převzít kontrolu některých funkcí operačního systému a při pokusu o čtení infikovaných objektů a místo skutečného obsahu (tedy sebe sama) vracet 20
stav před infekcí. Antivirový program, pokud není vybaven antistealth technikami tedy nemá možnost podobný virus zjistit. Zakódovaný virus Takový virus je zašifrován s nějakým proměnným klíčem a pouze krátká dekryptovací funkce je vždy stejná. Tyto viry už dnes v podstatě vymřely - nahradily je technicky dokonalejší polymorfní viry. Polymorfní virus Tento typ viru si pro každý napadený soubor vytváří zcela jinou dekryptovací funkci a v napadených souborech nelze najít žádné sekvence stejného kódu. Poznámka: Objevily se i polymorfní viry pracující na trošku jiném principu (například slovenský virus TMC). Viry své tělo nešifrují, ale obsahují jakési tabulky popisující jak se má výsledný kód chovat a sestavují své tělo pro každý infikovaný soubor znovu tak, že na náhodná místa vkládají polymorfně vygenerované skupinky instrukcí. Také makroviry mohou být polymorfní. Triviální polymorfismus makrovirů spočívá ve vkládání náhodně vygenerovaných komentářů a návěští do těla viru. Fast infektor Rezidentní virus, který soubory napadá nejen při jejich spouštění, ale téměř při jakékoli manipulaci s nimi. Jeho rychlost šíření v počítači je sice impozantní, ale současně tím zvyšuje pravděpodobnost, že na sebe upozorní. Slow infektor Opak fast infektoru. Virus, který se snaží šířit co nejobezřetněji. Například napadá pouze ty soubory, které jsou na disku nově vytvářeny (třeba při jejich kopírování z diskety). Šíří se sice pomalu, ale může tak unikat i testům integrity (srovnávacím testům). 21
Bootviry Bootviry donedávna představovaly nejčastější typ infekce, se kterým se uživatel mohl setkat. A to i přesto, že jich je asi dvacetkrát méně, než souborových virů. Za toto rozšíření vděčí bootviry zejména tomu, že diskety jsou stále ještě médiem hojně mezi uživateli vyměňovaným. Mechanismus jejich šíření je velmi jednoduchý. Získáte disketu, jejíž boot sektor je napaden virem. Stačí zapomenout tuto disketu v disketové mechanice, označované jako A: při startu nebo resetu počítače. Jak jsme si vysvětlili v textu, popisujícím start počítače, pokud startovací rutina nalezne při startu systému v mechanice A: založenou disketu, považuje ji za systémovou a pokusí se provést start operačního systému z ní. V praxi tedy předá řízení kódu, uloženému v Boot sektoru této diskety. Virus zde uložený je tak aktivován a zahájí svoji činnost. Nejprve ověří, jestli už pevný disk počítače není infikován a pokud ano, tak ukončí svou činnost. Skutečnost, že disk ještě není napaden, považuje virus za hrubou chybu a okamžitě ji napraví. Vlastní infekce disku spočívá nejčastěji v tom, že se virus zapíše do Partition tabulky pevného disku (pro přesnost - existují také viry, které napadají Boot sektor pevného disku, ale to pro naše vysvětlování není podstatné) a její původní obsah odklidí na nějaké bezpečné místo. Na obrázcích na následující stránce si prohlédněte zjednodušené schéma "čistého" disku (1) a schéma různých možností jeho nákazy (2,3,4). Za povšimnutí stojí, že v případě (3) je přepsána poslední část prostoru kořenového adresáře (pokud adresář obsahuje mnoho souborů, je zničena informace o názvech a poloze části z nich), a že v případě (4) je přepsána část prostoru sloužícího k uložení vlastního obsahu souborů (je-li disk dostatečně zaplněn, může dojít ke zničení části souboru). 22
(1) (2) (3) (4) Partition tabulka virus FAT tabulka kmenový adresář nevyužité místo soubor (nebo jeho část) odložený původní obsah prvního sektoru (Partition) Díky tomu, že virus napadl systémovou oblast pevného disku, je nyní při každém startu operačního systému z infikovaného pevného disku zaveden do paměti a stává se aktivní. Převezme kontrolu nejnižší úrovně diskových služeb operačního systému a teprve poté spustí správný zaváděcí kód (má jej přece bezpečně odložený). Na první pohled se tedy počítač chová přesně tak, jak by měl. Že jeho start trvá o pár zlomků vteřiny déle, si nikdo ani nevšimne. Při normální práci počítače si takový bootvirus v klidu sedí v paměti. Díky své kontrole diskových služeb v podstatě bezpracně monitoruje všechny požadavky na diskové operace - mezi nimi i operace s disketou. Jakmile zachytí požadavek na práci s disketou, dozví se, že do mechaniky byla vložena disketa. Stačí si pouze prohlédnout její Boot sektor, zda již obsahuje kód našeho viru. Pokud ne, postačí do něj vepsat vše potřebné. Od tohoto okamžiku je taková disketa napadena virem - stává se médiem, s jehož pomocí se virus přenáší na jiné počítače. Zvláštním požadavkem, který virus monitoruje, je pokus o čtení Partititon tabulky pevného disku. Jak víme, Partition tabulka přece obsahuje virový kód a požadavek na čtení mohl být vydán antivirovým programem, který právě kontroluje čistotu počítače. Virus tedy na požadavek čtení nevrátí skutečný obsah Partition tabulky, ale původní obsah tak, jak vypadal před nákazou (má jej 23
bezpečně odložen). Pokud se skutečně jednalo o antivirový program, ten nezjistí na načtených datech nic závadného. Tomuto postupu říkáme stealth technika (neviditelnost) a jeho hlavním cílem je zamaskovat přítomnost viru před antivirovým programem. Stealth technika není běžným jevem u všech bootvirů, přesto se s ní však setkáváme u velkého počtu současných virů. Souborové viry Jak již bylo uvedeno, souborové viry se orientují na jistý typ objektu - soubory. Opakujeme, že v tomto případě pojmem soubory myslíme programové soubory - zkráceně programy. Přepisující souborové viry Pravděpodobně nejstupidnější existující formou počítačových virů jsou viry přepisující. Jsou uživatelem okamžitě zpozorovány a tak se jejich šance na šíření z počítače na počítač blíží nule. Virus pouze vyhledává spustitelné soubory, přepisuje jejich původní obsah sám sebou a tím je vlastně ničí. Skutečnost, že napadený program není nadále možné spouštět, se obvykle viry snaží maskovat nějakým (více či méně nejapným) chybovým hlášením. (1) (2) kód viru původní obsah souboru Zjednodušené schéma čistého souboru (1) a obraz jeho infekce přepisujícím virem (2). 24
Doprovodné viry Operační systém MS-DOS se při požadavku na spuštění programu X snaží nejprve spustit soubor X.COM a teprve poté X.EXE. Toho využívají doprovodné viry, které k existujícím EXE souborům vytvoří své kopie s příponou COM. Při spuštění programu se tak nejprve spustí virus, který provede vše, co uzná za vhodné, a poté předá řízení původnímu programu. Tento způsob šíření není příliš efektivní a má jedinou výhodu - doprovodný virus nemusí modifikovat obsah žádného existujícího souboru a je tedy méně pravděpodobné, že ho zachytí nějaká kontrola integrity dat nebo rezidentní ochrana. (1) EXE (2) EXE COM kód viru původní obsah souboru Existuje ještě další metoda, kterou mohou využít doprovodné viry. Stačí soubor s virem umístit do některého z adresářů, které jsou v cestě (definované pomocí PATH) dříve, než ve kterém je vyhlédnutá oběť. Link viry Jako "Link viry" označujeme ty souborové viry, které se připojují k infikovanému souboru a zachovávají jeho původní funkce. Je zřejmé, že tyto viry mají daleko větší šance než zástupci dvou výše popsaných skupin (přepisující a doprovodné viry). Tyto viry modifikují kód své oběti tak, aby při spuštění infikovaného souboru byl spuštěn kód viru, který vykoná vše, co považuje za nutné, a poté obnoví a spustí původní program. 25
(1) (2) (3) (4) (5) (6) kód viru původní obsah souboru instrukce skoku odložený původní obsah Zjednodušené schéma infekce link virem. Nejčastěji je na začátek zdravého souboru (1) vloženo několik instrukcí, které předají řízení viru umístěnému za koncem původního souboru (2). Jednodušší viry se vkládají na začátek své oběti (napsat takový virus je snadnější) a původní obsah jejího začátku připojí na konec (3) nebo za své tělo přikopírují celý původní program (4). Virus se také může vložit kamkoli do těla své oběti (5), může se (v obvykle marné snaze o zmatení antivirového programu) spouštět přes několik roztroušených ostrůvků instrukcí (6) a bylo by možné najít mnoho dalších způsobů. Připojení těla viru ke kódu jeho oběti ovšem znamená zvětšení velikosti původního souboru. To je přímo inzerát viru "Haló, jsem tady" a tak se pisálci virů snaží tuto skutečnost nějak zamaskovat. Pěkným pokusem je vyhledat v těle napadaného souboru nějakou oblast s konstantním obsahem a vložit se do ní. Odpadne nutnost ukládat velký blok dat - stačí si zapamatovat jedno číslo. Většímu rozšíření této metody brání zejména fakt, že podobné "díry" nejsou v souborech příliš častým jevem, a tak se snižují šance viru na nalezení vhodného nosiče a tím i na přežití. Současné viry tuto 26
techniku ještě občas používají při útoku na COMMAND.COM, který vhodné prostory obsahuje ve všech verzích DOSu a současně je souborem, jehož délku si (alespoň přibližně) část uživatelů pamatuje. EXE soubory pro Windows často obsahují "ostrůvky" nevyužitého místa. Toho využívá například virus CIH, který do nich rozloží svůj kód a nemusí tak prodlužovat napadený soubor. Lépe může fungovat "aktivní" ochrana. Pro rezidentní virus je totiž relativně jednoduché převzít kontrolu služeb operačního systému pro práci s adresáři a u infikovaných souborů korigovat informaci o jejich délce na původní hodnotu. Tato stealth technika má ovšem sama o sobě řadu nepříjemných důsledků. Pokud nějaký program otevře takto chráněný soubor, tak zjistí, že skutečná délka neodpovídá údajům z adresáře a může se začít chovat zmateně. Utility typu CHKDSK nebo NDD zase zjistí, že obsah disku je nějak poškozen a pokusí se ho s více či méně katastrofálními důsledky "opravit". Multipartitní viry Hlavní výhodou bootvirů je to, že se dostanou do paměti jako vůbec první program zaváděný z disku nebo diskety. Díky tomu mají k dispozici informace o stavu počítače bezprostředně po jeho startu a mohou také ovlivňovat činnost všech následně spuštěných programů. Časné zavedení je ovšem současně i jejich nevýhodou - nemají totiž ještě k dispozici operační systém a jsou tak odkázány na nejnižší úroveň systémových služeb BIOSu, nemohou napadat soubory a možnosti jejich rychlého šíření jsou tudíž omezené. Souborové viry mají k dispozici "vyšší" úroveň služeb operačního systému a napadají soubory - daleko častěji šířené objekty. Multipartitní viry kombinují výhody obou výše zmíněných postupů. Dokáží infikovat nejen Partition tabulku pevného disku, ale i spustitelné soubory. Při útoku na soubor mohou multipartitní viry použít libovolný postup souborové infekce a napadení systémové oblasti je shodné s technikami používanými běžnými bootviry. Jediná technicky poněkud obtížnější pasáž spočívá v tom, že multipartitní virus se po svém zavedení ze systémové oblasti do paměti musí chvíli chovat trpělivě - počkat, až bude dokončeno zavádění operačního systému a teprve poté převzít kontrolu nad "vyšší úrovní" služeb DOSu. 27
Že tento problém je řešitelný, předváděl "k velké radosti" uživatelů třeba One_Half - jeden z vůbec nejrozšířenějších multipartitních virů na světě. Makroviry Makroviry jsou bezesporu nejběžnějším typem infekce, který můžete na dnešních PC potkat. Hlavním důvodem tohoto rozšíření je, že infikují dokumenty, tedy objekty, které jsou nejčastěji sdíleny mezi uživateli. Díky tomu je šíření makrovirů jednoduché a rychlé. Už starý Microsoft Word byl vybaven Word Basicem, jazykem dostatečně silným, který umožňoval psaní makrovirů. Současné verze aplikací z Microsoft Office používají Visual Basic for Applications (VBA), nástroj ještě dokonalejší, který perfektně kombinuje schopnosti moderních programovacích jazyků s jednoduchostí Basicu. Jméno makroviru, hlášené programem AVG, začíná vždy identifikací platformy, pro kterou je makrovirus určen. Například WM/ znamená Word 6, W97M/ Word z Office 97 a W2KM/ Word z Office 2000. To, že je makrovirus určen pro konkrétní verzi Wordu, ještě nemusí nutně znamenat, že se ve vyšší verzi nebude schopen šířit. Pokud dokument z Wordu 6, infikovaný virem WM/Napriklad, otevřeme ve Wordu z Office 97, může se stát následující: Získáme perfektně funkční makrovirus W97M/Napriklad. Makra budou konvertována, ale virus ztratí schopnost šířit se. Pokud ovšem obsahoval nějakou destrukční akci, tak ta může zůstat funkční. Word rozpozná prvky známého makroviru a odmítne konverzi provést. Ještě mnohem zábavnější je situace v Excelu, který podporuje i konverzi z vyšších verzí do nižších. 28
Proč je vlastně konverze maker tak důležitá? Neprobíhá totiž vždy zcela stejným způsobem. Jestliže konvertujete makro z Excelu 5 do Excelu 97 a výsledek poté zpět do Excelu 5 dostanete nepatrně odlišná makra. Vlastně vytvoříte novou variantu viru, aniž o tom víte a aniž to byl váš úmysl. Milé je, že my musíme i tyto věci detekovat a léčit. Makroviry pro Word V létě 1995 se objevil první makrovirus vůbec - WM/Concept.A určený pro Word 6. Jeho autor zjevně chtěl pouze demonstrovat, že je něco takového možné. Concept sice obsahoval makro určené k nějaké obtěžující nebo destrukční akci, ale to neobsahovalo žádný kód, pouze poznámku s textem: That s enough to prove my point Ve velmi krátkém čase následovala nejen řada variant tohoto viru, ale objevily se i zcela nové makroviry. Většina makrovirů pro Word zneužívá tzv. automaker. Vlastně jde o to, že makra se speciálními názvy Word spouští sám (například při otevírání nebo zavírání dokumentu nebo třeba při startu Wordu) - uživatel o jejich spuštění nemusí požádat. Word sice umožňuje (dokonce několika způsoby) toto chování zakázat, ale šíření makrovirů to nezabrání. Existují i další možnosti jak převzít kontrolu nad funkcemi Wordu. Jednou z občas doporučovaných metod ochrany je nastavit standardní šabloně NORMAL.DOT atribut Read only (jen pro čtení, nikoli pro zápis). Ani to ale není ideální řešení. Makroviry pro Excel Excel nabízí virovým pisálkům v podstatě stejné možnosti jako Word. Má automakra a adresář XLSTART, ze kterého si automaticky zavádí šablony. 29
Kromě VBA má Excel navíc ještě možnost vkládat makra i do buněk vlastního speadsheetu. Tato technologie byla použita poprvé v makroviru XF/Paix. Makroviry pro ostatní části MS Office Makroviry existují i pro další aplikace z Microsoft Office - například pro Access nebo PowerPoint. Jejich nebezpečnost je ovšem nižší - přece jenom uživatelé mnohem častěji sdílejí DOC a XLS soubory než MDB nebo PPT. Existují i makroviry schopné současně napadat více různých typů objektů. Například C97M/Tristate je schopen infikovat Wordové dokumenty, Excelové tabulky a PowerPointové prezentace. PowerPoint umožňuje i další zajímavou hrátku - můžete do své prezentace zahrnout kompletní Wordový dokument nebo Excelovou tabulku a tyto objekty mohou být infikované. Jakmile někdo otevře vložený dokument v jeho aplikaci (t.j. ve Wordu nebo Excelu) může se makrovirus dál vesele šířit. Makroviry pro ostatní platformy Ostatní platformy jsou proti virům odolnější. Má to dva hlavní důvody: Podstatné je rozšíření daného produktu. Jestliže word procesor XYZ používá na celém světě pouze hrstka lidí, je velmi nepravděpodobné, že by se makroviry pro něj určené mohly nějak rozumně šířit. Další důvody jsou technické. Například Amí Pro odkládá makra do zvláštního souboru a tak se nemůže stát, že by někdo nevěděl o makrech připojených k jeho dokumentu. Jediný dosud existující makrovirus pro Ami Pro je tak spíše zajímavou technickou hračkou než náznakem nějakého reálného nebezpečí. Situace se ale v blízké budoucnosti může dramaticky změnit. Microsoft licencoval technologii VBA řadě firem, takže se můžeme těšit... 30
Projevy virů Základní projevy virů souvisí s jejich nejdůležitější vlastností - se schopností šířit se. Jde o změny obsahu systémových oblastí nebo souborů, v případě rezidentních virů o úbytek volné paměti a v případě doprovodných virů o vytváření spustitelných souborů s příponou COM v těch adresářích, kde už existuje soubor stejného jména s příponou EXE. Tyto projevy jsou nutné. Ostatní projevy viru již lze považovat za nadstandardní péči autora viru o nechtěného uživatele. Jedná se o milé (a častěji nemilé) žertíky viru na vrub uživatele a úmyslné nebo neúmyslné destrukce dat. Tyto vedlejší projevy lze na základě jejich typu rozčlenit do několika skupin. Efekty Uvědomte si, že virový pisálek trpí vážným problémem. Uživatel nesmí příliš brzo poznat, že jeho počítač je napaden (výrazně by to snížilo šance viru na přežití), ale současně by se autor rád nějak zviditelnil. Výsledkem je nejčastěji načasování efektu na konkrétní dobu (obligátní pátek třináctého, datum narození nějaké osobnosti, sedmnáctý listopad...). Další možností je, že efekt není nijak načasován, ale jeho spuštění je vázáno na nějaký jev s malou pravděpodobností (hodnota systémového času v okamžiku spuštění infikovaného souboru, vygenerované náhodné číslo je v nějakém intervalu...). Vlastní efekt často spočívá v nějaké manipulaci s obsahem obrazovky (padání písmen, průjezd sanitky na několika dolních řádcích...) nebo ve vypsání nějakého objevného sdělení. Obsah těchto sdělení by mohl být zajímavým materiálem pro psychologa. Viry propagují hudební skupiny, komentují politické události a názory, vyhrožují destrukcí disku nebo se třeba jenom představují. Kromě efektů optických se setkáváme i s akustickými. Jakkoli nejsou zvukové možnosti interního reproduktoru počítače nijak oslnivé, na 31
jednoduchou melodii bohatě stačí. Jeden z virů bulharského původu třeba hraje každý den ráno jednoduchou melodii a první květen oslaví Internacionálou. Obtěžující chování Nepříjemným projevem virů bývají různé pokusy o obtěžování uživatele. Existuje třeba virus, který převezme kontrolu klávesnice a občas zamění stisknutou klávesu za sousední. Vžsledlem je, že vxroste ovvyklá míoa překleoů a nicbetušící užuvatel se vzteký. Podobným efektem je polykání stisknutých kláves. Zděšený uživatel mlátí vší silou do kláves a virus se tiše směje. Zajímavé jsou i hrátky se systémovým časem počítače. Takové hodiny jdoucí pozpátku pěkně vystraší uživatele, kterému konec pracovní doby mizí v nedohlednu. Ještě větší radost z podobných hrátek mají uživatelé přechytralých programů, které si pečlivě vybírají nejaktuálnější informace podle data a času vytvoření souborů. Poněkud drastičtější je virus, který sleduje používání příkazu COPY a občas zamění jeho parametry. Když je místo příkazu COPY NOVE.TXT STARE.TXT provedeno COPY STARE.TXT NOVE.TXT, tak zcela jistě jedno oko nezůstane suché. Slušným zdrojem inspirace je i přítomnost modemu v počítači, pomocí kterého může virus protelefonovat docela slušné peníze (zatím neznáme virus volající na nějaké 0609-čekám jenom na Tebe, ale i toho se asi časem dočkáme). Pokud jde jenom o peníze, tak čert s tím, ale autor viru volajícího pravidelně na číslo 911 (tísňové volání v USA) by si jistě zasloužil některý z trestů, které toto osvícené století bohužel zrušilo. Krádeže Dostatečné rozšíření Internetu umožňuje autorům virů vykrást libovolné údaje z vašeho počítače a kamkoli je přenést pomocí FTP nebo elektronické pošty. Například virus W97M/Caligula se takto pokouší odeslat kopii vašeho privátního klíče pro šifrovací systém PGP. 32
A není problém si představit virus, který prohledá vaše textové soubory a odešle kopie těch, které obsahují takto formátovaná čísla: nnnn nnnn nnnn nnnn nn/nn Milá představa, že? Destrukce Až příliš častým projevem virů bývá snaha zničit data na pevném disku. Za zmínku stojí, že mezi kvalitou kódu viru (a tedy programátorskými schopnostmi jeho autora) a mezi mírou destrukce, kterou virus působí, je obvykle nepřímá úměra. Triviální viry se spokojí s tím, že bez varování přepíší obsah celého disku nesmysly. V takovém případě nezbývá, než sáhnout po pravidelně prováděných zálohách a obnovit poslední stav. To je sice pracné, ale pokud existují aktuální zálohy, tak se zase nic tak tragického nestalo. Pokud zálohy neexistují, tak si zodpovědný pracovník může v klidu naházet obsah svého psacího stolu do igelitové tašky a podle míry způsobených škod zamířit buď domů nebo na letiště. Existuje i daleko zákeřnější forma destrukce - pomalé a nenápadné změny v datech. Pokud na počítači nějaký čas působí virus, který kontroluje zápisy na disk a tu a tam prohodí dva bajty, tak je velmi pravděpodobné, že i záložní kopie obsahují poškozené soubory a neexistuje žádný způsob, jak zjistit co je, a co není, v pořádku. Poznámka: Výborné příležitosti pro hrátky s daty mají makroviry. Například WM/Wazzu vkládá slovo wazzu do náhodně vybraného místa v dokumentu. Schválně si zkuste na Internetu najít stránky, které obsahují slovo wazzu, ale nemají nic společného s viry ani s Washingtonskou univerzitou. Budete překvapeni jak velké množství lidí připravovalo texty pro své stránky v infikovaném Wordu. A asi není potřeba rozvádět jak milým efektem je, když makrovirus pro Excel projde tabulku a nepatrně změní náhodně vybrané položky. 33
Něco je špatně Obvyklé fámy okolo virů prezentují jejich autory jako programátory téměř geniální, jejichž dokonalá dílka jsou schopna všeho. Pravdivá je jenom polovina tohoto tvrzení. Naprostá většina virů je totiž napsána takovým způsobem, že jejich autoři by si zřejmě programováním nevydělali ani na suchý chleba. Takové programy jsou pak samozřejmě schopny téměř všeho, aniž by to viroví pisálci tušili. Některé viry jsou dokonce v takovém stavu, že sice napadnou soubor, ale už z něj nejsou schopny dalšího šíření. I relativně dobře napsané viry se ale mohou dostávat (a často se dostávají) do konfliktů s jinými programy nebo s operačním systémem. Je to daň za použití některých nedokumentovaných postupů, případně za snahu obejít kontrolní mechanismy antivirových systémů. Zejména rezidentní viry mají často potíže, které se navenek projevují tím, že počítač často havaruje a některé programy (typicky třeba Windows) se chovají prapodivně nebo vůbec nefungují. Takové chování ovšem nemusí být příznakem výskytu viru. Dnešní PC je obvykle zmateným chumáčem hardwaru různého původu se spoustou ovladačů. Když se k tomu připočtou různé (vzájemně více či méně nekompatibilní) verze DOSu a spousta nejrůznějších rezidentních programů, které si většina uživatelů spouští, tak je skoro až podivné, že to celé nějak funguje. A ono to navíc dost často funguje prapodivně. Proto je velmi obtížné rozlišit mezi potížemi, které má na svědomí vir, a těmi, za které mohou hádající se korektní programy. Nechtěná destrukce I když autor viru nenaprogramoval žádnou destrukční akci, neznamená to, že virus je neškodný. Musí totiž ke svému šíření modifikovat existující soubory nebo systémové oblasti. Typickým příkladem takové nechtěné destrukce je útok bootviru na disk s instalovaným Ontrack Disk Managerem. Chudák virus si myslí, že na nulté stopě disku je zcela volné místo a zapíše si tam pár maličkostí. Stejný názor měl bohužel Disk Manager, který na nultou stopu odložil sám sebe. Výsledkem kooperace obou programů je nepřístupný disk. 34
Dalším krásným kouzlem je kombinace nedokonale implementovaných stealth technik a některých programů pro komprimaci dat, která může skončit tak, že archiv obsahuje pouze trosky souborů, které byly komprimovány. S nechtěnou destrukční akcí se také setkalo několik tisíc uživatelů na celém světě při instalaci Windows 95 z disket. Microsoft totiž ponechal pouze první disketu v obvyklé velikosti a všechny ostatní byly naformátovány na 1,7 MB. Pro bootviry bylo toto uspořádání novinkou a jejich pokus infikovat disketu skončil zničením části jejího obsahu. Sebeobrana viru Autoři virů si pochopitelně přejí, aby jejich děťátka měla šťastný a nerušený život. Proto se je často snaží vybavit nějakou formou obrany proti antivirovým systémům. Pasivní obrana Viry se snaží zabránit svému odhalení různým způsobem. Pasivní ochranou je použití takových programových konstrukcí, které znesnadní analýzu viru a ochrání ho před některými technikami hledání. Příkladem podobné ochrany jsou polymorfní viry, které vlastně vznikly jako reakce na scannery vyhledávající konstantní kousky virového kódu. Čas pokročil a antivirové systémy jsou schopny obecně analyzovat polymorfní kód a vyhledávat své virové identifikátory až v dekryptovaném těle viru. Reakcí ze strany virových pisálků je snaha o vytvoření tak komplikovaných dekryptovacích funkcí, aby je antivirový systém nedokázal vůbec projít nebo je považoval za korektní kód zdravého programu a analýzu ukončil. Dalším významným pokrokem v antivirových technikách je heuristická analýza, která dovoluje s vysokou účinností odhalit i viry, které nejsou v dané době autorům antivirového systému známy. Proto se dnes stále častěji setkáváme s více či méně úspěšnými pokusy o vytvoření takového kódu, který heuristická analýza nepochopí, nebo který jí bude připadat zcela korektní. 35