Historie internetových červů

23. 8. 2005

Sdílet

Internetoví červi jsou velice zvláštní a specifická kategorie škodlivých kódů. A to z mnoha důvodů – mimo jiné proto, že každý z nich působí větší či ještě větší kalamitu, protože jejich vytvoření je věcí velmi obtížnou a nezvládne ji každý. Navíc jsou internetoví červi sebereplikující: nepotřebují pro své šíření nic a nikoho – snad jen kromě bezpečnostních nedostatků.



Pohled do (pre)historie

Významný milník na poli internetových červů se udál v roce 1988, nicméně už před

tímto datem došlo k několika zaznamenání hodným událostem.

Už v roce 1982 v laboratořích jisté nadnárodní společnosti (kterou nebudeme

jmenovat, abychom ji byť jen nepřímo nenařkli z vytváření škodlivých kódů)

studovali programátoři koncept vzdáleně připomínající dnešní červy. Šlo o

programový kód, který se měl automaticky šířit po počítačích podle předem

definovaného matematického modelu a vykonávat nějakou užitečnou činnost – třeba

zobrazit vzkaz na monitoru každého počítače. Celkem bylo rozpracováno pět

různých programů tohoto typu, ale práce na nich byly záhy zastaveny. Výzkumníci

se obávali poměrně pravděpodobné možnosti, že by se jim kódy mohly vymknout z

ruky a způsobit značné problémy…

V roce 1985 (konkrétně 27. října) pak zkolabovala síť ARPANET (předchůdce

dnešního internetu) poté, co se kvůli chybě v programovém kódu začala

nekontrolovaně šířit jistá stavová zpráva. Samozřejmě že nešlo o škodlivý kód v

pravém slova smyslu (vytvořený se zlým úmyslem – ten se nepodařilo prokázat),

nicméně jakousi předzvěst dnešních problémů bychom zde vidět mohli.





Legendární

Morrisův Worm

Druhý listopad roku 1988 se zapsal nesmazatelným způsobem do dějin informačních

technologií, bohužel v negativním slova smyslu. V tento den totiž vypustil

(později tvrdil, že nedopatřením) do tehdejší akademické sítě svůj program

pojmenovaný Worm (červ – tím de facto dal název celé kategorii podobných

škodlivých kódů) Robert T. Morris, třiadvacetiletý student na Cornell

University.

Program měl pouhopouhých 99 řádků kódu, ale navždy změnil svět. Dokázal

napadnout zhruba šest tisíc počítačů. Podle dnešních měřítek je to samozřejmě

směšně málo, ale musíme si uvědomit, že tehdy šlo o plných osm procent strojů

připojených do sítě! Z hledis-

ka procentního zavirování všech připojených počítačů, Worm už nikdy nenašel

konkurenci. A jen doufejme, že ani nenajde…

Přestože Worm fyzicky nic nepoškozoval, vyčíslil americký General Accounting

Office jím způsobenou škodu v rozmezí sto tisíc až deset miliónů dolarů v

důsledku zamezení přístupu k internetu pro mnoho uživatelů po určitý čas. Robert

Morris dostal za svůj čin tříletou podmínku, několik finančních pokut v celkové

výši 10 050 USD a samozřejmě byl vyloučen ze školy.



Mezidobí

Po Wormu na dlouhé roky aktivita na poli internetových červů utichla. Neutichla

tedy úplně, objevili se různí další červi. Nicméně i tak můžeme údobí mezi

listopadem 1988 a červnem 2001 považovat za dobu klidu.

Už v říjnu 1989 se šířil WANK (Worms Against Nuclear Killers), který napadal

systémy SPAN VAX/VMS. Šířil se prostřednictvím protokolu DECnet, nikoliv TCP/IP.

Kromě svého šíření nesl WANK poprvé v historii i „náklad“: v napadených

systémech vytvářel vážné bezpečnostní nedostatky, které pak mohl znalý útočník

(notifikovaný e-mailem) zneužít. Navíc v systému napadal všechny soubory COM,

takže ty při své aktivaci opakovaně otevíraly výše uvedené bezpečnostní

nedostatky (pokud se je někdo mezitím pokusil odstranit).

V lednu 2001 se zase světem šířil červ Ramen, který napadal wu-ftp démon na

systémech RedHat Linux 6.2 a 7.0. Hledal nezáplatované rpc.statd, wuftpd a

LPRng. Snažil se modifikovat soubory index.html, čímž měnil vzhled hostovaných

www stránek. Ramen byl vícekomponentový červ, který se skládal z 26 souborů.

Další červ Lion zneužíval bezpečnostní nedostatek TSIG v Linuxu. To se psal

březen roku 2001. Na napadeném počítači vytvářel zadní vrátka (otevíral je pro

přístup nepovolaných osob) tím, že přepisoval některé kritické soubory.

Bylo to ale jen ticho před bouří, která měla teprve přijít…





A přišel CodeRed…

18. června 2001 byla zveřejněna první zpráva o možnosti buffer-overflow v IIS

(Internet Information Serveru) od Microsoftu. Přesně za dvanáct dní pak byla

touto společností zveřejněna na www stránkách záplata, odstraňující tuto chybu.

Přesto 12. července 2001 přišel útok, který ji dokázal ve velké míře zneužít.

Červ se jmenoval CodeRed. Jeho první verze nebyla příliš nebezpečná, protože měl

nešťastně navržený mechanismus šíření. Ten začínal vždy od stejné IP adresy a

pokračoval podle stejného algoritmu. Jinými slovy: z každého napadeného počítače

se CodeRed pokoušel šířit stejným směrem, takže se všechny stroje v podstatě

