Hlavní navigace

Sbíráme otisky: úvod

23. 2. 2006
Doba čtení: 4 minuty

Sdílet

Existuje mnoho důvodů, proč se snažit zjistit verzi operačního systému vzdáleného počítače. Stejně tak existuje i mnoho způsobů. Tím nejúčinnějším je metoda, kterou nazýváme fingerprinting.

Historie

Dřívě bylo poměrně běžné, že když jste se připojili ke vzdálenému stroji, okamžitě vám o sobě „vykvákal”, co mohl. Dozvěděli jste se verzi systému, jádra, ale třeba i název a označení příslušného serveru, který obsluhuje vaše spojení.

Dříve to bylo poměrně příjemné pro běžného uživatele, který tak hned věděl, s kým má tu čest. V dobách různých systémů a rozdílných příkazů to bylo potřeba. Zároveň je to ovšem velmi šikovná pomůcka pro zlé hochy, kteří chtějí zjistit, co na svém počítači provozujete a kterou díru mohou využít.

Díky tomu se už dnes s častým rozkřikováním takových informací nesetkáte. Záměrně jsem nenapsal „vůbec”, protože si pořád ještě můžete na mnoha strojích tímto způsobem verze zjistit.

Pokud ne, přicházejí na řadu další metody, jako například metoda otisků, čili fingerprintů.

Co to je fingerprint?

Tak jako člověk na všem zanechává svůj jedinečný otisk, tak i operační systémy posílají kolem sebe informace, které je mohou snadno odhalit. Ačkoliv se to na první pohled nezdá, není na tom v principu nic složitého. Jak je to možné?

TCP/IP je poměrně pevně stanovený protokol, ale některé jeho části nejsou přesně definované. To dává programátorům operačních systémů jistou volnost, která vede k nekonzistenci jednotlivých řešení. Různé systémy tak reagují na vzniklé situace různými způsoby.

Pochopitelně za normálních okolností musí docházet ke správné a přesně stanovené komunikaci, jinak bychom se nedohodli, ale existuje řada případů, kdy dokážeme navodit neočekávanou situaci a vyloudit ze systému reakci. Podle ní můžeme odhadnout, o jaký systém se jedná.

K čemu je nám to dobré?

Jak už jsem naznačil, je možno tak zjišťovat informace potřebné pro napadení konkrétního stroje. Bezpečnostní díry se často vztahují na konkrétní verze software na konkrétních verzích operačních systémů. Útočník se tak může celkem v klidu zaměřit na jednu aktuální díru, nechat si proskenovat pár tisíc strojů a zjistit, které z nich jsou potencionálním cí­lem.

Zároveň je možno využít metodu otisků pro zjištění informací pro útok sociálním inženýrstvím. Stačí zjistit, že nějaká velká firma používá na svých strojích Solaris a při troše šikovnosti můžete nakráčet v montérkách s logem Sun na hrudi přímo do serverovny.

Abychom ale jen nepropagovali internetové zločiny, musíme uvést také legální využití. Chcete-li například zjistit, jestli na web hostingu vašeho providera skutečně běží propagované BSD, jsou otisky ideální cestou. Naopak pokud vás někdo chce získat jako administrátora Unixu a vy zjistíte, že všechny její servery jedou na MS Windows, je lepší vyklidit pole.

Rovněž správcům sítí se mohou otisky hodit. Pokud potřebují najít v síti vetřelce nebo odhalit počítač, který by v ní neměl být. Velmi často tuto metodu používají internetoví poskytovatelé, aby zabránili sdílení linek koncových uživatelů.

Jak to funguje?

Kupodivu velmi dobře. V první fázi je potřeba znát konkrétní problémy vyhledávaných systémů. Je potřeba sledovat TCP stack a hledat odchylky. Čím více jich známe, tím přesněji dokážeme určit cílový operační systém. Nemusíte se ale bát, že prosedíte hodiny nad čtením zdrojových kódů a posílání paketů. To už za vás udělali autoři jednotlivých skenerů.

Asi vás bude zajímat, jak to celé probíhá konkrétně. Malý příklad bude nejjednodušší a nejnázornější:

Velmi často se například využívá chybně odeslaný paket FIN, který se za normálních okolností posílá při ukončení spojení. My ovšem FIN pošleme na otevřený port jen tak, bez předchozí přípravy. Vlastně rovnou na začátku řekneme, že chceme končit a budeme poslouchat, co se ozve. Podle RFC 793 se na takový paket neodpovídá a korektně napsané systémy to tak také dělají. Některé jiné, jako například MS Windows, BSDI, CISCO, HP/UX, MVS a IRIX, pošlou zpět paket RESET ve snaze napravit chybu, která vznikla pravděpodobně někde na trase. Máme tedy první záchytný bod a určili jsme první skupinu systémů.

Pochopitelně by nám tato jedna metoda nestačila a musíme proto znát mnoho dalších. Na jejich správném použití pak závisí přesnost výsledku.

Odhalí mě?

Protože je tento systém velmi agresivní, existuje jednak šance, že se správce zařídí tak, aby nebylo možno jej použít, a zároveň si systém může pokusy o zjištění logovat. Naštěstí pro nás je ovšem takových skenů prováděno mnoho denně, a tak je nepravděpodobné, že by správce každý pokus o zjištění systému hlídal.

Mnohem pravděpodobnější je ovšem snaha podobné pokusy přímo omezit, ať už počtem spojení uskutečněných za časové období nebo přímou detekcí těchto pokusů. V prvním případě je možno u většiny skenerů prodloužit interval mezi jednotlivými pokusy, ve druhém je situace horší, ale ne beznadějná. Způsoby obrany se budeme zabývat někdy příště.

Pasivní a aktivní fingerprinting

Celou dobu hovoříme o takzvaném aktivním fingerprintingu, který vyžaduje naše aktivní zásahy do komunikace a čtení z odpovědí. Existuje ovšem také další forma zjišťování otisků, které se říká pasivní fingerprinting.

Už z názvu je patrné, o co přibližně jde. Skener, který využíváme, neodesílá aktivní požadavky, ale spolehne se jen na to, co kolem něj proběhne. Sleduje tudíž standardní komunikaci mezi námi a cílovým strojem.

root_podpora

Jelikož se aktivně neúčastní, má pasivní skener několik výhod a nevýhod. Jednak je naprosto nezachytitelný a komunikaci není možno omezit. Cílová strana ani netuší, že je skenována. Nevýhodou je pochopitelně menší přesnost, protože nelze vyvolávat nestandardní situace. Pro obecný obrázek o systému to ovšem postačí.

Závěrem

Vysvětlili jsme si, k čemu je sbírání otisků dobré a jak jej můžeme využít. Pokusil jsem se nastínit některé metody, které se při něm používají. Příště si ukážeme něco o sebeobraně. V následujících dílech si ukážeme jednotlivé utility a naučíme se je ovládat tak, abychom otisky přečetli.

Byl pro vás článek přínosný?

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í.