Jak se asi „hackovala” hesla z e-mailu Seznamu

14. 4. 2006
Doba čtení: 10 minut

Sdílet

Českými médii proběhla kauza o prolomení ochrany Seznamu a odcizení databáze hesel. Seznam se brání tím, že šlo jen o lokální sniffing jednoho studenta. Pojďme si ukázat, jak podobný útok vypadá v praxi. Skutečně nejde o nic složitého.

Nepřísluší mi celou kauzu nějak soudit, ale známá Occamova břitva říká, že nejjednodušší řešení problému bývá obvykle tím správným. Jelikož sniffing není nic složitého, s největší pravděpodobnosti se jen v médiích dělá z komára vrtulník.

Pokud netušíte, jak to mezi Seznamem a Novou bylo, podívejte se na Management blog na Lupe nebo přímo na Lupu (zprávička a rozbor). O problému psal i Ivo Lukačovič na svém blogu. My se budeme zabývat technickými detaily celého „útoku”.

Právní důsledky neoprávněného odposlouchání sítí

Tento text popisuje obecně známá fakta a software s ohledem na zmíněnou kauzu a má pouze informační charakter. Za jakékoliv zneužití odposlouchávání počítačové sítě ponese případný hříšník patřičné právní důsledky. Dodatečně jsme získali vyjádření k problematice neoprávněného odposlouchávání od JUDr. Jána Ma­tejkyÚstavu státu a práva Akademie věd České republiky.

Obecně je třeba vycházet zejména ze skutečnosti, ze odposlech obecně (nikoliv jen počítačové komunikace, ale i např. telefonického hovoru) soukromých osob soukromými osobami nemusí být sám o sobě trestným činem (může však jít o přestupek, případně o správní delikt). Uvedené však pochopitelně neznamená, že odposlech nelze nikdy považovat za trestný. V případě, že by toto činila osoba se zvláštním právním postavením (např. veřejný činitel), tak by v některých případech mohlo jít např. o zneužití pravomoci veřejného činitele. Pokud například policista podezirá manželku z nevěry a nasadí na ní zpravodajské (pracovní) prostředky, spáchá evidentně trestný čin. Pokud však udělá to samé, avšak pomocí vlastních (soukromých) prostředků (např. prostřednictvím volně odhozeného avšak záměrně zapnutého mobilního telefonu či v počítači nainstalovaného programu), o trestný čin jít nemusí. Jiná věc je, zda vůbec a do jaké míry, by mohlo být toto jednání mohlo být úspěšně žalováno soukromoprávní cestou. Patrně mohlo, a patrně i úspěšně, avšak vraťme se k trestnosti uvedeného počínání.

Jedna věc jsou případy, že je něco neoprávněně (tj. bez souhlasu dotčených subjektů) odposloucháváno či monitorováno, druhá pak, jak je s takto získanými údaji nakládáno. Zcela jinou (právní) kategorii pak mohou představovat takové případy, kdy je v rámci takovéhoto odposlechu nakládáno s osobními údaji (např. emailem), případně jsou tyto údaje dále (byť z nedbalosti) zpřístupněny či zpracovávány. V takovém případě může již jít o jednání naplňující znaky trestného činu Neoprávněné nakládání s osobními údaji dle §178 trestního zákona. V případě, že je tímto jednáním rovněž úmyslně získán přístup k nějakému nosiči informací (např. emailové schránce), přičemž skutečně dojde k neoprávněnému užití těchto informací (např. četba soukromé korespondence), může jít o trestný čin Poškození a zneužití záznamu na nosiči informací dle §257a Trestního zákona, případně některých dalších trestných činů (§239, apod.).

Našim úkolem je ukázat, že hesla postižených uživatelů mohl poměrně snadno odcizit místní student, se základními znalostmi o počítačových sítích. Na úvod si vysvětlíme několik pojmů a řekneme pár základních údajů a informací. Znalci prominou.

Co je to sniffing a jak funguje

Sniffing je velmi jednoduchá metoda odposlouchávání počítačové sítě. Není k ní potřeba žádná náročná technika hodná pana Bonda, poslouží vám běžný počítač k odposlouchávané síti připojený. Pro přesné pochopení problematiky musíme začít trochu zeširoka.

Ethernetová síť šíří data ve vlastních rámcích (paketech), které označuje MAC adresou příjemce a odesílatele. Tyto adresy jsou vypáleny do pamětí síťových zařízení. Nemělo by tedy docházet k tomu, že se na síti objeví dvě zařízení se stejnou MAC adresou. Pokud kolem karty procházejí pakety s cizími MAC adresami, karta je ignoruje. Jakmile přijde něco pro nás, karta to podle své MAC adresy pozná a data předá operačnímu systému.

Toto je běžný stav na síti. Váš počítač přijímá data pouze pro vás, protože jej od zbytku sítě dělí hardwarová vrstva obvykle v podobě síťové karty. Většina síťových karet je ovšem schopná se přepnout do takzvaného promiskuitního režimu, kdy se filtr jednoduše vypne a karta pouští do systému naprosto vše. Prý existují i karty, které tento režim nepodporují, ale osobně jsem se s žádnou takovou nesetkal.