překrývaly a z drtivé většiny se sveřepě soustředily na útoky na již napadené

stroje.

Nicméně 19. července 2001 se objevila druhé verze červa, která tuto „chybu“

odstraňovala. CodeRed už generoval IP adresu skutečně náhodně. Díky tomuto

vylepšenému mechanismu u týden starého červa (!) bylo celosvětově napadeno za

méně než 14 hodin 359 000 počítačů. A to navzdory faktu, že způsob šíření měl do

optimálního daleko a že z každého infikovaného serveru se pokoušel rozšířit

pouze na 99 dalších strojů. Způsobené škody byly přesto vyčísleny na 2,6 miliard

dolarů.

CodeRed byl vytvořen proto, aby podnikal útok DDoS (Distributed Denial of

Service). Mezi 20. a 27. dnem každého měsíce se pokoušel z napadených serverů

vysílat velké množství požadavků vstříc stránce www.whitehouse.gov (oficiální

doména americké vlády – pozor, nezaměňovat s doménou www.whitehouse.com, což je

pornografická stránka!). A vždy od 1. do 19. každého měsíce se pokouší rozšířit

na co nejvíce serverů. Pro úplnost: po

28. dni každého měsíce je CodeRed nečinný – v infikovaných strojích pouze

zůstává, ale už nevykonává žádnou činnost.

CodeRed ukázal na neuvěřitelný nepořádek ve světě počítačových serverů (pomiňme

nyní opakovaná varování před příchodem druhé nebezpečné verze). Třeba útoky DDoS

vůči inkriminované IP adrese probíhaly neustále (nikoliv pouze mezi stanoveným

20. a 27. každého měsíce), a to díky špatně nastaveným datům na napadených

serverech po celém světě. Je pak zcela pochopitelné, že po takovýchto správcích

nikdo záplatování nemůže chtít ani v nejšílenějším snu…

Malé upozornění: vzhledem k tomu, že každá webová adresa má svou unikátní IP

adresu, stačilo správcům www.whitehouse.gov tuto hodnotu změnit a jejich server

byl před účinky kódu CodeRed v bezpečí. Ten se pak pokouší „útočit“ na

neexistující adresu. Záměrně používáme čas přítomný, protože ještě dnes (více

než čtyři roky po prvním výskytu CodeRedu!) se tento červ stále šíří! To

znamená, že stále existují servery, na nichž se administrátoři neobtěžovali

provést záplatování! Dá se předpokládat, že se červ bude šířit ještě mnoho let:

až do okamžiku, kdy příslušné servery morálně i fyzicky zastarají a bude nutné

je přeinstalovat novým softwarem nebo prostě vyměnit… Optimistické odhady hovoří

o tom, že se tak stane v roce 2008. Až v tom okamžiku CodeRed definitivně vymře.



Domácí PC v ohrožení

Všechny výše uvedené incidenty měly jeden společný prvek: neohrožovaly uživatele

domácích počítačů, klidný spánek rušily pouze správcům serverů (i když evidentně

nikoliv všech). Nejinak tomu bylo v případě červa Slapper, který se objevil v

září 2002 – ale situace už se měla brzy změnit.

Začněme ale Slapperem. Šířil se na počítačích s operačním systémem Linux s

běžícím populárním webovým serverem Apache, kde zneužíval bezpečnostní díru,

která byla objevena v knihovnách OpenSSL (ve verzích starších než 0.9.6e a

0.9.7-beta). Slapper byl velmi podobný internetovému červu Scalper, který se

pokusil o šíření počátkem roku 2002, avšak bez valného úspěchu.

Slapper v napadeném systému otevírá zadní vrátka, která jsou schopná vykonávat

celou řadu příkazů. Ale co je zajímavější, z napadených počítačů vytvářel P2P

(peer-to-peer) síť, která mohla být později teoreticky využita k dalším

škodlivým činnostem jako např. DDoS útokům. Slapper napadl počítače ve více než

sto zemích světa, přičemž jím vytvořená síť čítala dvacet tisíc počítačů.

Struktura sítě přitom byla taková, že podle přesně stanovené hierarchie stačilo

zadat příkaz jednomu jedinému počítači a systémem „letadlo“ se jej vzápětí měly

dozvědět i ostatní infikované stroje.

Skutečnou revoluci znamenal internetový červ Opasoft (někdy též označovaný

zkráceně jako Opas), který byl poprvé zaregistrovaný v říjnu 2002. Opasoft totiž

napadal stroje s operačním systémem Win 9×, nikoliv platformu Win NT. Jinými

slovy: už nikoliv pouze servery, ale řadové lokální stanice nebo domácí

počítače. K vyhledávání počítačů, které by mohl „navštívit“, Opasoft skenoval

síť pomocí portu 137 (NETBIOS Name Service). Zaměřil se přitom na následující:

Nejprve kontroluje síť, ve které „sedí“ současný (infikovaný) počítač (IP adresa

aaa.bbb.

ccc.???, kde místo „???“ postupně dosazuje čísla od 0 do 255).

Následně se zaměřuje na dvojici sousedních sítí (aaa.bbb.ccc+1.???,

aaa.bbb.ccc-1.???).

Poté ještě zkouší vyhledat další náhodně vybrané sítě pomocí generátoru čísel

(kromě několika, které jsou v programovém kódu červa pro skenování „zakázané“).

Pokud se z některé IP adresy získá odpověď (tedy na této adrese se nachází

reálný a fungující počítač), Opasoft okamžitě začne skenovat i dvě sousední sítě

