Co připomněl Blaster? - Virus-nevirus Blaster a jeho poselství, aneb bez personálního firewallu ani ránu

1. 10. 2003

Sdílet

Vedrem vyprahlou a tradičně letně ospalou tuzemskou mediální scénu během srpnanevídaně oživila aférka s výskytem velmi zajímavého červu (nesprávně viru) s názvem Blaster. Ačkoliv ...

Vedrem vyprahlou a tradičně letně ospalou tuzemskou mediální scénu během srpna
nevídaně oživila aférka s výskytem velmi zajímavého červu (nesprávně viru) s

názvem Blaster. Ačkoliv z pohledu zkušeného bojovníka na antivirové scéně se

jednalo vlastně o poměrně nevinnou hříčku bez vážných následků, stal se tento

prográmek dokonce středem pozornosti redaktorů veřejnoprávní televize(!), což

se věru nestává každý den. Velmi příznačným na celé kauze je fakt, že Blaster

se stal mediální hvězdou ze zcela jiného důvodu, než by bylo potřeba: jeho útok

totiž poukázal na nesmírně závažné okolnosti, o nichž se ovšem v televizi

nedozvíte a v novinách nedočtete. V tomto článku se nejen dozvíte, jak vlastně

Blaster poukázal na to, že „císař je nahý“, ale především se pokusíme podpořit

tvrzení, že personální (osobní) firewall není zbytečnost.





Cesta k Blasteru



Začněme letním příběhem, jenž představuje klíčové východisko pro další rady a

návody v tomto článku. V průběhu první poloviny léta se výzkumné skupině LSD

(The Last Stage of Delirium Research Group) podařil senzační objev v podobě

odhalení velmi závažné bezpečnostní díry v útrobách operačních systémů Windows

řady NT (tedy především 2000, XP, ale též zcela nových Windows 2003 Serverů).

Protože to jsou chlapíci zodpovědní a uvědomili si, jakou potenciální rozbušku

drží v rukou, rozhodli se neriskovat a vše neprodleně oznámili výrobci, tedy

Microsoftu. V Redmondu jasně chápali, o co jde, a proto se vzápětí (cca po 2

dnech) na oficiálních stránkách http://www.microsoft.com/security objevilo

vydání bezpečnostního bulletinu MS03–026 s potřebnou záplatou pro všechny

postižené varianty Windows. To vše se stalo již 16. července 2003!



Protože skupina LSD byla hodně zodpovědná, neumístila na své stránky ani příliš

podrobný popis svého objevu, aby jej někdo nemohl využít. Avšak i několik málo

informací stačilo řadě zkušených programátorů k tomu, aby se vydali po dobré

stopě a díru nalezli. S jistým odstupem se např. čínské skupině

http://www.xfocus.org podařilo mezeru objevit a především vytvořit funkční

zdrojový kód programu, jenž dokáže slabosti využít. Od této chvíle již začalo

přituhovat, neboť podobný kousek se podařil i jiným tvůrcům a vznikaly základy

aplikací, jež spojovalo jediné: utajená cesta do útrob Windows vedla přes

objevenou díru. Bohužel, následky se mohly velmi lišit.



V tuto chvíli již nic nestálo v cestě tvůrci Blasteru. Nemusel být extrémně

dobrým programátorem, neboť podstatný kus cesty za něj urazili jiní. Stačilo

vzít známé ingredience a lektvar dovařit. Zhruba měsíc po uvolnění bezpečnostní

záplaty(!) se tedy objevuje Blaster, konkrétní vtělení objevené chyby a začíná

kosit uživatele, kteří si mysleli, že se jich problém netýká.





Kudy chodí Blaster?



Co je tedy onou chybou, jež tak snadno propouští Blaster a umožňuje mnohem víc,

jak si dále řekneme? Poněvadž je problém komplikovaný, nebudeme zabíhat do

přílišných podrobností opravdoví znalci nechť využijí webové odkazy pro

detailní reference. Strašidelný potenciál díry spočívá v tom, že spojuje dvě

velmi používané technologie ve Windows. Jednou je tzv. DCOM zjednodušeně řečeno

se jedná o architekturu programů a jejich komponent, jež dovoluje jejich

rozprostření na více počítačů v síti a vzájemnou komunikaci. Druhou technologií

je pak síťový protokol RPC, jenž právě dokáže na dálku ony komponenty zavolat a

spustit podle potřeby.



Výzkumníci odhalili závažný fakt, že po zaslání specificky poškozených

požadavků RPC dojde k tzv. chybě přetečení, jež prostě řečeno donutí DCOM dělat

