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.