k té, v níž se dotyčný stroj nachází. Jakmile obdrží odpověď (tedy na dotyčné

adrese byl nalezen komunikující počítač), Opasoft zjišťuje, zda má tento stroj

aktivovanou službu „File and Print Sharing“ (sdílení souborů a tisku). Pokud

ano, Opasoft zahajuje svou infekční rutinu. Na dotyčnou IP adresu posílá

specifický SMB paket za použití portu 139 (NETBIOS Session Service).

Výsledkem akce je, že při příštím (re)startu Windows přebírá kontrolu kopie

červa. Přitom dostatečnou ochranou nemusí být ani zabezpečení sdílení počítačů

heslem. Opasoft nejprve provede útok hrubou silou (vyzkouší všechny

jednosymbolové znaky). Pokud ani teď neuspěje (heslo je silnější než v případě

jednoho znaku), červ se nevzdává a díky bezpečnostní chybě „Share Level Password

Vulnerability“ je schopen se na disk dostat.





Rok (mnoha) červů

Bez větší nadsázky lze rok 2003 označit jako „rok červů“. Přispěly k tomu hned

tři kalamity obřích rozměrů a několik menších incidentů.

Prvním „velkým“ červem se v roce 2003 stal Slammer. Zároveň se stal nejrychleji

se šířícím kódem v historii počítačů. Během pouhopouhých deseti minut dokázal

napadnout devadesát procent všech napadnutelných počítačů – těch bylo asi 75

000. V průběhu první minuty šíření přitom dokázal zdvojnásobit počet napadených

počítačů za 8,5 sekundy! (Pro srovnání: populace CodeRedu se zdvojnásobila každý

37 minut!) Tajemství rychlosti Slammeru spočívalo především v jeho malé

velikosti (376 znaků) a také v tom, že se šířil pomocí paketů UDP (ty jsou

nesrovnatelně rychlejší než TCP-SY).

Slammer (alias Sapphire nebo také Helkern) je červ, který se šíří po serverech

Windows 2000 s nezáplatovanými Microsoft SQL servery. Objevil se v sobotu 25.

ledna 2003 a jeho šíření způsobilo na internetu velké problémy.

Červ při svém útoku generoval masivní množství UDP paketů, které zpomalily nebo

zcela zahltily některé servery a směrovače. V jednu chvíli bylo dokonce

nepřístupných celkem pět ze třinácti kořenových jmenných serverů internetu.

Slammer neinfikuje standardní pracovní stanice, ale napadá pouze počítače s

instalovaným Microsoft SQL Serverem 2000 nebo jeho „skromnější verzí“ MSDE 2000.

Šíří se pomocí UDP portu 1434, přičemž využívá bezpečnostní díru v MS SQL

serveru. Nezáplatovaný SQL server se snaží ovládnout tak, že způsobí přetečení

zásobníku (buffer overflow), což umožní spuštění jeho procesu v paměti serveru.

Jakmile se dostane do systému, spustí nekonečnou programovou smyčku, která se

pokouší o napadení dalších serverů.

Kromě svého šíření a generování masivního internetového provozu naštěstí Slammer



neobsahoval žádné další škodlivé rutiny. Přesto způsobil značné problémy: např.

s dostupností třinácti tisíc bankomatů Bank of America, kvůli selhání

rezervačního systému něko-

lika dopravních společností byly dokonce rušeny letecké spoje! Jako největší

problém je

ale uváděn fakt, že pronikl do počítačové sítě jaderné elektrárny Davis-Besse v

Ohiu (USA), kde na několik hodin vyřadil z provozu dva systémy, podílející se na

monitorování reak-

toru!

Co se stalo v této elektrárně? Nejprve červ zahltil síť natolik, že přestalo

fungovat zobrazování na panelu SPDS (Safety Parameter Display System). SPDS

monitoruje většinu klíčových indikátorů elektrárny (např. chladicí systémy,

klíčové teplotní senzory, vnější senzory radiace). Mnoho z těchto parametrů musí

být pečlivě sledováno, i když jaderný reaktor není připojený do sítě. O 23 minut

později zkolaboval další (ne už tak kritický) monitorovací systém PPC (Plant

Process Computer). SPDS byl zprovozněn po čtyřech hodinách a padesáti minutách a

PPC po více než šesti hodinách.

Incident naštěstí neměl závažné důsledky, protože záložní systém zůstal nedotčen

a navíc byl reaktor v té době odstaven. Každopádně je ale z této situace zřejmé,

že za určitých podmínek mohou škodlivé kódy klíčové systémy ovlivnit.

A jak je možné, že do počítačové sítě tak klíčového objektu, jakým jaderná

elektrárna bezesporu je, pronikl škodlivý kód (na který už ostatně byla známá

záplata)? Odpověď je až smutně jednoduchá: díky hrubé nedbalosti. Do lokální

sítě si přinesl nezabezpečený počítač zaměstnanec subdodavatele – a neštěstí

bylo hotovo. Inu, v době nejrůznějších bez-

drátových připojení k lokální síti i internetu je stále těžší pohyb počítačů a

jejich stav uhlídat…

V srpnu 2003 se objevil další internetový červ Blaster (alias MSBlast, Poza nebo

Lovsan), který zneužívá bezpečnostní chybu DCOM/

/RPC, objevenou v polovině července. Po prvních nesmělých pokusech o zneužití

této bezpečnostní chyby červem Autorooter se v případě Blasteru jednalo o velmi

reálné nebezpečí. Šířil se pouze po systémech s instalovanými Windows 2000 a XP,

kterých se bezpečnostní chyba – „Buffer Overrun In RPC Inter-

face“ (MS03–026) týká.

