Vyšlo na serveru Digiweb.cz, 9.11.2004
Vytištěno z adresy: http://www.earchiv.cz/b04/b1109001.php3

Internetovým červům je 16 let

Historie Internetu má mnoho zajímavých milníků. Jedním z nich je i 2. listopad 1988, kdy se po skoro celém tehdejším Internetu rozšířil tzv. Morrisův červ. Napadl tehdy většinu akademických počítačů a fakticky je vyřadil z provozu. Ačkoli to nebyl úplně první incident svého druhu, je všeobecně považován za zlomový okamžik, kdy "zlý kód" poprvé ohrozil významnou část celého Internetu.

Minulý týden, v úterý 2. listopadu, tomu bylo přesně 16 let, kdy se v rámci tehdejšího Internetu odehrála jedna zajímavá a ne moc příjemná věc. Robert Tappan Morris, tehdy 23-letý student známé Cornell University, pracoval na jednom výzkumném úkolu, v rámci kterého vytvořil "kus kódu" (program), schopný šířit se a replikovat v prostředí sítě. Jeho zdrojový kód měl 99 řádek, a přeložený program fungoval jen na počítačích VAX (od firmy DEC) a Sun 3 (od Sun Microsystems), s operačními systémy na bázi Unixu. Obsahoval však jednu "drobnou chybičku", která se naplno projevila v okamžiku, kdy začal Robert Morris s programem experimentovat. Jakmile jej spustil, začal se program nekontrolovaně šířit prostředím sítě (tehdejšího Internetu), a napadat další a další počítače. Zmiňovaná "drobná chybička" pak spočívala v tom, že tento program (podle dnešních definici červ) napadal každý počítač nikoli jen jednou, ale opakovaně - tak dlouho, dokud nevyčerpal všechny jeho zdroje. Výsledkem byla lavina, která zaplavila na 6000 počítačů - což byla významná část celého tehdejšího Internetu.

Napadené stroje byly velmi rychle zahlceny, a tím efektivně vyřazeny z provozu. Jejich správci je většinou museli fyzicky odpojit od Internetu a vypnout, resp. resetovat, a pak jejich chod nějak obnovit. Přitom vznikly nemalé škody jejich akademickým uživatelům, nejvíce v rámci jejich výzkumných aktivit. Následně byly tyto škody vyčísleny na 100 000 USD až 10 000 000 USD, a nešťastný Robert Morris byl pohnán před soud. Ten jej sice odsoudil pouze k podmíněnému trestu, ale napařil mu pokutu 10 050 USD, a k tomu ještě 400 hodin veřejně prospěšných prací.

Dnes je Robert Tappan Morris docentem na prestižní MIT (Massachussest Institute of Technology), a stále se věnuje počítačovým sítím - i když ne oblasti bezpečnosti.

Nebylo to poprvé

Incident s nechtěným vypuštěním počítačového červa Robertem Morrisem v roce 1988 je všeobecně prezentován jako první případ toho, kdy nějaký "zlý kód" dokázal napadnout prakticky celý Internet a vyřadit jej z provozu. Současně s tím bývá tento incident považován za začátek éry počítačových virů, červů, trojských koní a jiné havěti, která se šíří Internetem a napadá počítače, které jsou k němu připojeny.

Zmíněný incident ale zřejmě není úplně prvním případem svého druhu. Například známá chronologie "Internet timeline" od Roberta Zakona uvádí, že v roce 27. října 1980 došlo k zablokování celého ARPANETu (zárodku dnešního internetu), když byla omylem na všechny strany rozeslána jakási stavová zpráva (účinkující jako virus). V roce 1982 zase ve výzkumném středisku PARC (Xerox Palo Alto Research Center, kde mj. vyvinuli Ethernet) experimentovali s vývojem počítačových červů, pro potřebu distribuované správy. Jednou se jim ale měl takovýto červ vymknout z rukou, napadnout na 100 pracovních stanic v celém středisku a vyřadit je z provozu.

Nicméně Morrisův červ asi skutečně byl prvním případem velmi rychlého napadení významné části všech uzlů celého Internetu - v době, kdy Internet už byl skutečným Internetem, a ne pouze zárodečným Arpanetem, propojujícím jen pár počítačů na několika málo univerzitách.

Nebylo to naposledy

