Typy počítačových virů

Počítačové viry jsou ve své většině drobné programy, které vykonávají nějakou činnost, pro niž je nemáme rádi...


Počítačové viry jsou ve své většině drobné programy, které vykonávají nějakou
činnost, pro niž je nemáme rádi. Můžeme jejich tvůrcům spílat jak chceme za
škody, které nám svými dílky napáchali, musíme však uznat, že to jsou skuteční
mistři v oboru. Složité kódovací funkce, polymorfismus, stealth techniky, to
vše je ukázkou umu, který byl, bohužel, nasměrován špatným směrem. Nejdříve se
ale podíváme na nejčastější funkce, kterými se nás můžou viry snažit zdolat. Ve
druhé části článku objasním oblíbené techniky, jichž viry používají ke skrytému
provozování svých nekalých rejdů.
Typy virových útoků
Začněme tedy přehledem běžných typů virové nákazy, ukázkami škodících virových
činností. Nutno podotknout, že následující seznam není a ani nemůže být
konečný, neboť paleta funkcí virů je skutečně obrovská. S trochou nadsázky by
se dokonce dalo říci, že každý vir dělá něco jiného.
Množení neškodných dat
Tato funkce většinou není příliš škodlivá, neboť její podstatou bývá zaplňování
volných míst na disku. To, co se na první pohled může zdát, snad kromě zmenšení
volného místa, jako drobná nepříjemnost, může vést i k větším problémům. Často
je to zpomalení práce s diskem, neboť obvyklým projevem tohoto typu útoku je ve
výsledku fragmentace disku. Co však uživatele může zabolet více, jsou problémy
s obnovou smazaných souborů, protože jejich zbytky v "prázdném" prostoru na
disku, které by bylo možno obnovit, už virus stačil přepsat.
Mazání či poškozování dat
Datové soubory jsou většinou na počítači to nejůležitější, a proto jejich
ztráta znamená to nejhorší. Viry do nich zasahují obvykle třemi způsoby. Buď
okamžitě zlikvidují celý obsah pevného disku tak, aby už nikdy nešel obnovit.
Další variantou je, že likvidují obsah disku po jednotlivých sektorech či
klastrech. Viry to obvykle provádějí směrem od konce disku, který bývá výrazně
méně zaplněn, než jeho fyzický začátek. Posledním typem je postupný útok po
jednotlivých datových souborech, jejichž ztráta se poměrně lehce skryje. Druhé
dvě metody mají pro uživatele tu nevýhodu, že od nakažení do doby, než si
uživatel změn všimne, může uplynout dlouhá doba a virus má možnost se rozšířit
na další hostitelské stroje. Aby ztížily možnost svého objevení i viry, které
likvidují celý obsah disku najednou, číhají velmi často i dlouhou dobu v
počítači, snaží se dostat do dalších hostitelských počítačů a zaútočí až při
určitém datu.
Zvláštním typem tohoto útoku je postupné kódování sektorů disku. Při něm
dochází k zakódování vždy dalšího a dalšího sektoru na disku, ale při požadavku
na čtení konkrétního sektoru je pomocí metod stealth nabídnut sektor už zpět
odkódovaný, takže uživatel nepozoruje žádné změny chování počítače. Brutální
odstranění viru se systémových sektorů disku pak způsobí, že zakódovanou část
už nepůjde rozkódovat. Proto je při likvidování virů nutná nejvyšší opatrnost a
je dobré zavrhnout všechny "jednoduché" a rychlé metody, které ne vždy mohou
vést ke kýženému cíli.
Mazání či poškozování programových souborů
Tento typ útoku často provází předchozí. Jeho podstatou je znefunkčnění
některého konkrétního nebo více rozličných programů. Pro uživatele v tomto
případě je důležité hlavně to, že ostatní data na disku zůstávají nepoškozena.
Většinou přijde jen o konfigurační soubory, INI soubory a připadná nastavení.
Ztěžování práce
Velmi častý způsob útoku mírumilovnějších virů. Může mít mnoho forem, od
pouhého neodbytného pípání při každém stisku klávesy, přes padající písmenka až
po různé podivné hlášky. Právě typy, jenž se vyznačují podivnými hláškami,
které napodobují standardní systémová chybová hlášení, často přehlédnou i
systémoví správci. Je důležité si uvědomit, že zdánlivě neškodné hlášení, které
uživateli pouze stěžuje práci na počítači, může být vrcholem destrukční
činnosti viru, spočívající třeba v mazání či poškozování dat.
Tyto viry je ve většině případů snadné objevit, jejich útok ale provází snad
ještě větší panika nezkušených uživatelů než útoky mnohem destruktivnějších
"kolegů", kteří se chovají nenápadně.
Poškození systémových oblastí počítače
Systémové oblasti počítače (zaváděcí stopy, CMOS, flash ROM) jsou velmi citlivá
místa. Správně mířený virový útok může zcela paralyzovat počítač a případná
oprava rozhodně není jednoduchá. Zvlášť na starších systémech, které například
nezvládají detekci připojených disků, je obnova CMOS dost složitá záležitost.
Rovněž případný, snad pouze teoretický útok do flashovatelné paměti ROM, v níž
je uložen BIOS, by se mohl projevit nefunkčností počítače a obtížnou nápravou.
Nefunkčnost hardware
Toto je jeden z nejobávanějších virových úroků a dlužno dodat, že neprávem.
Současné systémy a komponenty, z nichž se staví počítače, jsou už natolik
odolné pokusům o své zničení, že reálná šance na takovéto vyvrcholení je
mizivá. Dříve tomu tak nebylo, a doslechl jsem se o některých případech, že
došlo k poškození staršího pevného disku nebo grafického adaptéru. V současné
době však nevím o žádném viru, který by dokázal moderní hardware trvale a
neopravitelně poškodit.
Jiným útokem ovšem je dočasné odstavení komponent. Softwarově je možné
například vypnout sériové či paralelní porty, což se může na první pohled zdát
jako hardwarová závada. Opět je věcí systémového správce, aby zjistil skutečný
původ závady.
Virové techniky
Podívejme se nyní, jakým způsobem viry pracují tak říkajíc uvnitř. Jak se brání
odhalení a jakých metod používají k tomu, aby zajistily svoji funkčnost a
rozšířily se do více počítačů.
Šíření sebe sama
Toto je skutečně téměř standardní virová funkce. Její podstatou je zajistit,
aby virus zasáhl pokud možno co nejvíce dalších hostitelských počítačů a při
tom sám zůstal neodhalen. Existují dva hlavní způsoby množení. První způsob
samovolného množení je založen na jednoduchém postupu. Virus si při aktivaci
(spuštění hostitelského programu, k němuž je přilepen) zajistí, aby se nakazil
další soubor. Pokud je spuštěn na čistém počítači, například stažen z
Internetu, může nakazit boot či master boot record nového hostitelského disku
lokálního počítače. Tato cesta je dnes výrazně pravděpodobnější.
Druhou, dnes už méně aktuální možností je disketová nákaza. K další nákaze z
disket je bezpodmínečně nutný počítač, na kterém je instalován a běží příslušný
virus, jenž tuto funkci obsahuje. Přenos se pak většinou realizuje tak, že při
čtení či zápisu na disketu je do její systémové oblasti zkopírován také vlastní
kód viru, který zajistí jeho úspěšné zachycení v dalším hostitelském počítači.
Pro vlastní nakažení dalšího počítače je třeba z diskety zavést systém. Pro
přenos stačí tedy pouze to, když disketu při zapnutí počítače zapomenete v
disketové mechanice. Ostatní projevy zavedení jsou často zcela shodné s běžnými
projevy počítače v této situaci, proto se virus může dostat do nového systému
zcela nepozorován.
Nejlepší obrana proti tomuto typu nákazy spočívá v zamezení pokusů o zavádění
systému z diskety. V SETUPu se nastaví Boot Sequence nebo Boot Options do stavu
"C only" případně "C, A..." tak, aby start počítače proběhl rovnou zavedením
systému z pevného disku. Případné zavádění systému z diskety je dobré povolit
je na nezbytně nutnou dobu.
Zajímavý způsob množení používají tzv. červi. Ti jsou totiž upraveni na život v
počítačových sítích a tak se množí přímo skrz ně, aniž by je bylo nutné na
jednotlivé stanice kopírovat a spouštět.
Zachytávání vektorů přerušení
Principem obrovského množství virů je technika zachytávání vektorů přerušení.
Téměř každá činnost počítače, která nespočívá jen v počítání, využívá tzv.
přerušení. Když chceme přečíst soubor z disku, program zavolá určité přerušení,
které uskuteční vlastní kontakt s diskem a nadřízenému programu vrátí obsah
čteného souboru. Stejně tak psaní na klávesnici je do programů převedeno
prostřednictvím přerušení.
Přerušení se uskuteční tím způsobem, že je z přesně definovaného místa v paměti
vyzvednuta konkrétní adresa procesu, který přerušení obslouží, a poté se řízení
opět vrátí do programu, v němž se právě pracuje. Adresa, která se při tomto
skoku použije, se nazývá vektor přerušení. Virus se často zachová tak, že do
tabulky těchto adres místo původního procesu zapíše odkaz na sebe a sám si
zajistí to, aby zavolal i původní vektor přerušení, což zajistí (alespoň dojem)
správné funkčnosti počítače.
Virus, který je už usazen v paměti a snaží se nakazit co nejvíce souborů, se
zřejmě usadí na vektoru přerušení pro práci se soubory. K vlastní nákaze dojde
kdykoliv uživatel otevře jakýkoliv soubor, neboť provedení tohoto příkazu musí
jít přes vektor přerušení, místo nějž virus podvrhnul sám sebe. Po nakažení
dalšího souboru virus předá řízení původní obsluze tohoto přerušení, takže
uživatel skutečně spatří otevření souboru.
Bootovací viry
Start počítače je sice velmi komplikovaná, nicméně zcela standardizovaná
operace. Jejím jádrem je zavedení systému z disku a jeho spuštění. Zavádění se
provádí z přesně definovaného místa na disku, takže viry mají jasný cíl.
Většinou přidají k původnímu zaváděcímu (boot) sektoru kousek svého kódu, s
nímž si zajistí svoji aktivaci, zachycení potřebných vektorů a množení.
Oprava boot sektoru je vzhledem k jeho standardnosti a transparentnosti poměrně
jednoduchá záležitost, problematické je ovšem dostat systém do stavu, kdy si
nechá opravit zavirovaný boot sektor, neboť mnoho virů se zachycením
příslušných vektorů proti tomu úpěnlivě brání.
Zachycení na soubor
Velmi častý způsob práce jednodušších virů. Jeho principem je to, že virus
připíše do programu svůj kód a zajistí si, aby došlo k jeho spuštění při
spuštění programu. Pak vykoná nějakou činnost množení, poškození dat a podobně
a předá řízení programu, který byl ve skutečnosti spuštěn, aby uživatel nic
nepozoroval.
Problémem leckdy je, že se virus nesprávným způsobem přilepí a program se stane
trvale nefunkčním. Uživatel většinou program přeinstaluje a nezajímá se o to,
co problém způsobilo. Tento typ virů se někdy dá zjistit tím, že délka programu
se zvýší o délku viru.
Stealth technologie
Moderní a kvalitní viry se svému zjištění brání zajímavou technikou. S pomocí
zachycení vektorů přerušení odchytí jednu nebo i více možností, jak má
antivirový program nebo uživatel možnost dostat se jim na kobylku, a takto se
účinně zamaskují. V praxi se bootovací stealth viry chovají tak, že když
antivirový program chce zkontrolovat boot sektor, virus mu předhodí původní,
nezavirovaný boot sektor, který si uložil na bezpečném místě a antivirus nic
nenalezne.
Polymorfní techniky
Polymorfismus virů ukázal jednoznačnou slabinu starších antivirů, které hledali
pouze sekvence, jenž odpovídaly jednotlivým virů. Polymorfní viry dokáží to, že
každá jejich kopie vypadá úplně jinak, ačkoliv funkčně je s původním vzorem
shodná. Tím zcela zamezí použití skenerů hledajících konkrétní řetězce. Proto
je dnes dáván důraz na silnou heuristickou analýzu, která jediná má proti
polymorfismu šanci.
Kódování
Dalším znakem propracovaných virů je kódování sebe sama. Dobře provedené
kódování je velmi dobrá obrana proti heuristice, protože silně omezuje či
znemožňuje simulaci kódu, což je princip heuristiky. Virus má však v sobě
zakomponovány mechanizmy, s jejichž pomocí si zajistí rozkódování sebe sama,
když provádí svou nekalou činnost.
Makroviry
Fenoménem dneška jsou makroviry. Těžko říci, zda si jeden z jejich rodičů firma
Microsoft neuvědomila, jak silnou zbraň do rukou tvůrců virů dává, když do MS
Wordu 95 a Excelu 95 zavedla samospouštěcí se makra uvnitř dokumentů, ale
výsledek byl skutečné drastický. Když už se zdálo, že se virům s nástupem
složitějších operačních systémů dost podstatně přistřihnou křidélka, objevil se
fenomén, který je dnes zřejmě největším nebezpečím v této oblasti.
Hlavním nebezpečím makrovirů je hlavně velmi snadná přenositelnost, neboť v
textech většina uživatelů virové nebezpečí vůbec nečeká. Po nakažení stadardní
šablony dokumentů se zavirovaným stává každý dokument, který je na
inkriminovaném počítači vytvořen a virus se tak šíří dál. Bohužel se toto
nebezpečí dnes netýká jen produktů od Microsoftu, neboť i jiní producenti
kancelářského softwaru neopoměli samospouštějící makra do svých programů
implementovat, u Microsoftích produktů je však šance nákazy nejvyšší.
Dalším problémem spojeným s makroviry je jejich multiplatformita. Vzhledem k
tomu, že makroviry pracují na mnohem vyšší než systémové úrovni, jsou vázány až
na uživatelský software. Proto může makrovir fugovat na stejném programu ve
verzi pro PC i ve verzi pro Macintosh, samozřejmě pokud je v softwaru zachována
vnitřní strukturu maker. Dalším stupněm nebezpečnosti budou bezesporu viry na
platformě Java, neboť i v koncepci Javy je důležitou vlastností kompatibilita s
různými systémy a procesory.
Obrana proti antivirům
Některé viry si zajišťují svojí obranu před běžnými antiviry například tím, že
antivirové programy vůbec nenapadají. Důvodem je častá samokontrola
antivirového softwaru proti vlastní nákaze, čímž by byl virus lehce odhalen.
8 0200 / or









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.