Blaster dokáže skenovat až dvacet dalších počítačů najednou. Pokouší se připojit

na port 135 a vytvořit spojení. Jeho nejviditelnějším projevem byly časté

vynucené restarty infikovaného počítače. Vzhledem k použité technologii může

červ napadnout pouze stroje s Windows 2000 a Windows XP. Blaster obsahuje

škodlivou rutinu, která má za úkol od 16. srpna 2003 v intervalech 20 milisekund

odesílat pakety o velikosti 40 bajtů z každé infikované stanice na

www.windowsupdate.com. Vzhledem k tomu, že napadených stanic jsou statisíce,

takový DDoS útok nemohl příslušný server ustát, a proto jej společnost Microsoft

zcela vyřadila z provozu. Aktualizace byly přesunuty na

windowsupdate.microsoft.com (ostatně byly zde i dříve a doména

www.windowsupdate.com sloužila jen jako „přestupní“ stanice). Rozdíl mezi

CodeRedem (viz výše) a Blasterem spočíval v tom, že prvně jmenovaný napadal IP

adresu, druhý přímo doménové jméno. A tak zatímco v případě CodeRedu stačilo

změnit IP adresu a web mohl nerušeně fungovat dále, po útoku Blasteru byla

obrana výrazně složitější a doména byla dokonce na nějaký čas vyřazena z

provozu.

Jako reakci na Blaster kdosi vytvořil červa Welchi, který využíval stejnou

bezpečnostní díru, ale prvně jmenovaného červa ze systému odstraňoval a v

některých případech dokonce byl schopen do napadeného počítače instalovat

příslušnou záplatu. Užitečný program? Na první pohled ano. Ale jinak šlo o

škodlivý kód, pronikající do počítačových systémů bez vědomí jejich uživatelů. A

v konečném důsledku také způsobil škody: došlo k selhání registračního systému

letenek Air Canada a také k „sestřelení“ železniční signalizace společnosti CSX

Corp. (s následným zpožděním vlaků).





2004: hrozba neustává

Ani v roce 2004 nám nebylo dopřáno si od internetových červů odpočinout. Už v

lednu se totiž začala připravovat živná půda pro příchod červa DoomJuice, který

byl poprvé zaznamenán 6. února.

Od 26. ledna 2004 se totiž světem šířil

e-mailový červ MyDoom. Ten způsobil kalamitu nevídaných rozměrů, neboť z

hlediska počtu infikovaných e-mailů se mu žádný jiný obdobný kód nemohl rovnat.

(MyDoom ze všech X nalezených e-mailových kontaktů v infikovaném počítači

vytvořil X2 e-mailových adres tak, že stávající adresy rozdělil na část

identifikační a část doménovou a následně kombinací každé s každou vyrobil

matici.) Antivirové firmy odhadovaly, že celosvětově bylo přímo napadeno kolem

jednoho miliónu počítačů.

To ale pro šíření internetového červa nebylo podstatné. Podstatné bylo, že

e-mailový červ MyDoom na infikované počítače instaloval rutinu zadních vrátek –

otevíral TCP port 3127. Když se tedy pak internetový červ začal šířit, pokoušel

se do počítačů dostat právě tak, že náhodně skenoval IP adresy a zkoumal, zda

tyto porty nejsou otevřené. Pokud nějaký nalezl, nakopíroval se do systémového

adresáře Windows jako intrenat.exe a zapsal se do registru.

Vraťme se ale zpět k červu DoomJuice (někdy též nepřesně MyDoom.C), který se

počínaje 8. únorem 2004 pokoušel provést DDoS útok vůči serveru

www.microsoft.com. Z každého zasaženého počítače posílal donekonečna 16 až 96

paralelních požadavků na zobrazení hlavní stránky výše zmíněného serveru.

Co je zajímavé, DoomJuice obsahoval také rutinu, která do rootových adresářů

všech disků infikovaných počítačů a též do adresáře s uživatelským profilem

umisťovala soubor sync-src-1.00.tbz. Šlo o komprimovaný zdrojový kód e-mailového

červa MyDoom. Proč? Podle některých komentátorů se tak chtěl autor MyDoomu

chránit v případě vyšetřování. Do tohoto okamžiku byl totiž jediným člověkem na

světě, který měl zdrojový kód k dispozici. Po incidentu DoomJuice ale takových

osob byly na celém světě tisíce – a přítomnost zdrojového kódu v počítači

nemohla být považována za jednoznačný důkaz o vině.

Devatenáctého března 2004 pak přišel červ Witty, který byl zajímavý tím, že jeho

útok byl připravený jako žádný jiný v historii. Mnozí odborníci dokonce hovořili

o tom, že se jedná o praktické naplnění vize tzv. Warholova červa – viz dále.

Witty napadal počítače s chybou v bezpečnostním softwaru BlackIce, a to s chybu,

jejíž existence byla zveřejněna o pouhopouhý den dříve! Šlo o nejrychleji

zneužitou chybu v historii internetových červů.

Witty se začal šířit na sto deseti počítačích, během třiceti sekund byl už na

celkem 160 strojích. Za 45 minut dokázal napadnout 99 procent napadnutelných

počítačů na světě! Ironií osudu je software BlackIce určený k ochraně počítačů,

takže postiženi byli lidé, kterým bezpečnost nebyla lhostejná a kteří pro ni

něco aktivně udělali…

Největší infekce roku 2004 začala první květnový den. Tehdy se objevil červ

Sasser, který zneužíval chybu popsanou v Microsoft Security Bulletin MS04–11:

buffer overrun v LSASS (Local Security Authority Subsystem Service). Tento