To, že incident s Morrisovým červem asi nebyl prvním, je možná zajímavé - ale podstatné bohužel je, že to zdaleka nebyl poslední incident svého druhu. Právě naopak, byl to spíše jen začátek, jakási předzvěst ještě horších časů. Takových časů, kdy šíření "zlého kódu" už nebylo důsledkem nějakého nechtěného incidentu (vymknutí se kontrole), ale zcela záměrného působení určitého druhu lidí. Podrobněji by se o tom daly psát celé knihy (jeden hezký článek o historii virů a červů najdete například zde).

Pokud bych měl celý další vývoj virů a červů popsat v maximální stručnosti, vypadalo by to asi takto:

Kolem roku 1988 si počítače, připojené do rodícího se Internetu, ještě navzájem hodně věřily. Existovaly příkazy jako rlogin, umožňující uživatelům přecházet z jednoho stroje na jiný (v rámci tzv. vzdáleného přihlašování), bez nutnosti opakovaně se identifikovat (uživatelským jménem) a prokazovat svou identitu (heslem). Této důvěřivosti pak mohly využívat nejrůznější červi, neboli (samostatné) programy, které se samy replikovaly a také se samy šířily v prostředí sítě (z jednoho počítače na jiný počítač), aniž by k tomu potřebovaly nějaký explicitní zásah uživatele.

Později, když takováto "prvotní důvěřivost" vzala za své, se "zlé programy" začaly lepit na "hodné programy", čímž se z počítačových červů staly počítačové viry.

Virus je totiž takový program, který není samostatný, ale který musí napadnout nějakého "hostitele" ("hodný program"), uhnízdit se v něm, a pak se šířit spolu s ním. Případně se za takovýto program rovnou vydávat sám. Proč to virus dělá, je jednoduché - snaží se tak obejít různá omezení a zákazy, které by se na něj jinak vztahovaly, kdyby vystupoval "pod svým jménem". Když se takto vydává za "hodný program", nebo je v něm uhnízděn, čeká až jej důvěřivý uživatel spustí - čehož ihned využije ke svému šíření, a často bohužel i k páchání různých škod. Jinými slovy: takovýto virus vyžaduje explicitní zásah uživatele. Či chcete-li: na selhání uživatele, který nějakou svou akcí sám otevře počítačovému viru dveře.

Dnes je ale situace opět jiná. Dnešní viry již často nemusí čekat na explicitní zásah uživatele (na selhání "slabého místa mezi klávesnicí a židlí"). Místo toho se snaží "dostat ke slovu" bez zásahu uživatele, využitím nejrůznějších chyb v implementaci operačních systémů, systémových utilit či přímo koncových aplikací, kterých se v praxi vyskytuje většinou mnohem více, než by bylo zdrávo. Takovýto "zlý kód" se pak již nemusí skrývat za cizí identitu (za nějaký "hodný program"), a proto může mít znovu podobu počítačového červa (samostatného programu). Jeho šance na "úspěch" pak již nezávisí na tom, zda uživatel provede nějakou konkrétní akci, ale naopak na tom, zda uživatel včas opraví příslušnou chybu na svém počítači.

Když se na to podíváme z pohledu uživatele, je to zajímavý obrat: dříve šlo o to, aby zbrklý uživatel neudělal nějakou nepodloženost (neklinknul na něco, na co by klikat neměl). Dnes jde naopak o to, aby neotálel příliš dlouho s tím, že něco konkrétního udělá. Aby zareagoval dostatečně včas na právě objevenou chybu v operačním systému, který používá, na chybu v některé z aplikací, se kterými pracuje atd. Potenciální útočníci si tak vynucují explicitní a včasné obranné zásahy na straně uživatelů, ale ti na to pochopitelně nemusí mít čas, dostatek znalostí atd. Do hry tak vstupují různé mechanismy, které se snaží samy postarat o průběžné a hlavně včasné "záplatování" uživatelova systému a aktualizaci všech jeho složek, včetně antivirových systémů. Ale ani tyto mechanismy nemusí být vždy dokonalé, nemusí vždy stíhat - a mohou se samy stát cílem nejrůznějších útoků.

Praktický výsledek není nijak radostný, stačí jen sledovat nejrůznější články o tom, jak ten který červ zase zaplavil celý český Internet. A co nás teprve čeká? Dokážeme dnes předvídat, jak se bude situace vyvíjet dál? Jak bude vypadat on-line svět (svět Internetu, pokud se tak bude ještě jmenovat) za dalších 16 let?