Hlavní navigace

Sbíráme otisky: maskování

9. 3. 2006
Doba čtení: 3 minuty

Sdílet

Už jsme se naučili pozorovat, sledovat, zkoumat a vůbec provádět vzdálenou špionáž našich cílů. Na každou akci ale existuje protiakce. Dnes si tedy povíme o možnostech kontrašpionáže.

Asi už víte, proč chce někdo sbírat otisky, čili dělat fingerprinting. Obvykle je to proto, aby zjistil, co jste zač, nebo aby použil nějaký konkrétní útok, který účinkuje jen na některé systémy.

Upřímně řečeno v případě, že se k vám někdo dostat chce, existuje mnoho způsobů, jak získat potřebné informace. Častější jsou ale automatické masové útoky na stroje po celém internetu. Jedná se o naprosto anonymní záležitost a původce vlastně ani netuší, na koho útočí.

Obvykle je možno docela bez problémů provádět skeny rozsáhlých sítí a vytvářet si databáze pro pozdější použití. Existuje mnoho robotů, kteří systematicky procházejí internet a zjišťují, s kým mají tu čest. Jejich autor si během této práce sleduje bezpečnostní servery a vyčkává.

Jakmile se objeví nová kritická chyba, stačí sáhnout do databáze a na všechny aktuálně otevřené systémy nainstalovat backdoory. To je ta nejhorší možnost, každopádně se proti ní dá docela účinně bránit.

Automaty

Projekt IP Personality vytváří patch do Linuxu a IPtables, který umožňuje oblafnout poslední verze nmapu. Vyžaduje samozřejmě patchování jádra a dalších součástí systému.

Po nainstalování dokáže tento software masivně přenastavit celý IP stack tak, aby se tvářil jako IP stack jiného systému. Pracuje tak, že mění systém generování inicializační sekvence TCP, velikosti oken a další vlastnosti odchozích paketů.

Podobných řešení existuje více, ale všechny mají dvě nevýhody: Je potřeba patchovat jádro a do toho se mnoha uživatelům nechce. Druhou nevýhodou je velmi časté snížení výkonu takto nastaveného systému.

Ruční zásah

Existuje ale také docela zajímavá možnost ručního zásahu do parametrů systému, které způsobí něco podobného. Pochopitelně se nejedná o tak rozsáhlé změny a možnosti této metody jsou omezené, ale často to může stačit.

Předvedu konkrétní akci, která umožňuje jednoduše změnit nastavení systému. Na testovaném stroji bylo jádro 2.4.26. Za normálních okolností jsem aktivním fingerprintem zjistil následující:

OS details: Linux Kernel 2.4.0 - 2.5.20 

Pasivní fingerprint je jako obvykle skoupý na informace, ale řadu kernelu určil také správně:

192.168.1.12:36013 - Linux 2.4 (local) (up: 2 hrs) 

Provedeme tedy několik zásahů do nastavení TCP stacku. Samozřejmě je potřeba mít dostatečná práva (čili roota).

$ echo 128 > /proc/sys/net/ipv4/ip_default_ttl
$ echo 0 > /proc/sys/net/ipv4/tcp_window_scaling
$ echo 0 > /proc/sys/net/ipv4/tcp_timestamps 

První příkaz změní hodnotu TTL u odesílaných paketů. Standardně Linux používá 64, my ovšem jádro nastavíme tak, aby se tvářilo stejně jako MS Windows.

Druhá volba vypne podporu TCP oken větších než 64K. Obvykle je tato podpora v Linuxu zapnuta, aplikace nejsou omezeny 16b velikostí bufferu a mohou vytvářet větší okna.

Poslední nastavení vypne TCP rozšíření timestamp podle RFC1323.

Výsledek takto jednoduchého zásahu je překvapivě účinný. Aktivní fingerprint se nechal zmást poměrně slušně a označil systém jako

OS details: Linux 2.4.7 (X86) 

To je samozřejmě úplně špatně a může to způsobit naprosto chybný a neúspěšný útok, který bude cílen na jádro staré několik let.

V případě méně přesného pasivního fingerprintingu byly ovšem následky naprosto fatální a stalo se to, co se stát mělo:

192.168.1.12:36056 - Windows XP SP1, 2000 SP4 (3) 

Ještě můžete zkusit třeba

$ echo "60" > /proc/sys/net/ipv4/ip_default_ttl 

Což způsobí lehce modifikovaný výstup:

192.168.1.12:36414 - Windows 98 (4) 

Doufám, že na mě Microsoft nepřijde, aby zkontroloval licenci na jejich operační systém.

CS24_early

Přesnost je pochopitelně dána jednak samotným aktivním/pasivním přístupem, ale také komplexností nmapu, který jsem použil v prvním případě. Ten kontroluje dlouhou řadu různých parametrů a nedá se tak jednoduše ošálit. Jak ale vidíte, výhled se mu zamlžit podařilo.

Pravděpodobně by pomohla komplexnější sada příkazů, která by toho změnila víc. Jako ukázka obrany to myslím stačí.

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