Počítačové viry známé a neznámé

1. 2. 2006

Sdílet

Síťoví červi patří k těm škodlivým kódům, jejichž existence do značné míryovlivnila celou virovou a antivirovou scénu. Jejich hlavní devizou je především obrovská rychlost ší

Síťoví červi patří k těm škodlivým kódům, jejichž existence do značné míry
ovlivnila celou virovou a antivirovou scénu. Jejich hlavní devizou je především

obrovská rychlost šíření, které mohou dosáhnout.



Síťový červ je definován jako škodlivý kód, který ke svému šíření nepotřebuje

cizopasit na jiné aplikaci, není odkázán na uživatele, nepoužívá prostředky

jiných programů, šíří se naprosto automaticky a samostatně přímo po síti,

většinou pomocí bezpečnostních děr.

Dnešní typický síťový červ tedy neinfikuje žádný program, nepotřebuje, aby

někdo na něco klikal či cokoliv spouštěl, obejde se bez služeb dalších aplikací

(např. e-mailového klienta) a šíří se přímo prostřednictvím přenosových

protokolů TCP/UDP. K průniku do počítače většinou využívá krátce známou

bezpečnostní slabinu operačního systému nebo aplikace. Díky tomu dokáže po

internetu oběhnout celý svět během několika desítek minut. Např. e-mailoví

červi, kteří jsou závislí na „pomoci“ uživatelů, k tomu potřebují několik hodin.



O co mu jde a jak to dělá?

Jednou z priorit standardního síťového červa je dosažení co největší rychlosti

rozšíření. Proč tomu tak je si můžeme ukázat na níže uvedeném grafu, který

zachycuje průběh epidemie červa CodeRed. Zde je vidět, že první fáze šíření

trvá poměrně dlouhou dobu, ale celkový počet infikovaných počítačů je ještě

poměrně nízký. Jakmile ale síťový červ získá určitý „prahový“ počet

infikovaných počítačů, dokáže rychlost svého šíření rapidně zvýšit. Pokud tedy

antivirové firmy dokáží včas zareagovat a dostatečně brzy v průběhu této první

fáze vydají antivirové aktualizace, případně jiné nástroje pro eliminaci

konkrétního červa, pravděpodobně epidemii zažehnají nebo alespoň výrazně omezí.

Pokud tedy chce být síťový červ úspěšný a chce se rozšířit co nejrychleji na co

nejvíce počítačů v internetu, musí tuto první fázi překonat rychleji, tedy

dříve, než si jeho počínání všimnou antiviroví odborníci.

Proto využívají síťoví červi kromě metod pro pseudonáhodné generování IP adres

dalších potencionálně infikovatelných počítačů různé metody, s jejichž pomocí

se snaží první fázi co nejvíce urychlit. Jedním ze způsobů je využití tzv.

„hitlistu“ – předem připraveného seznamu zranitelných počítačů s kvalitní

linkou do internetu. Tvůrce červa „jednoduše“ najde něco mezi deseti až

padesáti tisíci počítači, které obsahují určitou bezpečnostní díru a disponují

dostatečně rychlým připojením. Potom tento seznam vloží do svého výtvoru a

vypustí ho do internetu. Vždy, když takový červ úspěšně infikuje další počítač,

rozdělí seznam na polovinu. Jednu část si ponechá a druhou svěří svému

potomkovi. Nevýhodou tohoto způsobu je, že se snižováním počtu neinfikovaných

počítačů klesá i rychlost šíření infekce. Malým uklidněním pro nás může být, že

masivní skenování počítačů v internetu, jenž je k vytvoření hitlistu nutné,

pravděpodobně vzbudí odpovídající pozornost, která může na nadcházející útok

upozornit.

Jinou používanou metodou je tzv. permutační skenování. V tomto případě má červ

k dispozici náhodnou posloupnost všech 232 IP adres, které je možné v internetu

(definovaném IPv4) nalézt. Všechny instance červa tedy mají k dispozici určitý

seznam. Ten není třeba přenášet celý, ale pro jeho generování stačí jednoduchý

algoritmus, který mají všechny kopie červa s sebou. Adresy, na něž bude

konkrétní kopie červa útočit, si spočítá tak, že v posloupnosti zvolí jeden

výchozí bod a podle určitého rozsahu určí seznam. Pokud následně při svém

šíření červ najde počítač infikovaný svoji další kopií, pozná, že tento rozsah

adres už je obsazen a jde jinam. Určí jiný výchozí bod, vytvoří si další seznam

a šíří se v oblastech, kde předpokládá menší konkurenci. Celý mechanismus se

tedy chová podobně jako generování náhodných IP adres, ale díky značnému

omezení opakovaných infekcí je mnohem rychlejší.

Kombinací výše uvedených a případně také dalších metod (např. topologické

skenování nebo skenování podsítí) vznikají tzv. superrychlí červi (Flash Worm,

Warhol Worm apod. studie věnované této problematice najdete na internetu),