Když se budete snažit zjistit, proč některá zařízení na síti nedobře komunikují, přijde vám promiskuitní mód docela vhod. Stejně dobře se ovšem hodí k nekalému sledování provozu.

Jan sniffovat v praxi

Bohužel je to až směšně snadné. Utilitek je k tomuto účelu na internetu celá řada. My si povíme o dvou programech – konzolovém dsniffu a grafickém Etherealu.

Dsniff

Pravděpodobně nejběžnějším balíkem pro tyto účely je sada utilit s názvem dsniff. Již mnoho let je běžnou součástí mnoha distribucí a není problém jej získat ze stránek projektu.

Obsahuje řadu aplikací pro různé účely, my si zatím povíme jen o té hlavní, kterou je dsniff. Jedná se o poměrně dobře napsaný software, který je doplněn dávkou inteligence a schopností rozeznat slušnou řádku protokolů. Přesně řečeno zpracovává: FTP, Telnet, SMTP, HTTP, POP, poppass, NNTP, IMAP, SNMP, LDAP, Rlogin, RIP, OSPF, PPTP MS-CHAP, NFS, VRRP, YP/NIS, SOCKS, X11, CVS, IRC, AIM, ICQ, Napster, PostgreSQL, Meeting Maker, Citrix ICA, Symantec pcAnywhere, NAI Sniffer, Microsoft SMB, Oracle SQL*Net, Sybase a Microsoft SQL. Nezahltí vás tedy hromadou binárních dat, ale pěkně v klidu útočníkovi sdělí jen to, co skutečně potřebuje, tedy heslo.

Ukázka bude pravděpodobně nejzajímavější. Na pokusném stroji jsem si připravil POP3 klienta, kterého jsem nakonfiguroval na POP3 server Seznamu. Stejně dobře je ale možno použít naprosto libovolný stroj, který nabízí protokol POP3.

Na jiné mašince jsem pak jednoduše pustil dsniff. Pak stačilo jen „vybrat poštu” a objevil se výpis:

root@geralt:~# dsniff
dsniff: listening on eth0
-----------------
04/13/06 12:53:18 tcp 192.168.1.1 -> pop3.seznam.cz.110 (pop)
USER uživatel
PASS heslo 

Podobně by útočník mohl postupovat i v případě ostatních protokolů.

Ethereal

Pro začátečníky je k dispozici rovněž velké množství grafických utilit. Za ně můžeme zmínit třeba Etheral, který by dokázala při troše štěstí obsloužit i vaše babička. Ethereal je běžnou gtk aplikaci, která může nabídnout široké možnosti filtrace odposlechnutého provozu.

Udělal jsem stejný pokus jako s dsniffem, ale tentokrát jsem se připojil k webovému rozhraní. Podle všeho je Seznam proti obyčejnému odposlechu chráněn přenáším hesel pomocí SSL. Pokud SSL v prohlížeči vypnete, aplikace vám nedovolí se přihlásit. Jednoduchý sniffing útočníkovi už proto nevyjde.

Nenechal jsem se ale odradit a zkusil jsem totéž na webmailu u Volného. Zkusil jsem si zadat pokusné uživatelské jméno franta.cecvarek a jako heslo jsem použil slovo tucnak.

Spustil jsem skenování a přihlásil jsem se. Po odmítnutí uživatele a hesla (pochopitelně neexistuje) Ethereal ukazoval tuto statistiku:

Ethereal1

Stopnul jsem záznam a začal hledat správný paket. Netrvalo dlouho a našel jsem ho:

Ethereal2

Problémy při sniffování

Znalce určitě napadlo několik důležitých překážek, které by podobné pokusy měly útočníkovi překazit. Nic ale není ztraceno a na každou obranu existuje protiútok. Záleží jen na tom, jak moc se bude „vtipálek” snažit, jak je šikovný a jak moc bude chtít hesla získat. Popíšeme si některé problémy, které by jej mohly potkat.

Práva

Na běžném stroji třeba na školní síti asi nebude mít útočník dostatek prostoru k tomu, aby sniffing začal provozovat. Přece jen jsou k němu potřeba rootovská práva. Ta je ovšem možno získat pomocí nějakého exploitu nebo může využít špatně zabezpečeného stroje s MS Windows, kde běží vše pod účtem administrátora.

Další možností je přinesení vlastního notebooku, který dnes vlastní každý druhý student. Tam už s právy problém nebude.

Třetí řešení nabízí třeba live distribuce. Nabootovat je možno z diskety, CD nebo flash disku. Pokud si útočník stáhne takovou, která mu nabídne všechny potřebné nástroje, má vyhráno a nemusí se ohlížet na nastavení místních strojů.

Switche

Výraznějším problémem by ovšem mohla být síťová infrastruktura. V případě, že jsou v síti huby, je po problému a je možno sledovat celou komunikaci. Dnes jsou ovšem běžně nasazovány switche, které jsou inteligentnější a směrují provoz přímo podle MAC adres, takže k cílovému stroji dorazí opravdu jen to, co mu patří.