nedostatek se týkal počítačů, které pracovaly s operačním systémem Windows 2000

nebo XP (Windows Me a NT nebyly červem Sasser ohrožené) a které nejsou (jako

obvykle) záplatované.

Neklamnou známkou infekce počítače je přítomnost souboru win.log v rootovém

adresáři disku C: a opakované padání služby LSASS.

EXE vedoucí k restartu počítače. Podobně se projevoval i červ Blaster (srpen

2003), který si vynucoval častý restart, což je v důsledku velmi nepříjemné,

neboť kromě jiného neumožňuje stažení příslušných bezpečnostních záplat.

Sasser se vázal na TCP porty 445 (na něj útočil), 5554 (na něm vytvářel FTP

server pro své šíření) a 9996 (otevíral jej pro další útoky: naslouchal na něm

příkazům zvenčí). Podle statistik na serveru www.incidents.org začalo v době

této kalamity používat port 445 nově kolem sedmi set tisíc počítačů – dá se tedy

předpokládat, že toto bylo i přibližné číslo infikovaných strojů.

Jen pro zajímavost doplňujeme, že FTP server vytvářený červem Sasser obsahoval

chybu, která byla na dálku zneužitelná. Inkriminovaná chyba se zanedlouho stala

cílem dalšího útoku, a to speciálně pro tento účel vytvořeným červem Dabber.

Jeho nebezpečnost nebyla nikterak vysoká, spíše šlo o krajně neobvyklou situaci,

kdy jeden internetový červ obsahoval chybu, kterou využíval jiný červ.

Sasser se šířil na internetového červa víceméně klasickým způsobem: skenoval

náhodné IP adresy a když našel počítač s výše zmíněnou chybou, snažil se na něj

umístit svoji kopii pomocí protokolu FTP. Postupně se objevilo několik

modifikací červa, které se ovšem příliš nelišily. Sasser.C např. dokázal

najednou spustit 1 024 skenovacích procesů pro hledání zranitelných strojů na

internetu, zatímco předchozí verze jich aktivovaly jen 128. Sasser.E zase dvě

hodiny po napadení počítače zobrazoval dialogové okno, v němž varoval uživatele,

že dotyčný stroj obsahuje chybu (přesně ji popsal) a dokonce přidával návod, jak

ji odstranit (tedy odkud stáhnout příslušnou záplatu).

Sasser celosvětově způsobil značné problémy. Díky němu musely svůj provoz omezit

nebo dokonce přerušit například tři velké ban-

ky (Westpac Bank v Austrálii nebo Suntrust Bank a American Express v USA).

Společnost RailCorp v Austrálii musela zastavit po útoku Sassera a ochromení své

počítačové sítě vlaky, což se dotklo 300 000 cestujících. Fungovat na sto

procent nemohly ani dvě nemocnice ve Švédsku v oblasti Lundu (5 000 PC vyřazeno

z provozu). Evropská komise v Bruselu se musela na nějakou dobu obejít bez

služeb 1 200 počítačů. Zasaženo bylo i devatenáct základen Pobřežní stráže ve

Velké Británii, stejně jako pošta na Tchaj-wanu (infikováno 1 600 počítačů, což

vedlo k dočasnému uzavření 400 poboček). Problémy měla i letecká doprava: na

londýnském letišti Heathrow spadla síť v celém jednom terminálu a americká

společnost Delta Airlines musela o několik hodin odlo-

žit desítky letů kvůli „počítačovému problému“ (toto je jediný z jmenovaných

případů, kdy

nebyl útok Sasseru oficiálně potvrzen). A takto bychom mohli pokračovat téměř

donekonečna.

Internetový červ Sasser měl zajímavou dohru: pouhých šest dní po příchodu první

verze zadržela německá policie člověka, kterého obvinila z autorství. „Pan S.

J.“ (velmi záhy proniklo na veřejnost, že je to osmnáctiletý Sven Jaschan) se

přiznal k vytvoření nejen Sasseru, ale také celé rodiny e-mailových červů

Netsky. Jako důvod uvedl svoji snahu bojovat proti rozesílatelům spamu,

stojícími za červy Bagle a MyDoom. Bojoval opravdu důkladně, protože červu

Netsky patří hned pět míst v tabulce deseti nejrozšířenějších škodlivých kódů

roku 2004.

Jaschan byl obviněn z trestného činu počítačové sabotáže, za což mu hrozí

maximální sazba pět let. Podle očekávání ovšem od soudu v červenci 2005 odešel

pouze s podmínkou a třiceti hodinami veřejných prací. Mimochodem ve stejné době,

tedy šestnáct měsíců po svém vypuštění, je jeho e-mailový červ Netsky.P čtvrtým

nejrozšířenějším na světě!

Kolem jeho zatčení se přitom vznášel nejeden otazník, protože Jaschanovi rodiče

ihned po zadržení svého syna začali prodávat médiím práva na rozhovor se svou

nezvedenou ratolestí. Kromě toho se Jaschanův spolužák, který jej nahlásil

úřadům, velmi vehementně dožadoval prémie 250 000 dolarů, kterou za dopadení

autora Sasseru vypsal Microsoft. Vzhledem k těmto i dalším zvláštnostem se

Microsoft rozhodl odměnu prozatím nevyplácet a počkat na úplné objasnění

případu.

V květnu 2004 se postupně objevilo několik dalších červů, které zneužívaly

bezpečnostní nedostatek v LSASS, ale žádný z nich nedosáhl věhlasu a rozšíření

