Chip 03/2003: antivirový koutek

W32/SQLSlammer

Začalo to vlastně docela nenápadně: v noci z 24. na 25. ledna 2003 (z pátku na sobotu) došlo ke zvýšené aktivitě na UDP portu 1434. Provoz přes tento port však s postupem času stále stoupal a brzy bylo jasné, že se objevil nějaký nový dosud neznámý zdroj, který tuto zvýšenou komunikaci způsobil. Po krátkém čase bylo vše jasné – stále vyšší provoz měl na svědomí nový červ, který se velice rychle šířil Internetem – W32/SQLSlammer. Jeho aktivita byla velmi vysoká a brzy bylo jasné, že právě vypukla nová a velmi masívní epidemie, způsobená právě tímto virem.

Tento červ pro svoje šíření využívá bezpečnostní díru v programu Microsoft SQL Server 2000. Jedná se o slabinu typu přetečení zásobníku – pokud jsou programu poslána data delší, než očekává a pokud jsou tato „data“ předem připravena tak, že přepsaný obsah zásobníku se nahradí ukazatelem do takto zaslaných dat, mohou se tato data poměrně jednoduše stát programem, který je okamžitě po přijetí na daném počítači spuštěn. Win32:SQLSlammer je svým způsobem zvláštní worm. Je totiž velice krátký – jen 376 slabik – a poměrně elegantně napsaný. Na napadeném počítači nemění žádné soubory či bezpečnostní nastavení a existuje tam pouze v operační paměti. Po restartování počítače je proto na daném stroji červ kompletně zrušen. Takový počítač však samozřejmě může být znovu napaden, pokud není bezpečnostní díra odstraněna! Z tohoto hlediska je velmi podobný červu Codered, který se objevil v červenci 2001. I ten se velice rychle rozšířil (tehdy využíval obdobnou chybu v MS IIS Web Serveru), ani on neměnil žádné soubory na napadeném počítači.

Je zajímavé, že tato konkrétní díra byla odhalena již v květnu 2002 a že její oprava již existuje dlouhou dobu (konkrétně od července 2002). Proto je velmi zarážející, kolik systémů a serverů nebylo proti této chybě zabezpečeno. Je to velká ostuda administrátorů těchto systémů a veškeré problémy jednotlivých firem padají jednoznačně na jejich hlavu.

Pro své další šíření červ vygeneruje pseudonáhodnou IP adresu a pokusí se napadnout počítač, který ji používá. Pokud na takto osloveném počítači běží nechráněný MS SQL Server 2000 či MSDE (viz dále), červ je schopen takový počítač napadnout. A právě zde je kámen úrazu a nebezpečnosti tohoto červa: i když vědomě nemění či nepoškozuje žádná data, je schopen vygenerovat tak velký provoz na síti, že může pohltit veškerou její kapacitu a taková síť se pak stává neprůchodnou, a tak zcela nepoužitelnou. Jak už bylo řečeno, červ používá pro své šíření jediný port - UDP port 1434 (SQL Monitor Port), lokální síť lze proto poměrně jednoduše před náporem požadavků chránit zablokováním tohoto portu na firewallu.

Náš červ má ale ještě jeden vedlejší velice nepříjemný cíl. Nenapadá totiž jen již zmíněný SQL Server 2000, ale bohužel také produkt MSDE, který se používá v řadě dalších Microsoft produktů - například Microsoft Office, Microsoft Visual .NET Studio či Microsoft AppCenter – či dokonce v aplikacích třetích stran. MSDE (Microsoft SQL 2000 Desktop Engine) je totiž odlehčená verze SQL 2000, kterou využívají vývojáři dalších aplikací. Typickým příkladem je internetové bankovnictví KB ProfiBanka.

Opravná záplata přitom pro MSDE (na rozdíl od MS SQL 2000) ještě týden po prvním výskytu viru neexistovala! Tisíce počítačů domácích uživatelů či pracovníků ve firmách se staly během krátké doby obětí i dalším zdrojem šíření červa, pokud se ovšem nenacházely za firewallem. Jedinou (dost slabou) ochranou je přitom filtrování UDP portu 1434.

Konkrétní informace o opravné záplatě pro MS SQL Server 2000 najdete na následujících stránkách: http://www.microsoft.com/technet/treeview/default.asp?url=/technet/security/bulletin/MS02-039.asp. Microsoft také týden před obejvením červa uvolnil další service pack (SQL Service Pack 3), který také obsahuje opravu bezpečnostní díry. Informace o této kumulativní opravě najdete na adrese http://www.microsoft.com/sql/downloads/2000/sp3.asp.

SQLSlammer má opravdu na svědomí rozsáhlé výpadky Internetu v prvních hodinách po svém šíření. Nejvíce problémů způsobil v USA a v Asii, nevyhnul se ovšem ani Evropě a České republice. Zde byl snad nejmarkantnější výpadek reklamního systému Adrenaline, který následně způsobil problémy s přístupností mnoha dalších stránek řady firem. To, že se červ objevil během víkendu, bylo výhodou i nevýhodou zároveň. Provoz na českém Internetu je během víkendu mnohem slabší, takže výpadek nepřinesl tolik problémů, jako by tomu bylo ve všední den. Na druhou stranu jeho odstranění (a aplikování záplat na klíčové servery) trvalo mnohem déle právě proto, že řada firem stále nepřešla na nonstop režim správy serverů, a tak někteří administrátoři prostě nebyli k dispozici.

Je známo, že takřka každý program obsahuje chyby. Některé z nich jsou závažnější, některé jsou dokonce kritické. K objevování bezpečnostních děr dochází celkem pravidelně a na všech platformách. Firma Microsoft v tomto konkrétním případě reagovala poměrně svižně, ale je zřejmé, že uživatelé z nejrůznějších příčin (neznalost, neodstatek času, neodpovědnost) opravné záplaty ve většině případů jednoduše neaplikují. To se prokázalo již mnohokrát v minulosti a červ SQLSlammer to opět potvrdil. To, co se dá omluvit u koncových uživatelů, je ale zcela neomluvitelné v případě administrátorů firemních sítí – tam sledování problematiky bezpečnosti a aplikování opravných záplat patří k základním úkolům péče o sítě!

A jen tak pro zajímavost: pokud používáte Windows, zkuste si během připojení k Internetu spustit položku Windows Update v menu Start. Možná budete překvapeni, kolik kritických a důležitých záplat chybí zrovna tomu Vašemu počítači!