věci, které by neměl. Posléze již stačí zasílat další konkrétní požadavky na

útokem obnažené rozhraní, a vzdálený systém je ve vašich rukou.



Aby následující scénář mohl být naplněn, musí cílový počítač, jenž má být

obětí, splňovat ještě jednu podmínku. Tou je naslouchání na tzv. portu 135, k

čemuž se ještě vrátíme pro tuto chvíli stačí říci, že tato „dvířka“ bývají

tradičně otevřená, neboť je systém hojně využívá pro běžnou službu sdílení

souborů a tiskáren v lokálních sítích. A právě touto skulinou, pokud jste ji

„vystavili“ navíc ještě do internetu, si k vám Blaster mohl najít cestu. Červ

fungoval dosti jednoduše, neboť ze strojů obětí náhodně okukoval v okolních

sítích další počítače a otevřené cesty, a tím si hledal nové cíle. Po průniku

na další stroj využil protokol TFTP (trošku jednodušší FTP) a s jeho pomocí sám

sebe přesunul na vyhlédnutou oběť a infikoval ji. Zde začínalo kolečko od

začátku, hledáním nových potenciálních cílů.



Všimněte si jedné zásadní věci: netřeba použít e-mail, netřeba spouštět

podezřelou přílohu v poště, netřeba navštívit podezřelou webovou stránku…

Stačilo být připojen a nemít záplatu! A následky? Tvůrce byl nesmírně

shovívavý, neboť vám „jen“ pravidelně nechal restartovat počítač. Jeho

citlivost vyzdvihujeme proto, že díky oné chybě mohl naprosto cokoliv, jak

uvidíte dále.





Port 135 a spol.



Jak jste jistě postřehli, klíčovým faktem je dostupnost portu 135 a jeho

zneužití. O co vlastně jde a proč „to tam ve Windows máte“? Protože se jedná o

mnohem obecnější problém a trvale velké nebezpečí, podíváme se na věc

podrobněji.



Každý operační systém, jenž komunikuje po síti a využívá protokolovou sadu

TCP/IP (stojí na ní celý internet a velká část lokálních sítí), pracuje s tzv.

porty. Můžete si je představit jako přívodní roury do vašeho stroje je jich 2 x

65 535 (polovina TCP, polovina UDP) a musí se do nich vejít veškerá komunikace,

neboť každá roura buďto přijímá, odesílá nebo naslouchá. Mnoho síťových služeb

používá určité očíslované porty (roury), jež jsou dobře známy, aby na nich

přicházející klienti snadno nalezli, to co chtějí. Tak služba WWW typicky

naslouchá na portu TCP 80, poštovní server na portech 25 TCP či 110 TCP a třeba

překlad jmen DNS používají 53 TCP i UDP.



Nedílnou součástí operačních systémů Windows jsou také další služby, jež

zajišťují často nezbytné operace. Jednou z nich je i ona zneužitá služba

číhající na portu 135 TCP a UDP. Jednoduše řečeno slouží k tomu, aby si

vzdálené počítače domluvily další porty, na nichž se budou bavit, právě když

použijí třeba protokol vzdáleného spouštění aplikací RPC. Podstatné je, aby

port 135 byl např. v lokální síti průběžně dostupný, neboť bez něj vám spousta

věcí nebude fungovat, jak by měla. Na druhou stranu, z internetu k vám by měl

být striktně nedostupný, neboť představuje nebezpečí a k ničemu kloudnému jej

zde nepotřebujete.



Port 135 však není jediným potenciálním problémem. V jeho sousedství číhají

další nástrahy v podobě portů 137, 138 a 139. Jsou totiž využívány protokolem

NetBIOS, jenž například zajišťuje běžné sdílení souborů a tiskáren v sítích s

Windows, což je služba, bez níž si tradiční uživatel nedokáže svou práci

představit. Jenže, neopatrně vystavený port 139 do internetu opět představuje

smrtící nebezpečí. Řeknete si, proč tolik řečí kolem portů? Protože představují

při chybné konfiguraci stálé nebezpečí pro váš systém, a míra ohrožení je ve

srovnání s mnoha viry a červy včetně Blasteru nesrovnatelně vyšší.





Proč antivir nestíhá?



Mnozí z vás se jistě pozastaví nad tím, proč zkoumat síťovou komunikaci, když

mají antivir, jenž přeci vše řeší! Nemůže být ovšem většího omylu, jak vás nyní

přesvědčíme. Antivirový software je jistě velmi důležitou pomůckou, ale proti