Sasseru. Nejprve to byl 11. května červ Cycle (obsahoval dlouhé texty o

politické situaci v Iránu), následně i další: Bobax (16.), Kibuv (17.) či Korgo

(23.)

Poslední zajímavý internetový červ roku 2004 se objevil pouhé tři dny před

Štědrým večerem: 21. prosince. Jmenoval se Santy a jako zvláštnost lze uvést, že

byl vytvořen ve skriptovacím jazyce Perl. Napadal přitom servery využívající

populární diskusní fóra phpBB ve verzi 2.0.11 nebo nižší. Pro jejich nalezení

pak zneužíval vyhledávače www.google.com: z infikovaného počítače poslal dotaz

obsahující slovo viewtopic.php plus náhodnou sekven-

ci znaků. Pokud dostal odpověď (Google tedy vyhledal nějaké stránky splňující

přísluš-

né podmínky), pokusil se Santy na příslušný server poslat požadavek zneužívající

chybu Highlight Vulnerability (možnost spuštění programového kódu na serveru).

Bližší informace o této chybě je možné nalézt například na webu:

www.phpbb.com/phpBB/viewtopic.php?t

=240513.

Santy obsahoval počítadlo, které s každou další infekcí (tedy generací červa)

zvyšovalo svoji hodnotu o jedna. Jakmile dosáhlo čísla 3, všechny soubory s

příponou htm, php, asp, shtm, jsp a phtm na napadeném serveru by-

ly nahrazeny htm stránkou s textem: „This site is defaced!!! NeverEverNoSanity

WebWorm generation [ČÍSLO]“ (kde [ČÍSLO] je genera-

ce červa). Už 22. prosince 2004 ale byl útok červa zastaven, protože

programátoři upravi-

li vyhledávač Google tak, aby na dotazy od Santy nereagoval. Tím pozbyl možnosti

šíření a záhy zanikl. (Ještě poslední lednový den roku 2005 se na internetu

vyskytovalo více než 35 tisíc stránek, které byly modifikovány červem Santy.)

Je zajímavé, že jakýsi dobrodinec vytvořil červ Antisanty, který byl v podstatě

stejný jako Santy, jen s tím rozdílem, že se na napadené počítače snažil

instalovat příslušnou bezpečnostní záplatu. Nejedná se o krok v informační

bezpečnosti ojedinělý, nicméně i tento dobrý úmysl je nutné řadit do kategorie

škodlivých kódů.





Červ rychlejší než blesk

Výše uvedené kalamity rozhodně byly nepříjemné, ale zároveň nebyly tím

nejhorším, co by nás mohlo potkat. Teoretické koncepty nejhoršího možného

scénáře už byly opakovaně vypracovány, pojďme se na ně tedy alespoň letmo

podívat.

Prioritou pro úspěšného internetového červa je přitom rychlost šíření. Důvodů je

několik. Sice nejde o to, že by bylo potřeba vyhrát závod s distribucemi

nějakých aktualizačních databází antivirových programů, ale o to, že těžkopádně

se rozjíždějící epidemie znamená varování pro ostatní uživatele internetu:

pozor, něco se děje! A tito jsou pak v hodině dvanácté pod tlakem okolností

nuceni záplatovat systémy nebo alespoň zkontrolovat konfiguraci firewallů (tedy

alespoň někteří). Což je samozřejmě z hlediska útočníka nežádoucí.

Druhým důvodem potřeby rychlého šíření červa je fakt, že prosté šíření nestačí –

tedy v případě, že má mít červ nějaký smysluplný cíl (třeba podniknout DDoS útok

apod). Pomalé šíření totiž znamená, že získáváme čas na analýzu červa a

potencionální cíl útoku je varován, takže může podniknout určitá proti-

opatření. Jinak by se též dalo říci, že úspěch či neúspěch internetového červa

závisí na kvalitě či nekvalitě programové rutiny zajišťující distribuci…

Jen pro úplnost: při formátu IP adresy ve tvaru aaa.bbb.ccc.ddd máme na světě

256 krát 256 krát 256 krát 256 možností IP adresy. Číselně vyjádřeno to znamená

4 294 967 296 počítačů (pokud by všechny adresy byly obsazeny). Kdybychom

dokázali každou sekundu napadnout jeden počítač, trvalo nám zamoření celého

internetu více než 136 let, což je z hlediska internetového červa nereálně

dlouhá doba.

Internetový červ se šíří tak, že z infikovaného počítače hledá nějaký další

stroj, který by mohl napadnout. Pokud ho nalezne, nakopíruje se do něj. Přitom

zůstává i na původním, takže nyní už hledá vhodné oběti ze dvou míst atd. Z

tohoto modelu vyplývá, že čím méně infikovaných počítačů, tím pomaleji se červ

šíří. Naopak větší počet napadených strojů s sebou přináší „efekt sněhové

koule“.

Toho si všiml před několika lety i jistý Nicolas Weaver ve své studii věnované

superrychlým červům v prostředí internetu. Svého hypotetického červa nazval

Warhol Worm – Warholův červ. Inspirací mu byl citát Andy Warhola „In the future,

everybody will have 15 minutes of fame“ („Jednou každý zažije patnáct minut

slávy“). Weaver si totiž stanovil cíl dostat se se svým hypotetickým červem

právě pod patnáctiminutovou hranici, kdy chtěl napadnout většinu (více než 99

procent napadnutelných) počítačů.

Jak už bylo uvedeno výše, prvotní šíření internetového červa je velmi

těžkopádné, „rozjede“ se až po nějakém čase. Matematicky vyjádřeno: je-li méně

než deset tisíc napadených počítačů, je šíření pomalé. Jakmile je tato hranice

