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 9x, 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í.