POČÍTAČOVÉ VIRY aneb nejlepší ochranou proti nemoci je prevence Počítačové viry se objevují ve sci-fi literatuře již v šedesátých letech 20. století. V té době je to ale pouze produkt fantazie spisovatelů daného žánru. Reálnou existenci jim dovolil teprve v osmdesátých letech rozvoj techniky. 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č IBM PC. Byl tak odstartován závod virů a antivirů, kterého se všichni, většinou nedobrovolně, účastníme dodnes. Od té doby se mnohé 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ž 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.
Počítačový virus Počítačový virus je malý program napadající obvykle spustitelné soubory – programy (nejčastěji s příponou EXE nebo COM) nebo dokumenty obsahující tzv. makro (jednoduchý program, připojený k dokumentu). Počítačový virus je schopen sám sebe připojit k jiným programům a dál se z nich bez vědomí uživatele šířit. Funkce viru 1. Rozmnožovací – virus se snaží co nejvíce rozšířit na objekty, které dokáže napadnout. 2. Škodící – žertovná (obtěžující) nebo ničivá. Konkrétní efekt viru je často načasován na nějakou určitou dobu (např. pátek třináctého, datum narození nějaké osobnosti, sedmnáctý listopad, pravidelná denní doba, …). Efekty mohou být grafické (zobrazení textu, obrázku nebo jednoduché animace, skapávání textu z obrazovky apod.), zvukové (jednoduchá melodie), jinak obtěžující (např. záměna stisknuté klávesy za sousední, pozpátku jdoucí hodiny počítače, protelefonování spousty peněz díky modemu připojenému k počítači apod.). Některé viry umožňují autorům vykrást libovolné údaje z napadeného počítače. Vrcholem činnosti virů je pak asi destruktivní působení na datech uložených na pevném disku počítače (např. jednorázové přepsání obsahu celého disku nesmysly nebo mnohem zákeřnější forma destrukce – pomalé a nenápadné změny v datech, tu a tam virus prohodí dva bajty. Zatímco u prvního způsobu destrukce bývá náprava snadná, protože pokud si děláme pravidelné zálohy, stačí z nich pouze obnovit poslední stav a je po problému, u druhého způsobu destrukce je 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.) Typy virů • Bootovací virus – virus napadající z boot sectoru (bootovacího sektoru, zaváděcího sektoru) disku nebo diskety systémové oblasti počítače – PARTITION TABLE (tabulka, která říká, jak je disk daného počítače rozdělen), BOOT SECTOR (oblast obsahující kód, který je vykonáván při startu počítače), FAT - File Allocation Table (tabulka obsahující informace o rozložení souborů na disku či disketě). Mechanismus jeho šíření je velmi jednoduchý. Pokud vlastníme disketu, jejíž boot sector je napaden virem, stačí tuto disketu zapomenout v mechanice při startu nebo restartu počítače. Při startu počítače se obvykle (pokud uživatel nenastaví jinak) hledá zaváděcí program ope-
1
rační systém nejprve na disketě a pokouší se ho zavést z ní. Řízení se předá kódu, který se nachází v boot sectoru této diskety. Virus zde uložený je tak aktivován a zahájí svou činnost. Nejprve ověří, jestli už pevný disk počítače není infikován a pokud ano, ukončí svoji činnost. Pokud ne, okamžitě pevný disk infikuje. Virus se obvykle zapíše do Partition tabulky nebo boot sectoru a původní obsah odklidí na nějaké jiné místo. 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 operační paměti a stává se aktivním. 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 (který má bezpečně uložený). Na první pohled se 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. Virus sedí v paměti a v okamžiku, kdy se dozví, že byla do mechaniky vložena disketa, zkontroluje, jestli již neobsahuje kód viru, a pokud ne, tak se na ní zapíše. Od tohoto okamžiku je taková disketa napadena virem a stává se médiem, pomocí kterého se virus přenáší na další počítače. Zvláštním požadavkem, který virus monitoruje, je pokus o čtení Partition tabulky pevného disku. Ta obsahuje virový kód. Požadavek na čtení by mohl přijít například od antivirového programu, který právě kontroluje čistotu počítače. Virus tedy na požadavek na čtení nevrátí skutečný obsah Partition tabulky, ale její původní obsah tak, jak vypadal před nákazou (má jej bezpečně uložen). Pokud se skutečně jednalo o antivirový program, ten nenajde na načtených datech nic závadného. Tomuto postupu viru se říká stealth technika (neviditelnost) a jeho hlavním cílem je zamaskovat přítomnost viru před antivirovým programem. • Souborové viry – napadají pouze soubory; připojují svůj kód k jinému programu obvykle s příponou EXE, COM, SYS. Program může být uložen i v souboru s jinou příponou, např. OVL, DLL, SCR (šetřič obrazovky). O tom co je spustitelný soubor nerozhoduje jeho přípona, ale hlavně jeho obsah a to, jakým způsobem je využíván. 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 šíření viru schopny žádné jiné činnosti. Skutečnost, že napadený program není nadále možné spouštět, se obvykle viry snaží zamaskovat nějakým chybovým hlášením. Link virus – virus se připojí k tělu oběti (před napadený program, za něj nebo doprostřed souboru) a zachovává tak původní funkci programu. 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. 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žívá tak vlastnosti MS DOSu, který při spuštění dává přednost COM souborům. 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. Působení virů Virus přímé akce – primitivní souborový virus. Jakmile je spuštěn, tak vykoná vše, co chtěl a skončí. Rezidentní virus – je přítomen v paměti a může tak neustále ovlivňovat činnost počítače. Jeho výhodou je, že si nemusí sám hledat programy vhodné k napadení. Stačí mu 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
2
obsahu (tedy sebe sama) vracet stav před infekcí. Antivirový program, pokud není vybaven antistealth technikami, tedy nemá možnost takový virus zjistit. Zakódovaný virus – tento virus je zašifrován nějakým proměnným klíčem a pouze krátká dešifrovací funkce je vždy stejná. Polymorfní virus – tento typ viru si pro každý napadený soubor vytváří zcela jinou dešifrovací funkci a v napadených souborech nelze najít žádné sekvence stejného kódu. Fast infektor – rezidentní virus, který soubory napadá nejen při jejich spouštění, ale téměř při jakékoli manipulaci s nimi. Šíří se tak obrovskou rychlostí, ale tím také zvyšuje pravděpodobnost, že na sebe brzy upozorní. Slow Infektor – virus, který se šíří co nejobezřetněji. Napadá například pouze nově vytvářené soubory na disku. Šíří se sice velmi pomalu, ale může tak unikat některým antivirovým technikám. • Multiparitní viry – napadají soubory i systémové oblasti počítače (např. One_Half). • Makrovirus – jsou dnes asi nejběžnějším typem infekce, kterou můžeme na svém počítači potkat. Hlavním důvodem je to, že infikují dokumenty, tedy objekty, které jsou mezi uživateli nejčastěji sdíleny. Současné verze aplikací Microsoft Office používají Visual Basic for Applications (VBA), programovací jazyk, který umožňuje psaní maker (jednoduchých prográmků připojených k dokumentu) a tím i makrovirů. Nejčastěji se s makroviry můžeme setkat u dokumentů MS Wordu s příponou DOC nebo DOT, MS PowerPointu s příponou PPT, MS Excelu s příponou XLS, MS Outlooku, MS Accessu s příponou MDB, ale i u dokumentů programu Corel Draw s příponou CDR apod.). Většina makrovirů zneužívá tzv. automaker. Vlastně jde o to, že makra se speciálními názvy jsou spouštěna automaticky, například při otvírání a zavírání dokumentu nebo při startu programu. Uživatel o jejich spuštění ani neví. Jiný druh makrovirů využívá tzv. scriptovací jazyky (jednoduché programovací jazyky používané Windows 95 a vyššími verzemi – JScript, VBScript). Tyto viry jsou buď šířeny jako samostatný soubor (například v příloze elektronického dopisu) nebo jsou vloženy do HTML dokumentu. Viry neviry • Trojský kůň – je skutečný program existující samostatně obvykle s užitečnou nebo přitažlivou tématikou (např. šetřič obrazovky). Je to tzv. malware – škodlivý program. Po jeho spuštění je vykonávána činnost, kterou nabízí, ale na pozadí působí něco nekalého v našem počítači (maže soubory, přepisuje konfiguraci počítače či provádí jinou destruktivní akci). Některé jsou určeny speciálně proti konkrétnímu programu – mění jeho konfiguraci, pokouší se vykrást hesla apod. Velmi nebezpečnou skupinu tvoří trojské koně umožňující vzdálenou kontrolu počítače. • Hoax – kachna, žert - je lavinovitě se šířící neověřená poplašná zpráva nebo pyramidová hra. Často taková zpráva vyhrožuje nějakým nebezpečím a obvykle obsahuje výzvu, abyste ji poslali všem lidem, které znáte. Způsoby infikace virem Počítač nelze infikovat pouhým prohlížením zavirovaných souborů například pomocí nějakého souborového manažeru (např. Průzkumníkem apod.). Soubor s virem musí být spuštěn, aby byl virus aktivován a mohl zahájit svoji činnost. Výjimku z tohoto pravidla tvoří makroviry, kterým stačí načtení (otevření) infikovaného dokumentu do příslušného programu (na-
3
příklad textového dokumentu do Wordu). Jiná manipulace se zavirovaným souborem je však bezpečná (např. kopírování, přejmenovávání, přesouvání). Virus se na náš počítač nejčastěji dostane: • z cizí zavirované diskety (každou cizí disketu nejdříve prověřit antivirovým programem, před startem či restartem počítače zkontrolovat disketovou mechaniku, zda v ní není zasunuta disketa); • zavirováním vlastní diskety v cizím počítači (zabezpečit disketu proti zápisu); • z CD ROMu se sharewarovými programy (každý nový program před spuštěním prověřit antivirovým programem); • zkopírováním zavirovaného souboru z internetu (před spuštěním prověřit antivirovým programem); • ze zavirovaného souboru, který nám přišel jako příloha elektronické pošty nebo zavirovaného vlastního elektronického dopisu (obsahující makrovirus). Virus se může aktivovat již pouhým čtením (otevřením) elektronického dopisu. V zájmu bezpečnosti bychom neměli otevírat (spouštět) žádné přílohy od neznámých odesílatelů, ale ani jiné podezřelé přílohy, a také bychom neměli mít v Průzkumníku ve Windows nastaveno nezobrazování přípon souborů (obvykle se nastavuje v Nástroje Možnosti složky Zobrazit nezaškrtávat položku Skrýt příponu souborů známých typů). Jako příloha dopisu nám může přijít soubor, který se jmenuje například obrazek.jpg.exe. Budeme-li mít nastaveno nezobrazování přípon souborů, uvidíme pouze obrazek.jpg a bez obav ho otevřeme. Soubory s příponou EXE je nejlepší ihned smazat nebo alespoň uložit a prověřit antivirovým programem. Ochrana proti virům 1. Prevence – používat na svém počítači pouze legálně zakoupený software a pracovat jen s daty vytvořenými na daném počítači a v žádném případě se nepřipojovat k internetu je sice řešení naprosto spolehlivé, ale asi poněkud nereálné, a proto: • nepouštějte na počítač osoby, které nejsou schopny ani ochotny chovat se podle vašich představ; • každou disketu, kterou chce někdo vsunout do našeho počítače, nejprve otestovat antivirovým programem; • pokud na disketu nechceme zapisovat, vždy ji chránit proti zápisu; • všímejte si změn chování svého počítače, přítomnost viru v systému se může projevit celou řadou maličkostí; • pravidelně zálohujte svá data. 2. Antivirové programy – jsou programy, které dokáží převážnou většinu virů najít a některé z nich i odstranit. Sebedokonalejší a stále aktualizovaný antivirový program však nikdy nepředstavuje 100% ochranu proti virům, neboť programátoři virů mají vždy určitý časový předstih před programátory antivirů! Ročně se v počítačovém světě objeví několik tisíc nových virů. Pravděpodobnost, že se setkáte s novým virem dříve než s aktualizací antivirového programu, která ho bude znát, je sice malá, ale existuje. Antivirový program proto aktualizujte každý měsíc, maximálně každé dva měsíce. Máte-li trvalé připojení k internetu, tak je nejlepší nechat ho aktualizovat automaticky. 3. Viry využívají „děr“ v zabezpečení systému. K ochraně svého počítače můžete též přispět instalací nejnovějších verzí internetových prohlížečů (MS Internet Exploreru, Netscape Navigatoru apod.), kde jsou již provedeny „záplaty“ takovýchto děr. (Softwarové firmy obvykle zveřejňují příslušné opravy, které je možné si stáhnout, na svých internetových
4
serverech.) Nebo naopak si můžeme nainstalovat hodně staré verze internetových prohlížečů, které ještě tyto nedostatky neměly (u nich ale může docházet k problémům při načítání některých webových stránek). Antivirové techniky Hledání známých virů – antivirový program disponuje databází dosud známých virů a při kontrole počítače se snaží hledat kódy těchto virů. Pokud se u testovaného objektu objeví kód odpovídající nějakému viru, je tento označen jako napadený virem. Heuristická analýza (pokus o hledání neznámých virů) – technika využívaná pro detekci nových dosud neznámých virů, kdy se antivirový program pokouší analýzou kontrolovaného programu zjistit, zda neobsahuje konstrukce typické pro počítačový virus. Nevýhodou této metody je možnost výskytu tzv. falešného poplachu, kdy heuristická analýza označí za podezřelý program, který žádný virus neobsahuje. Sledování změn (test integrity) – po otestování souboru jsou nejdůležitější informace o něm uloženy do databáze integrity. Pokud bude soubor při příštím testu ve stejném stavu, tak není nutné jej detailně testovat. V případě nalezené změny obsahu souboru antivirový program analyzuje typ změny a snaží se odhadnout, zda se jedná o infekci či nikoli. Rezidentní štít – je zaveden do operační 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řistupujeme k nějakému infikovanému souboru (například spouštíme nakažený program, nebo otevíráme dokument s makrovirem), tak rezidentní štít vypíše varování a odepře přístup k tomuto souboru. Nevýhodou rezidentního štítu je určité zpomalení činnosti počítače. Kontrola elektronické pošty – antivirový program prověřuje soubory, které tvoří přílohu elektronické pošty (obvykle v okamžiku, kdy poštovní program obdrží novou elektronickou poštu). Antivirové programy I v oblasti antivirových programů je z čeho vybírat. Můžeme volit mezi programy české provenience (mají obvykle české prostředí) nebo antiviry ze zahraničí (u kterých se obvykle předpokládá znalost angličtiny). Jsou to např. AVG od firmy Grisoft, ČR, Avast!32, Alwil, ČR, NOD 32, Eset, Slovensko AntiViral Toolkit Pro (AVP), Kaspersky Lab, Rusko Norton AntiVirus, Symantec, USA Virus Scan, McAfee, USA Panda Antivirus, Panda Software, Španělsko Touch Stone PC-cillin, Symantec, USA F-Secure Antivirus, USA Norman Virus Control, Norman, USA Literatura a další zdroje Petr Odehnal, Tomáš Hofer: Chráníme počítač antivirovým programem AVG 6.0, Computer Press, Praha 1999 Časopisy Computer a Computerworld – různá čísla Intervet www.viry.cz Zpracovala: Ing. Simona Martínková Copyleft © update listopad 2001
5