překročena, rychlost šíření dramaticky naroste. Weaver proto poukazuje na to, že

má-li být nějaký útok rychlý a zdrcující, musí tuto počáteční (pomalou) fázi

vynechat. Jak? Prostě tím, že červ s sebou dostane na startovací čáře do vínku

seznam deseti tisíc napadnutelných počítačů.

Takový seznam přitom není obtížné vytvořit. Na internetu najdete celou řadu

skenovacích nástrojů, schopných odhalit nějaké bezpečnostní nedostatky. Ostatně

s tímto typem skenování se setkává každý z administrátorů prakticky denně v log

souborech firewallů.

Přitom není nutné manuálně distribuovat internetového červa na všech deset tisíc

počítačů, ale stačí začít na jednom jediném a vytvořit vhodný model šíření.

Tento prvotní počítač obsahuje seznam všech deseti tisíc počítačů, přičemž jej

rozdělí na dvě poloviny. První polovinu si ponechá, na první IP adresu z druhé

poloviny seznamu vyšle požadavek na šíření sebe sama. Pokud je požadavek

akceptován, dojde k odeslání kopie červa i s touto polovinou seznamu. A tak to

jde dokola, a to i na dalších počítačích. Rychlost šíření navíc průběžně roste,

protože se zmenšuje velikost seznamu (stálým dělením na poloviny), který tvořil

podstatnou část objemu červa na počátku epidemie. Weaver teoreticky spočítal, že

je tímto způsobem možné infikovat deset tisíc počítačů rychleji než za jednu

minutu.

Dalším problémem internetových červů, s nímž se potýkala např. první verze

CodeRedu je, že se nové kopie červa snaží infikovat již infikované počítače. To

je samozřejmě z hlediska červa plýtvání časem a prostředky. Proto Nicolas Weaver

zavádí permutační skenování. Na dotaz zjišťující možnost napadení podle něj

odpovídá infikovaný počítač jinak než neinfikovaný. Tím se zabraňuje zbytečné

nové infekci, ale dochází i ke koordinaci činností.

Při permutačním skenování všichni červi sdílí společnou pseudonáhodnou permutaci



IP rozsahu adres. Taková permutace může být generována pomocí jakékoliv blokové

šifry s 32bitovým předvoleným klíčem. Červ tak provádí skenování „své“ části

rozsahu IP adres. Jakmile narazí na již infikovanou stanici, změní podmínky

skenování a začíná znovu od nějaké jiné hodnoty.

Weaver vytvořil i simulační program, na němž prokázal, že pro jeden milión

zranitelných počítačů se skupinou předdefinovaných deseti tisíc zranitelných

počítačů bude milión zranitelných počítačů (se sto skeny za sekundu a jednou

sekundou na infekci nové oběti) nakaženo v 99 procentech za dobu šest minut a

třicet vteřin! Weaver ještě dává několik tipů: např. použití nikoliv jediné, ale

několika bezpečnostních děr (pokud možno v různých programech), což by mělo

zajistit červu mnohem širší možnosti působení.

Weaverova studie je bezpochyby zajímavá a jeho termín Warholův červ se ujal. Má

ale jeden háček: dnes (v roce 2005) je pět let stará. Z toho vyplývá, že dnešní

podmínky na internetu jsou trochu jiné a z hlediska internetových červů

příznivější (např. vyšší rychlost přenosu dat). Nejnovější propočty a

matematické modely jsou výrazně děsivější: pokud bude na světě milión

infikovatelných počítačů, pak je červ údajně za ideálních podmínek schopen

napadnout 95 procent z nich za 1,3 sekundy! Tedy – pokud použije protokoly

TCP/IP. Kdyby dokázal využít protokol UDP, pak se tato doba sníží na 510

milisekund…

Na závěr dvě upozornění. Zatím všichni internetoví červi využívali již známou

bezpečnostní díru, na kterou byla k dispozici záplata a která mnohde nebyla

instalována jen zásluhou pochybení uživatelů či administráto-

rů. A přesto každý červ dokázal způsobit kalamitu obrovského rozsahu. A druhé

upozornění: dosud nebyl podniknut tímto způsobem skutečně velký útok (destrukce

dat, likvidace nějaké opravdu atraktivní domény, odstavení root serverů

internetu apod.).

Mráz běhá po zádech při pomyšlení, že někdo dokáže zneužít neznámou (resp. nově

objevenou bezpečnostní díru) a že ji „využije“ s nějakým opravdu zlým úmyslem.

Pokud takový den nastane, bezesporu se zapíše do dějin internetu hodně černým

písmem…

5s0042/jp o





Typický internetový červ

• Šíří se na úrovni protokolů TCP/IP.

• Zneužívá bezpečnostní díru nějakého operačního systému nebo aplikace

(čím kratší dobu je díra známá a čím je tedy vyšší pravděpodobnost, že na ni

nebude všude aplikována nebo dokonce vůbec vydána záplata, tím lépe).

• Obsahuje ještě další rutiny (nejčastěji zadní vrátka nebo funkci pro provedení



útoku DDoS).

• Snaží se dosáhnout co nejvyšší rychlosti šíření (a tedy i co největšího

rozšíření).



Co zmůžeme proti červům?

Následující tipy a rady by měly běžným uživatelům i správcům větších systémů

pomoci vypořádat se s problémem jménem „internetový červ“, a to pokud možno

ještě dříve, než vstoupí do našeho počítače. V informační bezpečnosti totiž

bezvýhradně platí, že nejlepší je takový problém, který nenastane…

Alfou i omegou boje proti internetovým červům je odstraňování bezpečnostních děr