útokům vůči konkrétním síťovým službám je bezmocný. Důvodem je samotná podstata

jeho práce antivir kontroluje podezřelá data, jež dorazila na váš počítač v

jakékoliv podobě. Pokud s vámi někdo komunikuje na dálku a vede útok tímto

způsobem, antivir nemá co kontrolovat, a proto nemůže nic odhalit. Ano, Blaster

byl úspěšně odhalen antiviry, ale pozor: až ve chvíli, kdy už jste byli

bezmocnou obětí! Podstatná část útoku proběhla předtím, než se u vás na

počítači Blaster objevil a antivirus jej odhalil. Kdyby autor červu byl

zlomyslnější, zlikvidoval by váš stroj dřív, než by antivirový software vůbec

dostal šanci vstoupit do hry.



Přesvědčivým důkazem budiž navíc fakt, že ani soubor na vašem stroji nemusí být

antivirem odhalen. Autor článku si na základě na internetu dostupných

zdrojových kódů sestavil prográmek, jenž dokáže vzdáleně připojit příkazovou

řádku jakéhokoliv počítače, který naslouchá na portu 135. Ačkoliv jde jen o

velmi mírnou modifikaci (ovšem poněkud drsnější) červu Blaster, zachytily jej

jen některé antiviry. V den psaní článku (23. srpna), tedy více než 5 týdnů po

objevení díry a 3 dny po poslední aktualizaci Live Update, je můj Norton

AntiVirus (verze 9.05.15) naprosto v klidu, a ani na přímý dotaz na

inkriminovaný soubor nenachází nic podezřelého. Co z toho plyne? Že třeba váš

kolega v práci, jehož rovněž chrání tento či jiný antivir, může zneužitím

stejného prográmku třeba zlikvidovat vzdáleně váš pevný disk.





Osobní firewall nezbytnost



Z výše uvedených informací jasně vyplývá, že důsledná kontrola toho, co dorazí

na váš stroj, nemusí před záškodníky stačit. V současné době se stává

samozřejmostí provádění síťové kontroly, a to nejen ve firmách či rozsáhlých

sítích, ale především na domácích počítačích připojených do internetu.

Pochopitelně si to uvědomují i antivirové firmy, a proto nabízejí krom

tradičních antivirů i tzv. osobní či personální firewally najdete je v nabídce

zmíněného Symantecu, ale i mnoha jiných výrobců (přehled najdete dále v tomto

článku). Důležité je si uvědomit zásadní výhodu a potřebnost tohoto řešení:

dnes již nemusí představovat největší nebezpečí soubor či program, který

pronikl až na váš počítač, ale velmi zákeřná může být již samotná komunikace s

vaším strojem po síti, aniž by byl přenesen jediný ucelený soubor na váš

počítač. Kdykoliv stroj spustíte a připojíte k síti, měli byste ve výchozím

stavu blokovat všechnu komunikaci s výjimkou té, která je pro vaši práci či

zábavu nezbytná. Vámi otevřené kanály by měly být stále pod kontrolou.





Jak personální firewall pracuje?



Aplikace typu personální (osobní) firewall používá ke své práci několik

principů, jež si zde popíšeme. Základem jeho činnosti je tzv. paketový filtr,

jenž pracuje v podstatě v úloze důsledného vrátného. Jeho rukama na síťovém

rozhraní projde každý balíček dat paket a je porovnán se sadou pravidel, načež

následuje buďto propuštění, nebo zahození. Mezi tato pravidla patří především

směr provozu (odesíláte vy nebo někdo posílá něco vám), dále číslo portu (tedy

na jakou službu komunikace míří) a jedinečná identifikace odesílatele a

příjemce pomocí tzv. IP (síťové) adresy. Je důležité si uvědomit, že číslo

portu je vždy odchozí (tedy odkud jste komunikaci vypustili) a cílové (kam na

protějším počítači míříte). Již kombinace těchto parametrů je použitelná pro

velmi slušné zabezpečení.



Protože jsou však úskoky útočníků rafinované, umí toho firewally více. Další

běžnější možností je kontrola aplikací na vašem počítači, jež chtějí síťové

služby použít. Vše objasní příklad: po instalaci firewallu se pokusíte poprvé

stáhnout poštu. Tato akce probudí firewall a ten se vás zeptá, zdali tomuto

poštovnímu programu na vašem stroji povolíte odpovídající komunikaci. Po

souhlasné odpovědi si firewall poštovní aplikaci označí a hlídá, aby se poštu

nepokusil poslat jiný program. Navíc vás bude varovat, pokud by došlo ke změně