Ani tady ale není vše ztraceno a útočník má vlastně tři možnosti:

Zaprvé se může pokusit získat přístup na nějaký páteřní router a tam sledovat, co přes něj chodí. Pokud je správce dost velký diletant a neaktualizuje dostatečně často, stačí použít nějaký novější exploit.

Druhou možností je použít další router, který si útočník přinese. Když už jsme zmínili notebook, bude stačit, když jej zapojí před router a nechá veškerý výstupní tok téct přes něj. Pokud v něm má jen jednu síťovku, druhou může zasunout třeba do PCMCIA. Nacvaknutí konektorů je otázkou chvíle.

Konečně nejpohodlnější je prostě switch zmást a nechat si posílat kompletní komunikaci určenou pro někoho jiného. Metoda se nazývá ARP poisoning, čili otrávení ARP tabulky. Tu si vytváří operační systém a ukládá do ní IP adresy počítačů, ke kterým přiloží jejich ARP adresy. Když pak chce komunikovat s IP 192.168.1.1, vyšle do Ethernetu všeobecný dotaz, příslušný stroj mu odpoví, on si uloží jeho MAC a dál už komunikuje s touto MAC adresou.

ARP poisoning funguje tak, že přesvědčí cílový stroj, že ten, s kým chce komunikovat (v našem případě páteřní router), má jinou MAC adresu (samozřejmě tu útočníkovu). Veškerá komunikace na tento router je pak směrována jinam a je možno ji odposlechout. Pak ji odposlouchávač klidně pomocí iptables přesměruje na správný stroj. Techniku zvládá třeba utilita arpspoof, která je součástí už zmíněného balíku dsniff.

Šifrování

Tady je na první pohled docela velký problém. Šifrovaná data je možno poslouchat stejně, ale asi se z nich útočník moc nedozví. Existuje ale účinná metoda s názvem phishing neboli česky rhybaření.

Už jsme si ukázali, že je možno přesměrovat komunikaci přes jiný počítač. Buďto je možno využít ARP poisoning nebo prostě přidat třeba notebook před router. Když už útočník nějakým způsobem přesměrovává komunikaci přes sebe, může toho využít a začít si hrát na muže uprostřed (útok Man-in-the-middle). Nejen že může komunikaci sledovat, ale může ji i patřičně upravovat.

Opět si naznačíme postup s pomocí běžných nástrojů. Existují i specializované balíky, které za letu podvrhují falešné SSL certifikáty, ale je možno se se bez nich docela dobře obejít. Jakmile jde všechna komunikace přes cizí stroj, není problém ji přesměrovávat. K tomu poslouží opět iptables, které otočí směr toku paketů tak, aby směřovaly rovnou do falešného routeru, který bude vše vyřizovat.

Útočník přesměruje veškerou průchozí komunikaci, která by měla dojít na www port stroje seznam.cz, zpět na svůj notebook. Tam si zprovozní web server, na kterém poběží kopie titulní strany originálního webu, ovšem bez SSL. Do ní uživatel normálně napíše své jméno a heslo. Server pak už jen vše automaticky vyplní do originální stránky, nechá komunikaci pokračovat a bude vše zprostředkovávat za uživatele. Hesla samozřejmě uloží.

bitcoin_skoleni

Stejným způsobem je možno obejít SSL například u POP3 nebo IMAPu. Bude k tomu opět stačit jednoduchý server, který naváže komunikaci na druhé straně a bude ukládat hesla. E-mailový klient bude pravděpodobně na portu šifrovaného POP3S (port 995) očekávat šifrování, útočník si ale může nějaký certifikát klidně vygenerovat. Běžný uživatel stejně netuší, k čemu by měl sloužit, a tak těžko ověří fingerprinty.

Závěr

Bohužel odposlech hesel ve stávajícím prostředí je až extrémně snadný a nejde o žádné hackování ani jinou náročnou činnost. Seznam začal po předchozích zkušenostech masivně nasazovat SSL a pravděpodobně se bude dál snažit o zlepšení ochrany hesel putujících po síti. Zmíněná kauza jen poukázala na dlouhodobý problém, který může ohrozit každého uživatele a druhotně i provozovatele služby. Můžeme tedy doufat, že všichni poskytovatelé nabídnou patřičná vylepšení, která takto snadnému odposlouchávání hesel zabrání.

STB2

Velká velikonoční soutěž o set-top-boxy

Zajímá vás digitální vysílání? Chcete sledovat televizní programy v digitální kvalitě? Pak se zúčastněte Velké velikonoční soutěže společnosti Internet Info, vydavatele serveru DigiZone.cz, a vyhrajte jeden z deseti set-top-boxů. Kvůli velikonoční výslužce už není nutné mlátit holky! Stačí správně odpovědět na soutěžní otázky a počkat na slosování výherců. Pokud nevyhrajete, nezoufejte. DigiZone.cz spustil internetový obchod se set-top-boxy, kde si určitě vyberete ten správný přijímač.

Používáte sniffery?

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.