které jsou teoreticky schopné infikovat celý internet za méně než jednu minutu.

Jedním z předpokladů takového superrychlého červa je vytvoření hitlistu pro

celý internet, kdy by jen přípravné skenování zabralo tři až šedesát čtyři

hodin, v závislosti na propustnosti linek.



Jak šel čas

Za prvního historicky známého síťového červa můžeme považovat tzv. Morrisova

červa z listopadu 1988. Robert Morris, tehdejší postgraduální student

Cornellovy univerzity, chtěl údajně na unixových počítačích univerzitní sítě

vyzkoušet šíření svého speciálního virového kódu. Pokus se mu ale záhy vymknul

z rukou. Výsledkem bylo infikování více než šesti tisíc počítačů, což tehdy

představovalo asi osm procent internetu. Infekce se nevyhnula řadě amerických

univerzit, ani např. výzkumnému centru NASA. Morrisův červ zneužíval ke svému

šíření chyby, které se vyskytovaly v operačních systémech Unix pro VAX a Sun

Microsystems. „Úspěch“ tohoto červa pocítil na vlastní kůži i jeho samotný

tvůrce. Byl vyloučen z univerzity, odsouzen ke tříletému podmíněnému trestu,

pokutě 10 tisíc dolarů a musel věnovat mnoho hodin veřejně prospěšným pracím.

Dnes působí jako profesor počítačových věd na Massachusetts Institute of

Technology (MIT).

Dalo by se říci, že síťoví červi se potom takřka na třináct let odmlčeli, aby

se s o to větším důrazem vrátili. O první významnou „novodobou“ epidemii se

zasloužili síťoví červi CodeRed v červenci roku 2001. CodeRed zneužívá

bezpečnostní díru v ISAPI modulu MS IIS serveru. V době, kdy se objevila první

z jeho variant, byla tato bezpečnostní díra známa už asi měsíc a stejně tak

dlouho byla k dispozici i záplata. Přesto se CodeRedu povedlo během několika

málo dnů infikovat stovky tisíc serverů po celém světě. Epidemie se také

negativně odrazila na funkčnosti internetu jako celku. Jednou z funkcí červa

byl časově omezený DoS útok na doménu www.whitehouse.gov. Díky tomu, že

„zacílil“ přímo na konkrétní IP adresu webového serveru, měli administrátoři

při odvracení útoku poměrně snadnou práci – stačilo ji změnit a bylo vymalováno.

Dalším zajímavým síťovým červem byl Slammer, jehož výskyt jsme zaznamenali v

lednu 2003. Zneužíval bezpečnostní díru v Microsoft SQL Serveru nebo komponentě

MSDE. Pokud by byla vyhlášena soutěž o nejmenší škodlivý kód, Slammer by zcela

jistě patřil k horkým favoritům. Je totiž extrémně krátký – zabírá pouze 376

bytů, protože využívá přímo vybrané systémové funkce. Díky tomu se celý vešel

do jediného UDP síťového paketu a dosahoval extrémně rychlého šíření. Podobně

jako první verze CodeRedu se také nezapisoval na disk, ale existoval pouze ve

formě paketů nebo běžícího procesu na infikovaných počítačích. Svým šířením

Slammer dokázal zahlcovat sítě a způsobit její četné výpadky, které tehdy na

vlastní kůži pocítila řada lidí. Vzpomeňme třeba problémy způsobené infekcí

počítačového systému v jaderné elektrárně americké společnosti David Beese, kde

se Slammer dostal až „na dohled“ aktivní zóně jaderného reaktoru.

Mnozí z nás možná ještě mají v živé paměti epidemie červů Blaster a Sasser.

Tyto epidemie měly svého času citelné dopady na řadu systémů používaných v

běžném životě (výpadky bankomatů, dopravních systémů železnic atd.). Blaster se

šířil v srpnu 2003. Zneužíval k tomu v té době několik týdnů známou chybu v RPC

komponentě operačních systémů Windows. Svými vynucenými restarty způsoboval

nemalé problémy uživatelům všech nezáplatovaných počítačů. Jeho 6 kB dlouhý kód

obsahoval mimo jiné i velice efektivní rutinu pro generování IP adres, na nichž

hledal další potenciální oběti. Mediální publicitu si vysloužil plánovaným

distribuovaným DoS útokem na server windowsupdate.com, který ve stanoveném čase

podnikaly všechny jeho kopie. V závěsu za ním následoval „hodný“ síťový červ

Welchi, který se snažil Blastera likvidovat a instalovat na počítače příslušné

bezpečnostní záplaty. Svým šířením, které bylo díky využití stejných metod

podobně „úspěšné“, ale ještě více zahltil (Blasterem už tak zahlcené) sítě a

způsobil tak řadu dalších incidentů. Červ bohužel zůstává červem bez ohledu na