původního poštovního programu (např. pomocí zákeřného červu) a tím vzniklo

riziko neautorizované komunikace.



Mezi vlastnosti pokročilejších firewallů patří tzv. inspekce obsahu. Tento

postup je používán k prověřování toho, co běžný paketový filtr nezvládne

kontroluje samotná data, tedy „náklad“, jenž od vás či k vám putuje. Existují

totiž způsoby, jak např. pomocí předstírání webové či poštovní komunikace

„protlačit“ otevřeným kanálem (na neblokovaném portu) něco nekalého. Inspektor

obsahu se „koukne dovnitř“ a zběžně ověří, zda náklad není škodlivý, a poté vše

opět buďto posvětí, nebo zlikviduje.





Osobní firewall v praxi



Pokud si pořídíte aplikaci tohoto jména, dokáže většinou spojit výše popsané

funkce dohromady a vytvořit tak silnou bariéru mezi vaším počítačem a okolím.

Následující odstavec formuluje obecné postupy při práci s typem programu, jenž

se vyskytuje v mnoha podobách dle výrobce. Konkrétní typy najdete v tabulce.



Základním krokem je úspěšná instalace. Pokud nedopadne dobře, raději program

odstraňte a zkuste nainstalovat znovu. V opačném případě riskujete, že nebude

pracovat správně, takže buďto může „propouštět“, nebo naopak blokovat kdeco a

shazovat počítač. Po prvním spuštění počítače s osobním firewallem bývá

většinou definován výchozí konfigurační stav, který říká asi toto: dovnitř

nepouštěj nic, ven pouze to, co uživatel osobně povolí. Pokud je základní

ovládání prováděno pomocí „posuvníků“ či voleb s označení typu „nízká, střední,

vysoká“ bezpečnost, nespoléhejte se na tuto informaci a vždy pátrejte, co se za

výchozím nastavením skrývá.



Po prozkoumání programu se snažte docílit nastavení, jež jsme zmínili: cestu

dovnitř uzavřete, a směrem ven povolte komunikaci např. webovému prohlížeči,

poštovnímu programu, FTP klientu či antiviru (pro updatování). Pro další

nastavení vřele doporučujeme seznámit se s postupem detailní konfigurace

filtrů, jež osobní firewally obsahují. Než povolíte komunikaci dovnitř, měli

byste si být jisti, že víte, co pouštíte, jinak vše zamítněte. Dále naleznete

tabulku běžných typů služeb a naše doporučení, jak si osobní firewall nastavit.

Konkrétní postup nastavení záleží na typu programu, jejž jste zvolili.



Při detailním sestavování vlastního filtru je potřeba si uvědomit některé

okolnosti. U čísel portů je důležitý především cílový port, jenž směřuje na

určitou službu odchozí port bývá volen náhodně a za běžných okolností bývá

vyšší než 10 000. Pokud tedy chcete pustit někoho na svůj počítač např. na

program ICQ, jenž čeká na portu 1080, musíte povolit příchozí komunikaci na

tomto portu a jako hodnotu pro odchozí port ze vzdáleného počítače ponechat

„Any“ (cokoliv, nespecifikováno). Podobně od vás ven komunikuje např. webový

prohlížeč tak, že odchozí port je náhodný a cílový port na vzdáleném počítači

je tradičně 80. V naší tabulce doporučení najdete vždy cílové porty!



Zcela samostatnou kapitolou jsou protokoly pro komunikaci v sítích Microsoftu.

Potřebné porty by měly být otevírány jen v lokálních sítích (tedy ne do

veřejného internetu!), a navíc ještě pouze pro komunikaci s důvěryhodnými

počítači. Protože potřebných portů je mnoho, nabízí většinou osobní firewall

volbu typu „lokální sítě Microsoft“, kterou spouštějte opravdu jen pro nanejvýš

důvěryhodné komunikační protějšky. Nezapomeňte, tudy útočil z internetu

Blaster, a jistě jej budou mnohé červy následovat!





Verdikt



Netřeba dále zdůrazňovat, proč je osobní firewall nezbytnou součástí každého

počítače, který je připojen do jakékoliv sítě. Na závěr si dovolíme ještě jedno

doplnění: neméně důležitou péčí o váš počítač je pravidelné aplikování

bezpečnostních záplat z dílny výrobce operačního systému. Pamatujete? Chyba

MS03–026 byla opravena v půli července, a až za měsíc červ Blaster udeřil! Máte

už potřebnou záplatu? 3 0525/FEL o







Jak nakonfigurovat osobní firewall



