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

1. 2. 2006

Sdílet

3. díl: Síťový červ zatraceně rychlý chlapík Síťoví červi patří k těm škodlivým kódům, jejichž exis...


3. díl: Síťový červ zatraceně rychlý chlapík


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.
íť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. 6 0028/OK o

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.

JménoZveřejnění Objevení Kolik dní
červadíryčervauplynulo
CodeRed18. 6. 200118. 7. 200130
Slammer24. 7. 200225. 1. 2003cca 500
Blaster18. 7. 200311. 8. 200334
Sasser13. 4. 200430. 4. 200427
Zotob9. 8. 200514. 8. 20055