a nedostatků, a to na úrovni operačního systému i jednotlivých aplikací.

Prakticky všechny současné škodlivé kódy v této kategorii totiž využívají právě

chyb v programech, aby se nekorektně nakopírovaly na počítač či server, a tak se

dále šířily. Ošetřování bezpečnostních nedostatků přitom musí mít hlavu a patu,

protože se stále zkracuje doba, která uplyne mezi objevením bezpečnostní hrozby

a jejím faktickým zneužitím. Proto ho není možné provádět chaoticky či nahodile,

neboť taková situace nahrává útočníkům. Situace je navíc znepříjemněna faktem,

že se bezpečnostní nedostatky objevují nepravidelně: nikdy nemáte jistotu, že

přestože jsou instalované všechny dostupné záplaty, aktualizace či upgrady, je

váš systém stoprocentně imunní.

Z výše uvedeného vyplývá nutnost ochrany počítače nejen vůči konkrétním hrozbám

(v podobě konkrétních bezpečnostních nedostatků), ale vůči všem potenciálním

hrozbám – třeba v podobě filtrování nežádoucího, nevhodného nebo nepřátelského

provozu. V takovém případě přichází ke slovu firewall (nejčastěji na úrovni sítě

či systému) nebo personální firewall (na úrovni jednotlivé stanice). Kde je to

jen trochu možné, tak se doporučuje (stejně jako třeba v případě antivirové

ochrany) aplikace obou prvků. Firewall střežící bezpečnost celé sítě asi není

potřeba dlouze rozebírat. Personální (osobní) se pak stává nutností především

díky tomu, že zásluhou různých bezdrátových a mobilních připojení stále častěji

opouštějí počítače relativně bezpečnou oblast lokální sítě. Tím mohou infekci

nejen získat, ale po návratu do sítě ji i úspěšně distribuovat. Firewally navíc

mají tu milou vlastnost, že nechrání pouze před internetovými červy, ale i před

celou řadou dalších nebezpečí.

Ruku v ruce se záplatováním a ochranou pomocí firewallů pak jde ještě jedna

oblast, která bývá v boji proti internetovým červům nezřídka podceňovaná. A tou

je oblasti bezpečnostních předpisů, pravidel a politik. Každý systém je tak

silný, jak je silný jeho nejslabší článek – a v případě internetových červů je

potřeba zajistit, aby tento nejslabší článek vůbec nevznikl. Tedy aby v síti

nevznikla žádná skulinka. Ostatně, pravidla jsme zmínili už výše – záplatování

by mělo probíhat podle určitých pravidel a nikoliv chaoticky. Ošetřeny by ale

měly být i jiné oblasti: třeba přihlašování do sítě (které by nemělo být

umožněno cizímu nebo nedostatečně chráněnému zařízení). Stejně tak je dobré

počítat se skutečností, že se „něco může stát“ (neboť stoprocentní ochrana

neexistuje), a mít připravený krizový scénář a náhradní řešení. Tedy aby v

případě bezpečnostního incidentu nenastala situace, že nikdo nic neví a nikdo

nic nedělá. Správnými postupy je možné problém a jeho následky minimalizovat.

Dalším ochranným prvkem v boji proti internetovým červům je antivirový program.

Čistokrevný antivirový program sice před čistokrevným internetovým červem

nedokáže ochránit (z hlediska ryze funkčního, nikoliv technického – viz níže),

nicméně obě kategorie jsou v praxi velmi vzácné. Antivirový program bývá často

vybavován dalšími ochrannými prvky (buď přímo firewallem, nebo alespoň některými

jeho funkčnostmi), internetový červ se zase často pokouší na napadený systém

něco instalovat a v tu chvíli se stává snadnou kořistí antivirového programu.

A proč si antivirový program se samotným internetovým červem neporadí? Důvodem

je skutečnost, že pokud se neodstraní místo v systému, kudy se do něj červ

dostává, bude se nahrávat do počítače prakticky neustále. Celý systém pak končí

v nekonečné smyčce odstraňování červa z běžících procesů (resp. z paměti) a jeho

nahrání. Proto se antivirové firmy (byť to technicky možné je) brání pouhému

odstraňování červa. Prostě to nemá smysl.

I z výše uvedených řádků vyplývá, že ochrana proti internetovým červům není

záležitostí jednoduchou, která by se dala ošetřit jednou provždy nastavením

jednoho parametru nebo nějakým jiným podobně jednoduchým způsobem. Na druhé

straně je ale důležitým zjištěním, že ochrana nepatří do říše snů a že možná je.



Útoky Denial of Service

Pokud obsahují červi nějakou škodlivou rutinu, pak zpravidla jde o rutinu

sloužící k provádění útoků Denial of Service (zkráceně DoS), odepření služby.

Zákeřnost útoků DoS spočívá v tom, že není napadený skutečný cíl, ale přístupové

zdroje k němu. Legitimní žadatel tak nezíská přístup ke službě, na kterou by měl

mít nárok – poškozený je pak on i poskytovatel služby. DDoS (Distribued DoS) je

pak typ útoku, kdy dochází k jeho provedení z většího počtu míst, čímž se jeho

síla a účinek násobí. Typickým příkladem DoS/DDoS útoku je obsazení přenosové

kapacity velkým množstvím požadavků (větším, než je schopna napadená entita

zvládnout), vysílaným v jednom okamžiku. Je to tedy případ jakési „dopravní

zácpy“, kdy se po internetové komunikaci snaží projet mnohonásobně větší doprava

než jaká může – výsledkem pak je, že provoz beznadějně stojí.

Autor článku