Na tomto místě naleznete podrobný návod pro konfiguraci osobního (personálního)

firewallu. Pro ukázku jsme vybrali dvě běžně rozšířená řešení: jedním z nich je

„Brána firewall pro připojení k internetu“, které je nedílnou součástí

operačních systémů Windows XP a Windows Server 2003, druhým pak aplikace

ZoneAlarm, jež patří mezi nejběžnější řešení, volně dostupná ke stažení z

internetu. Předvedené postupy lze (obzvláště dle ZoneAlarmu) velmi podobným

způsobem využít i u dalších produktů poměrně podobně se chovají např. Kerio

Personal Firewall či Sygate Personal Firewall.







Brána firewall pro připojení k internetu



1) Produkt není potřeba instalovat, neboť je součástí operačních systémů

Windows XP/Server 2003. Úvodním krokem pro jeho využití je vstup do rozhraní

Síťová připojení, kde zvolíme připojení, které budeme chránit. Typicky je to

telefonické připojení sítě, jež používáme ke komunikaci k poskytovateli

internetových služeb.



2) U vybraného připojení přejdeme pomocí pravého tlačítka myší na Vlastnosti a

zobrazíme kartu Upřesnit. V horní části této karty zapneme osobní firewall

zaškrtnutím příslušného pole. Tímto krokem jsme nastavili počítač tak, aby

povolil odchozí komunikaci a zabránil jakémukoliv přístupu zvenčí. Chceme-li

výslovně povolit vstup určitého typu komunikace směrem z internetu na náš

počítač, stiskneme tlačítko Nastavení v dolní části.



3) Na této kartě Služby můžeme povolit základní komunikační protokoly, jež jsou

potřebné pro elektronickou poštu, prohlížení webových stránek či využití služby

Vzdálená plocha. Parametry na této kartě platí pro příchozí komunikaci a nijak

neovlivňují vaši bezpečnost v opačném směru.



4) V tomto rozhraní lze přesně nadefinovat filtr pro konkrétní typ protokolu a

číslo portu, na němž komunikace bude probíhat.



5) Na kartě Protokolování zabezpečení lze konfigurovat způsob pořizování

záznamu o činnosti firewallu. Tato informace může být důležitá pro případné

řešení následků některých útoků.



6) Karta ICMP je určena k detailnímu nastavení specifické komunikace podle

stejnojmenného protokolu ICMP. Tato komunikace slouží k diagnostice, např. při

použití příkazů Ping či Tracert. Pokud tyto možnosti neznáte nebo jim

nerozumíte, pro jistotu služby nepovolujte a prostudujte si nápovědu.







Personální firewall ZoneAlarm 4.0 Freeware



1) Práci s programem Zone Alarm zahájíte jeho instalací.



2) Ihned po prvním spuštění programu aplikace nabídne průvodce pro tvorbu

základního nastavení. Máte možnost zkontrolovat výchozí vlastnosti a případně

některé parametry upravit.



3) V dalším kroku uživatel definuje způsob, jakým bude ZoneAlarm informovat o

své činnosti. Nechcete-li být obtěžováni, lze potlačit zobrazování varovných

zpráv.



4) Následující obrazovka nabízí otevření internetové komunikace pro základní

aplikace v tomto případě především webový prohlížeč. Pokud se základním výběrem

nejste spokojeni, můžete další aplikace přidávat pomocí pokročilého dialogu

(Advanced).



5) Pro základní funkci programu jsou všechny podstatné informace zadány, a

proto může následovat jeho spuštění.



6) Další možnosti konfigurace jsou dostupné ze základní obrazovky ZoneAlarmu.

Na kartě Firewall naleznete základní úrovně zabezpečení ve formě posuvníků, pro

dodatečnou konfiguraci zvolte tlačítko Advanced. Ve výchozím stavu je veškerá

příchozí komunikace na internetovém rozhraní blokována.



7) Pokud se jakýkoliv neprověřený program pokusí navázat komunikaci, firewall

zobrazí varování a dotáže se, zda chcete komunikaci přijmout či odmítnout, a to

pouze v tomto případě, nebo ve všech podobných situacích.





Zajímavé adresy



Chyba a záplata MS03–026

http://www.microsoft.com/se­curity/security_bulletins/ms03–026.asp



Stránky skupiny LSD

http://lsd-pl.net/



Stránky čínské skupiny Xfocus

http://www.xfocus.org/



Zavedená čísla portů určitých služeb

ftp://ftp.iana.org/assignments/port-numbers



Stránka o personálních firewallech

http://www.free-firewall.org/