to, nakolik jsou jeho úmysly šlechetné…

Necelý rok poté udeřil v prvním květnovém dni roku 2004 síťový červ s podobnými

projevy (restarty systému). Sasser se šířil prostřednictvím bezpečnostní díry

ve službě LSASS, která se využívá u operačních systémů Windows 2000 a XP.

Sedmnáct dní, které v době vypuštění Sasseru uplynuly od vydání příslušné

bezpečnostní záplaty, byla asi příliš krátká doba na to, aby organizace stihly

záplatovat většinu svých počítačů. Problémy spojené s epidemií Sasseru tehdy

řešily např. tři velké nejmenované světové banky. Zastaven byl také provoz na

železnici australské společností RailCorp (což určitě nepotěšilo asi 300 000

cestujících), infekce asi pěti tisíc počítačů ve dvou švédských krajských

nemocnicích výrazně omezila jejich fungování a vyřadila z provozu rentgenová

zařízení. Ušetřeny dokonce nezůstaly ani mnohé počítače v bruselském sídle

Evropské komise, pobřežní stráže Velké Británie a mnoha dalších organizací po

celém světě.

Sasser byl do sítě sítí vypuštěn v sobotu brzy ráno. Hned následující pátek

německá policie zatkla mladého programátora Svena Jaschena, který se posléze

přiznal nejen k autorství síťových červů Sasser, ale také k vytvoření některých

e-mailových červů z rodiny Netsky. Jako hlavní motiv svého počínání uvedl boj

proti spammerům, stojícím za červy Bagle a Mydoom. Posléze byl odsouzen k

podmíněnému trestu 21 měsíců s tříletou podmínkou a k třiceti hodinám veřejně

prospěšných prací. K jeho dopadení bezesporu přispěla také odměna ve výši pěti

milionů dolarů, věnovaná společností Microsoft. Podle dostupných odhadů červ

Sasser napadl téměř milion počítačů po celém světě. Celková škoda uváděná při

soudním jednání činila 130 tisíc euro a náklady na dopadení tvůrce červa se

odhadují na 7 milionů eur. Je tedy vidět, že škodlivé kódy dokáží způsobit

nemalé škody.



Bezpečnostní díry – snadný cíl

Situace, kdy se virus využívající určitého bezpečnostního nedostatku objeví

pouhých několik dní po jeho zveřejnění, se v poslední době objevuje stále

častěji. Dokladem je i srpnová epidemie několika síťových červů, zneužívajících

bezpečnostní díru ve službě Microsoft Plug-and-Play ve Windows 2000, která mimo

jiné zasáhla také mediální agenturu CNN. Za pozornost stojí také to, že většina

těchto červů patřila do skupiny tzv. BOTů, což jsou škodlivé kódy, které

umožňují následné vzdálené zneužití infikovaných počítačů např. pro šíření

spamu nebo distribuci nelegálního obsahu. Jednotlivé exempláře z různých

virových rodin se navíc vůči sobě navzájem chovaly značně nepřátelsky. Třeba

některé verze IRCBOT likvidovaly červy ZOTOB verze A a B. Stejně tak BOZORI

verze A a B takříkajíc „šly po krku“ červům RBOT a SDBOT. Odborníci tento stav

komentovali jako „válku BOTů“ („botwar“). Pozitivní je, že stejně rychle, jak

zmínění červi zneužili díru v PnP službě, byli odhaleni a zadržení jejich

autoři.

Jednoznačně ale můžeme říci, že trend zkracování času mezi zveřejněním

bezpečnostního nedostatku a objevením škodlivého kódu, který ho zneužívá, je

zjevný (viz tabulku).



Závěrem

Síťoví červi ještě neřekli poslední slovo. Na rozdíl od e-mailových červů totiž

zdaleka nevyčerpali svůj škodlivý potenciál. V budoucnu se tedy s nimi budeme

ještě nejednou potýkat.



DoS útok

Denial of Service útok probíhá tak, že útočník zahlcuje cílový systém velkým

množstvím nesmyslných požadavků. Snaží se tak obstavit jeho infrastrukturu a

znepřístupnit ho. Distribuovaný DoS se provádí prostřednictvím celé sítě

počítačů (zpravidla infikovaných např. BOTem), díky čemuž má útok daleko větší

razanci.



TCP protokol

Transmission Control Protocol představuje jeden ze základních komunikačních

protokolů internetu, díky kterému se spolu mohou spojit dva počítače a přenášet

data. Zaručuje mimo jiné i to, že se přenášená data neztratí a budou správně

doručena.



UDP protokol

User Datagram Protocol je tzv. nespolehlivý protokol. Na rozdíl od TCP

nezaručuje spolehlivost doručení dat apod. Může se využívat např. k různým

servisním úkonům nebo pro DNS, přenos hlasu, videa, on-line hry apod.