Viry a vy

Transkript

Viry a vy
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
Existuje třeba virus, který zašifruje své tělo náhodně vygenerovaným
klíčem, ale jeho hodnotu si nikam neuloží. Pokud je napadený soubor spuštěn, tak virus hledá správný klíč tak, že zkouší všechny
možné hodnoty dokud nenajde tu správnou (vznešeně se tomu říká
brute force attack).
Aktivní obrana
Aktivní metody sebeobrany spočívají především v ochraně vlastního
kódu viru a v pokusech o likvidaci nebo poškození antivirového systému a jeho částí. Nejjednodušší viry se snaží alespoň vyhledat a
zničit databáze informací, které si antivirový systém vytvořil, případně jej celý smazat.
Chytřejší rezidentní viry používají Stealth techniky a zjistí-li přístup
k infikovaným souborům tak je dočasně vyléčí nebo předstírají, že
jsou v pořádku. Mohou také sledovat spouštění programů a reagovat tak na spuštění antivirového programu. Rejstřík reakcí je bohatý
a fantazii se meze nekladou. Obvyklé bývá odmítnutí spuštění
programu nebo jeho smazání (doprovázeno nějakým stupidním chybovým hlášením), případně dočasné pozastavení všech aktivit viru.
Občas se vyskytují i viry extrémně chytré, které modifikují kód antiviru
a pokoušejí se tak vypnout některé jeho funkce.
Naštěstí ojedinělé jsou viry považující spuštění antivirového systému
za hrubou provokaci vyžadující odvetný úder - třeba okamžité formátování disku.
Past
Past představuje nejzlomyslnější formu sebeobrany viru. Model je
jednoduchý - spokojeně žijete s virem a vše zdánlivě funguje
správně. Odhalíte jeho přítomnost, odstraníte jej a najednou je
všechno špatně, soubory už nejsou co bývaly, disk vůbec není přístupný nebo je dokonce počítač v takovém stavu, že pokus o start
z čisté systémové diskety skončí jeho “zatuhnutím”.
Jednou z nejznámějších pastí je průběžné šifrování obsahu disku,
které provádí multipartitní virus One_Half. Pokud jeho odstranění
36
z Partition tabulky není doprovázeno dekódováním disku, tak některé adresáře neuvidíte, obsah jiných adresářů bude prapodivný a
část souborů nebude k poznání. Tento stav je sice velmi špatný, ale
stále ještě řešitelný. Jestliže ale v této situaci požádáte nějakou diskrepair utilitu (NDD, SCANDISK ...) o “opravu” disku tak tím vaše data
končí definitivně.
Problém je v tom, že utilita určená pro řešení běžných (a obvykle relativně malých) problémů na disku najde místo poškozeného obsahu
totální nesmyly, pokusí se je vzít vážně a na základě těchto (díky
šifrovací funkci vlastně náhodných) dat provést opravu. Kvalita výsledku pak bohužel odpovídá kvalitě dat, která měla utilita k dispozici.
ANTIVIROVÉ TECHNIKY
Sebelepší antivirový program není k ničemu, jestliže s ním jeho uživatel neumí zacházet a nerozumí jeho výsledkům. Porozumět jim znamená především porozumět tomu, jak jednotlivé technologie hledání
virů pracují.
AVG používá pro detekci virů tři techniky. Pokud vás zajímají detaily,
najdete je v:
• Hledání známých virů
• Pokus o hledání neznámých virů
• Sledování změn
Tyto techniky nejsou použity pouze v kontrolním programu AVG, ale
také v Rezidentním štítu a v AVG pro E-mail.
Zpracování souboru
Stručně se dá říct, že AVG kontroluje soubory tímto způsobem:
• AVG nejprve ověří, zda má o kontrolovaném souboru k dispozici
nějaké detailní informace v databázi integrity .
37
• Poté hledá známé viry a pokud není žádný objeven, tak se ke
slovu dostává heuristická analýza.
• Jestliže soubor může obsahovat několik infikovatelných objektů
(například EXE soubor pro Windows, prezentace vytvořená
v Power Pointu nebo soubory v archivu) je druhý krok zopakován
pro všechny tyto komponenty.
• Jestliže žádný z předchozích kroků nenajde infekci, poznačí si
AVG (pokud je to potřeba) informace o souboru do databáze
integrity a pokračuje v testování dalších souborů.
Přehled všech hlášení produkovaných testy systému AVG naleznete
v Nápovědě programu AVG pro Windows.
Hledání známých virů
Úplně první antivirové programy se snažily vyhledávat konkrétní viry
na základě nejrůznějších znaků, které doprovázely infekci. Vycházely
ze skutečnosti, že první viry byly velmi jednoduché a kopii od kopie,
až na nepatrné vyjímky, totožné. Tedy něco na způsob: Jestliže první
bajt je E9 a současně další dva bajty po přičtení čísla 907 odpovídají
délce souboru a zároveň má posledních dvacet bajtů tyto hodnoty ...
atd, atd.
Dobře napsaný vyhledávací program, používající tuto techniku, je relativně spolehlivý, ale jeho údržba je velmi pracná. Při dnešním počtu
virů by podobné testování navíc trvalo neúměrně dlouho.
Dalším krokem bylo vytvoření scanneru - programu, který se snažil
v souboru najít nějaké posloupnosti instrukcí, typické pro jednotlivé
viry. Pro každý virus se tedy vybere vhodná sekvence znaků - např.
B4 3D CD 21 B8 00 00. U testovaných objektů se pak kontroluje, zda neobsahují tuto sekvenci. Pokud ano, je objekt označen jako napadený
virem.
Je samozřejmé, že výběr vhodné sekvence znaků, která bude pro
detekci viru používána, není jednoduchý - sekvence se nesmí vyskytovat v žádném korektním programu, aby nedocházelo k mylným
38
hlášením. Největší výhoda scanneru, oproti vyhledávacímu programu, spočívá v možnosti snadného a rychlého doplnění informací pro
detekci nových virů. V době, kdy se roční nárůst počtu virů pohybuje
okolo 2000 kousků je to výhoda velmi podstatná.
Autoři virů se samozřejmě snaží vyhledání svého dítka co nejvíce
znesnadnit. Objevuje se nový termín - polymorfní virus . Takový virus
se snaží většinu svého kódu pravidelně měnit tak, aby určení vhodné sekvence znaků ztížil či znemožnil. Zpočátku tuto úlohu obstarávala krátká funkce, která vlastní tělo viru zakódovala. Většinou však
tato kódovací funkce byla sama o sobě dostatečně dlouhá k tomu,
aby poskytla vhodnou sekvenci znaků. Postupem času se ale algoritmy, zajišťující viru jeho proměnlivost, zdokonalily. Na tuto změnu
museli reagovat samozřejmě také autoři antivirových programů.
Nějaký čas se snažili pouze doplnit své programy o rozpoznávání
polymorfních virů pomocí jednoúčelových funkcí, ale to byl vlastně
krok zpět k vyhledávacím programům se všemi jejich nevýhodami.
AVG proto obsahuje emulátor strojového kódu, kterým se pokouší
“napodobit” provedení dekódovací části. V praxi to znamená, že
dokáže “rozbalit” zakryptovaný virus do jeho nekódované podoby a
sekvence hledá až v dekryptovaném těle viru.
Použití vyhledávacích sekvencí může vést k problémům při léčení
(například pokud se objeví nová verze viru).
Proto je AVG vybaveno mnohem komplexnějšími informacemi - může
kontrolovat speciální vlastnosti nalezených sekvencí (např. jejich
absolutní nebo relativní polohu) a ověřovat si kontrolní součty dalších
oblastí těla viru. To umožňuje spolehlivější identifikaci a odstranění
viru.
Uživatel antivirového programu - scanneru, musí samozřejmě
používat takovou verzi, která tento virus již umí nalézt. Tato
skutečnost je největší a podstatnou nevýhodou scannerů i vyhledávacích programů. Jejich bezmocnost proti novým virům. Dobře
udržovanýscanner sice obvykle dokáže detekovat některé nové varianty starších virů, ale proti zcela movým virům jsou jeho šance malé.
Proto AVG používá také heuristickou analýzu.
39
Heuristická analýza
Heuristická analýza není marketingovým blábolem, ani nějakým
druhem černé magie. Jde o pokus zjistit analýzou programu, zda
obsahuje konstrukce typické pro počítačový virus.
Jak může heuristická analýza vypadat
Začněme malým kouskem kódu, vyrvaným ze dvou různých virů,
napadajících systémové oblasti počítače. V levém sloupci je
instrukce CPU vyjádřena číselně a v pravém symbolicky.
A3
B1
D3
2D
8E
BE
8B
B9
F3
13
06
E0
C0
C0
00
FE
00
A5
04
07
7C
01
MOV
MOV
SHL
SUB
MOV
MOV
MOV
MOV
REP
[0413h],AX
CL,6
AX,CL
AX,07C0
ES,AX
SI,7C00h
DI,SI
CX,100h
MOVSW
26
B1
D3
8E
33
B9
FC
F3
A1 13 04
06
E0
C0
FF
FF 00
A5
MOV
MOV
SHL
MOV
XOR
MOV
CLD
REP
AX,ES:[0413h]
CL,6
AX,CL
ES,AX
DI,DI
CX,00FF
MOVSW
Přestože jde o dva zcela rozdílné viry, můžeme v ukázce vidět (i bez
znalosti assembleru) značnou podobnost.
Porovnáním číselného vyjádření bez obtíží najdeme pasáž společnou
oběma úryvkům:
13 04 B1 06 D3 E0 (0-3) 8E C0 (6-8) F3 A5
(Poznámka: čísla v závorkách označují počet nezajímavých bajtů,
které mohou být při hledání vynechány. )
Tuto jednoduchoučkou “vyhledávací sekvenci” můžeme ještě trošku
zobecnit:
13 04 (0-18) B1 06 D3 (0-40) F3
Tato jediná sekvence je schopna detekovat cca 30% všech boot virů,
které jsou hlášeny ze světa jako rozšířené (In the Wild) a asi 50%
všech existujících.
40
Bylo by zřejmě možné říkat i tomuto postupu heuristická analýza (a
první heuristické analýzy, používané v pravěku antivirových programů, takto pracovaly), ale dovolme si raději tento termín rezervovat pro poněkud lepší postupy.
Jak pracuje naše heuristická analýza
Jádrem heuristické analýzy v AVG je emulátor instrukcí procesoru
Intel. Jde vlastně o “virtuální počítač”, ve kterém můžeme “spustit”
program nebo nějakou systémovou akci - třeba zavádění operačního
systému z boot sektoru nebo z MBR pevného disku.
Program emulovaný ve virtuálním počítači není v žádném slova
smyslu přímo spuštěn. Emulátor kódu bere jeho jednotlivé instrukce
a bezpečným způsobem napodobuje jejich činnost tak, že se vše
odehrává ve “virtuálním počítači” a instrukce nemohou žádným způsobem ovlivnit obsah reálné paměti, kterou mohou sdílet další programy nebo samotné AVG.
Díky existenci emulátoru kódu je nám zcela jedno jak složitě
zašifrovaný či nečitelně napsaný je zkoumaný program. Pokud bude
vykonávat nějakou smysluplnou činnost v reálném počítači, bude
přesně stejnou činnost provádět i emulátor. S troškou zlomyslnosti
věnujme minutu ticha virovým pisálkům, kteří se měsíce trápili
vytvářením “toho opravdu nejdokonalejšího generátoru polymorfních
dešifrovacích smyček”, aby AVG tuto pasáž kódu bez zájmu a
námahy prošlo a další kontrole už předložilo dešifrovanou, konstantní, část viru.
V průběhu emulace kódu probíhá i sběr informací o “významu”
emulovaného kódu a AVG se snaží jejich vyhodnocením odhadnout,
zda jde o činnost typickou pro neškodný program nebo naopak pro
počítačový virus.
Hlavní výhodu emulátoru oproti klasickému vyhledávání podezřelých
sekvencí dobře ilustruje tento příklad:
; Tento úryvek kódu zapisuje do souboru tři bajty
MOV AH,40h ; ID operace
MOV CX,3
; Počet bytů
INT 21h
; Volání funkce operačního systému
B4 40
B9 03 00
CD 21
41
Kód s přesně stejným významem ovšem můžeme napsat nekonečně
mnoha způsoby:
B4
80
B9
CD
45
EC 05
03 00
21
MOV
SUB
MOV
INT
AH,45h
AH,5h
CX,3
21h
29
83
B4
CD
C9
C1 03
45
21
SUB
ADD
MOV
INT
CX,CX
CX,3
AH,45h
21h
Je zřejmé, že není dost dobře možné najít (už jenom pro těchto pár
ukázek a takto triviální případ) nějakou společnou vyhledávací
sekvenci. Emulátor kódu je v tomto případě nad věcí. Projde
instrukce, odsimuluje jejich význam a v okamžiku volání služby operačního systému zná přesný obsah všech registrů mikroprocesoru,
bez ohledu na to, jak složitě byly spočteny.
Výhody a nevýhody heuristické analýzy
Hlavní výhodou heuristické analýzy je schopnost detekce nových virů
ještě dříve, než se nám dostanou do rukou a doplníme informace pro
jejich detekci do AVG. Existuje i jiný způsob jak zachytit nové viry: kontrola integrity. Tato metoda je založena na sledování a vyhodnocování změn programů a systémových oblastí počítače. Dokáže tedy
virus zachytit až po jeho průniku do chráněného počítače, což může
být příliš pozdě. Pouze heuristická analýza je schopna nalézt nový
virus dříve, než má šanci způsobit nějaké problémy.
V reálném světě se každou výhodu něčím platí. Heuristická analýza
není vyjímkou z tohoto pravidla. Její hlavní nevýhodou je možnost
výskytu tzv. falešného poplachu, kdy heuristická analýza označí za
podezřelý program, který žádný virus neobsahuje. Pravděpodobnost
podobného jevu je malá, ale zcela vyloučit jej nelze. Domníváme se
ovšem, že tato nevýhoda je v porovnání s výhodami heuristické
analýzy zcela zanedbatelná.
Meze možností
Jestliže rozumíme principům práce heuristické analýzy, rozumíme
i jejím omezením. Především není heuristická analýza schopna najít
42
viry naprogramované ve vyšších programovacích jazycích (C, Pascal,
Basic, ...). Zaváděcí kód a knihovny užívané těmito jazyky jsou velmi
rozsáhlé a i když by technicky nic nebránilo proemulovat i takový program do dostatečné hloubky, tak by zpracování jednoho souboru
přece jenom trvalo o pár hodin déle, než je snesitelné.
Druhým omezením heuristické analýzy je její schopnost zpracovat
pouze některé typy infikovatelných objektů. Heuristická analýza
vyžaduje velmi detailní informace o zkoumaném objektu. Pro programy to zahrnuje znalost všech instrukcí mikroprocesoru (včetně
takových, které nejsou dokumentovány a oficiálně podporovány jeho
výrobcem), znalost způsobu jakým je program při svém spuštění
zaváděn do paměti, přehled o službách poskytovaných operačním
systémem (samozřejmě včetně služeb nedokumentovaných či
vyhrazených pro interní potřebu autorů operačního systému) a informace o přesném významu některých rezervovaných oblastí paměti
počítače, které používá BIOS nebo operační systém. Pokud se objeví
nový druh infikovatelného objektu, musí o něm být shromážděny
všechny tyto informace a heuristická analýza musí být upravena tak,
aby byla schopna ho analyzovat. V horším případě (například pro
makroviry) musí být napsána nová analýza zcela “na zelené louce”.
V době uzávěrky tohoto textu máme připravenou beta verzi heuristické analýzy pro makroviry a doplníme ji do AVG 6 v některé
z aktualizací.
Výsledky heuristické analýzy
Je velmi důležité si uvědomit, že heuristická analýza není metodou
schopnou odhalit 100% všech známých a neznámých virů. Jde
o doplňkovou metodu, která výrazně zvyšuje šance na zachycení
nového viru. Nic víc a nic méně.
Podle našich testů je naše heuristická analýza schopna detekovat
více než 70% existujících souborových virů a bootvirů, při zanedbatelném počtu falešných poplachů.
43
Test integrity
Využití testu integrity při hledání virů
Po otestování souboru na přítomnost známých virů a jeho kontrole
heuristickou analýzou jsou nejdůležitější informace o souboru
uloženy do databáze integrity (databáze kompletního testu). Pokud
bude soubor při příštím testu ve stejném stavu (a AVG nebylo
mezitím aktualizováno), tak není nutné jej detailně testovat.
V případě detekované změny obsahu souboru se AVG pokouší analyzovat typ změny a odhadnout, zda se může jednat o infekci či nikoli
(samozřejmě pouze v případě, že už předchozí testy nenašly konkrétní
infekci nebo něco podezřelého).
Po aktualizaci AVG jsou všechny soubory testovány znovu. To je
nutné pro případ infekce novým virem, který ještě předchozí verze
nebyla schopna detekovat.
Využití testu integrity při léčení virů
Velmi důležitou roli hraje databáze integrity i při léčení souborů.
Neobsahuje totiž pouze kontrolní součet celého souboru, ale kontrolní součty několika oblastí souboru, kontrolní součet celého
souboru (vyrobený velmi bezpečným MD algoritmem) a navíc ještě
kopii obsahu malé (ale nesmírně důležité) části hlavičky souboru.
S těmito informacemi můžeme léčit soubory mnohem přesněji a
obnovit zcela správnou délku (některé viry zarovnávají délku infikovaného souboru na násobek 16 a nikam neukládají údaj o původní
délce souboru).
Omezení testu integrity
Jakkoli je tato metoda velmi spolehlivá, není (jako ostatně nic na této
planetě) perfektní.
44
• Nedokáže uživateli sdělit, zda se v jeho počítači objevil virus.
Veškerá zjištění, kterých je test integrity schopen, jsou omezena
pouze na sdělení - byla zjištěna změna a případné označení této
změny za podezřelou.
• Je bezmocná proti makrovirům. Je sice možné testem integrity
sledovat textové soubory, ale počet zjištěných (a zcela korektních) změn bude takový, že uživatele zcela zahltí.
• Kromě toho existují i programy, které svůj EXE soubor mění.
(Třeba TC.EXE - kompilátor Turbo C V2.0 - si sám do sebe poznamenává svou konfiguraci).
To jsou ovšem drobnosti. Daleko podstatnější nevýhodou kontroly
integrity je, že virus zachytí až při jeho šíření v chráněném systému.
Tento postup poněkud připomíná zavírání kurníku ve chvíli, kdy už
liška se zakrvavenou tlamou mizí směrem k lesu.
REZIDENTNÍ ŠTÍT
Rezidentní štít (on-access scanner) je zaveden do paměti při startu
počítače a průběžně monitoruje souborové operace, které jsou na
něm prováděny.
Pokud přistupujete k nějakému infikovanému souboru (například
spouštíte nakažený program, nebo otevíráte dokument
s makrovirem), tak rezidentní štít vypíše varování a odepře přístup
k tomuto souboru.
Zní to jako definitivní řešení všech problémů s viry, že ? Život bohužel
není tak jednoduchý. Rezidentní programy mají své limity nejdůležitějším z nich je rychlost. Zpomalení počítače způsobené
průběžnou kontrolou nesmí být příliš velké, jinak by bránilo
uživatelům v práci.
Rezidentní štít používá stejné antivirové techniky jako vlastní AVG.
Jediným rozdílem je, že se nesnaží kontrolovat archivy - podobná
operace by byla příliš časově náročná.
45
KONTROLA ELEKTRONICKÉ POŠTY
Nejlepším způsobem obrany hradu je důsledná ochrana všech bran.
Přílohy elektronické pošty dnes představují nejběžnější způsob šíření
souborů mezi uživateli.
Proto je součástí antivirového systému AVG i AVG pro E-mail, který
prověřuje připojené soubory, přesně v okamžiku, kdy “překročí hranice” mezi vaším serverem a poštovním klientem. Stejnou práci
může zajisté odvést (o něco později) rezidentní štít, ale díky kontrole
elektronické pošty vás můžeme varovat tak rychle, jak je to jenom
možné.
AVG pro E-mail používá stejné antivirové techniky jako vlastní kontrolní program AVG.
46
PRAKTICKÁ SEBEOBRANA PRO UŽIVATELE
Vlastní kontrolu počítače antivirovým programem lze označit za
aktivní ochranu. Kromě ní však existuje také tzv. ochrana pasivní v podstatě jde o způsob, jakým se uživatel k počítači chová a jak
s ním pracuje.
Existuje jediná 100% spolehlivá ochrana před počítačovými viry.
Stačí vložit počítač do velké dřevěné bedny, pečlivě přestříhat všechny
k němu vedoucí šňůry a zalít ho betonem. Použít tento postup je
poněkud nepraktické, takže se pokusme najít nějaký méně účinný,
ale o něco praktičtější. Pokud se ale právě teď smutně díváte na
obrazovku svého počítače s nápisem:
Your hard-disk is being corrupted, courtesy of PATHOGEN!
Programmed in the U.K. (Yes, NOT Bulgaria!) [C] The Black Baron 1993-4
Featuring SMEG v0.1: Simulated Metamorphic Encryption Generator!
‘Smoke me a kipper, I`ll be back for breakfast.....’
Unfortunately some of your data won`t!!!!!
tak je už pozdě myslet na nějakou prevenci. V této situaci si v klidu
uvařte kávu, vypijte ji a přitom vzpomínejte, kde máte záložní kopie
svých dat.
Nicméně předpokládejme, že tak daleko ještě situace nedospěla.
Zde jsou tedy zásady, jejichž dodržování vám pomůže výrazně snížit
pravděpodobnost virových radovánek na vašem počítači:
Váš počítač - váš hrad
Pokud to není nezbytně nutné, tak ke svému počítači nepouštějte
osoby, které se nejsou schopny a ochotny chovat podle vašich představ. Jakákoli pečlivost během dne je k ničemu, jestliže k vašemu
počítači večer zasedne náruživý hráč s balíčkem disket (dnes již
spíše CD) pochybného původu.
47
Nedůvěřujte nikomu
Každou disketu, kterou někdo chce vsunout do vašeho počítače,
nejprve otestujte. Možná tak budete vypadat jako nebezpečný paranoik, ale občas vám bude odměnou pohled na protažený obličej
vašeho přítele, který se dušoval, že opravdu, ale opravdu žádné viry
na své disketě nemá, a nyní tupě zírá na varovné hlášení.
Z tohoto pravidla nejsou vyňaty žádné diskety, byť by je přinesl zvláštní posel prezidenta republiky s osobním dopisem dotyčného, zaručujícím jejich “viruprostost”. Je zdokumentována řada případů, kdy se
vir šířil například na instalačních disketách přikládaných k hardwaru
nebo na disketě s programem odborného semináře pořádaného jedním z největších výrobců počítačů.
Nedůvěřujte ani sobě
Pokud na cizí disketu nechcete psát, ochraňte ji proti zápisu.
Vyvarujete se pak toho, že za vámi někdo přijde, bude tlouct disketou o stůl, vykřikovat sprostá slova a tvrdit, že byla ve vašem počítači
napadena virem. A kdyby se náhodou stalo, že nějaký nový vir do
vašeho počítače přece jenom pronikl, zpomalíte tak jeho další šíření.
To jistě stojí za trochu námahy.
Nepřeceňujte svůj antivirový program
Protože tato rada platí i pro náš antivirový systém AVG, zní možná
trošku prapodivně, ale pokusíme se ji vysvětlit. Pokud má autor viru
k dispozici aktuální verzi libovolného antivirového systému, umí
dobře programovat a má dostatek volného času, tak prostě je
schopen napsat virus neodhalitelný většinou funkcí tohoto systému.
Pravděpodobnost, že se s takovým virem stihnete potkat dříve, než
s aktualizací, která ho již bude znát, je sice velmi malá, ale existuje.
Právě zde je nejlepším řešením zajistit pro svůj program pravidelnou
aktualizaci s co nejkratší periodou.
48
Proveďte občas start systému z čisté diskety a kontrolujte
Jak jsme uvedli v předchozím odstavci, existuje teoretická šance, že
se na vašem počítači objeví virus. Virus, který je vybaven speciálními
technikami na ochranu právě před tím antivirovým programem, který
používáte. Přestože tento antivirový program je vybaven kvalitním
anti-stealth technikami (je schopen zjistit i jinak “neviditelné” stealth
viry) a nemusíte proto normálně před každým testem startovat operační systém z čisté diskety, nastane situace, kdy aktivní virus váš
program “obelstí”. V této chvíli je jedinou (a snadnou) možností, zajistit pro antivirový program čisté prostředí, kde virus není aktivní. Toho
dosáhnete tak, že provedete start operačního systému ze systémové
diskety (samozřejmě nenapadané virem). Nyní spusťte antivirový program a proveďte kontrolu - virus nemůže ovlivnit běh programu a
bude detekován.
Zálohujte svá data
Záložní kopie zdaleka nejsou důležité jenom kvůli počítačovým
virům. Pevné disky přece jenom nejsou nesmrtelné, počítače se
kradou a občas dojde i k požáru. V takovém případě může mít sada
bezpečnostních kopií, uložená na nějakém bezpečném místě, cenu
zlata. Velmi dobrým nápadem je mít několik sad záložních kopií
z různé doby. Existují totiž i zákeřné viry, které škodí zvolna a nenápadně. Například vir Ser_No občas mění náhodně vybraný Byte
v datech zapisovaných na disk. Pokud nemáte k dispozici zálohy
z doby, kdy počítač ještě nebyl infikován, může být záchrana dat
velmi pracná.
Braňte se včas
Antivirový systém má výrazně vyšší šance, jestliže je instalován na
zdravém počítači. Nainstalujte ho proto co nejdříve.
Braňte se pořád
Antivirové programy “stárnou” (a AVG není výjimkou), proto je nanejvýš nutné si antivirový systém pravidelně aktualizovat - jenom tak
49
může být schopen vám účinně pomoci i proti novým virům.
Uvědomte si, že vlastní aktualizace antivirového programu může
probíhat, a také probíhá, ve dvou rovinách. První je pouhé
doplňování nových virových identifikátorů, podle kterých antivirový
program známé viry vyhledává. Za smysluplnou rychlost aktualizace
virové databáze lze považovat interval jednoho, maximálně dvou
měsíců. V dnešní době se nabízí ideální platforma pro distribuci
těchto souborů - Internet. Pokud jste připojeni, tak je AVG schopno si
automaticky stahovat své aktualizace.
Druhým způsobem aktualizace je skutečný zásah do vlastních programů, obvykle ve větším rozsahu. Pro detekci nových, moderních
virů je nutné do programu zapracovat zcela nové techniky a vyhledávací algoritmy, nebo stávající funkce podstatně přepracovat.
Aktualizace touto formou je pak nejčastěji nabízena uživateli jako
přechod na novou verzi - UpGrade za poplatek.
Buďte pozorní
Všímejte si změn chování svého počítače. Přítomnost viru v systému
se může (ovšem nemusí) projevit celou řadou maličkostí.
Nebojte se zeptat
Když získáte pocit, že se na vašem počítači děje něco, co by se dít
nemělo, tak se nebojte zeptat někoho znalejšího. Nemít detailní
znalosti dnešních PC není žádná ostuda.
Na závěr
Přečtěte si dokumentaci. Pokud tak neučiníte u svého oblíbeného
textového editoru, tak nanejvýš riskujete, že některé operace budete
provádět zbytečně pracně. Ignorování dokumentace antivirového
programu vás může stát přece jenom o něco více. Vzhledem k tomu,
že právě čtete tento odstavec, tak ovšem nezbývá, než vás pochválit.
50

Podobné dokumenty