Čmucháme s Etherealem. Zjistěte, jaká data putují přes vaši počítačovou síť!

5. 12. 2007

Sdílet

Odborníci na ochranu dat při dotazech, týkajících se možností sledování provozu v počítačové síti, jen lomí rukama. My vám v tomto článku předvedeme, jak se analýza provozu v počítačové síti dělá. Využijeme k ní utilitu Ethereal.

Pomocí programu Ethereal přesně uvidíte, které datové pakety procházejí přes vaši síťovou kartu, jaký mají obsah a na který server putují. To se hodí například tehdy, pokud chcete testovat, zda nějaký program neodesílá z vašeho počítače za vašimi zády nějaká data, a pokud ano, pak kam tato data putují. Program však smíte použít pouze k testování funkčnosti své sítě, odposlouchávání provozu počítačové sítě je podle všech pravidel ilegální.

1.Jak probíhá jednoduchá kontrola počítačové sítě

Programy pro sledování provozu počítačové sítě (anglicky se jim říká sniffery) jako Ethereal dokáží číst data obsažená v síťových paketech. Pomocí těchto programů se dá nalézt chyba v počítačové síti, můžete se dozvědět více o síťových protokolech nebo třeba odhalit programy, které odesílají data z počítače, aniž by o tom jeho uživatel vůbec věděl. Což o to, neoprávněnému odesílání dat z počítače nebo pokusům o napadení počítače zvenčí se dá zabránit použitím osobního firewallu, například Zone Alarmu či firewallu zabudovaného ve Windows XP. Na druhou stranu žádný firewall nikdy nezjistí, která data se vlastně přesně odesílají. Kromě toho firewall nepomůže ani u programů, jež tak či tak slouží k odesílání nebo přijímání dat na internet a z internetu. Například programy typu Instant Messenger nebo internetové prohlížeče přenášejí prakticky libovolná data, aniž by firewall vyvolal nějaký poplach. A to je přesně ono slabé místo, jehož s oblibou využívá spyware. Ten například používá pro přenos shromážděných dat třeba Internet Explorer.

2.Některé utility se dají sledovat těžko

Když chcete učinit přítrž nesrovnalostem při přenosu dat, je nutné použít skutečně důsledné ochranné prostředky a pak analyzovat, jaká data se na který počítač rozesílají. Program pro sledování provozu sítě se v tomto případě umístí tak, aby mohl sledovat veškerou komunikaci, a zaznamenává všechny odeslané a přijaté pakety. Získaný datový proud pak lze kousek po kousku pomocí speciální utility rozebrat a zjistit, zda nějaký program například neodesílá z našeho počítače nějaká data bez povolení.

3.Základy sledování provozu počítačové sítě
Každý program pro sledování provozu počítačové sítě se skládá z několika částí:
Zaznamenávání: Ovladač pro sledování síťového provozu se vnoří do ovladače síťové karty nebo telefonického připojení sítě a způsobí, že se od této chvíle budou všechny odeslané a přijaté pakety zároveň ukládat do mezipaměti. Pomocí řady filtrů se může program pro sledování síťového provozu nastavit tak, že má zaznamenávat pouze některé parametry, například použitý síťový protokol, port protokolu TCP, popřípadě cílovou adresu paketu, což jsou údaje pro většinu účelů naprosto dostatečné. Vzhledem k tomu, že u sítě s rychlostí 100 Mbit/s se za jednu sekundu může odeslat až 144 000 paketů, je pro zaznamenávání provozu v síti nutný výkonný počítač.
Analýza: Modul pro analýzu dat zkoumá jednotlivé pakety a hledá v nich chyby, které při přenosu nastaly, nebo ty, které by mohly posloužit hackerům. Většina útoků na počítače totiž probíhá stále podle stejného vzoru například pomocí skenování portů. U profesionálních, ale velmi drahých programů pro sledování sítě probíhá tato analýza v reálném čase. To ale samozřejmě předpokládá vlastnictví velmi výkonného počítače.
Dekódování: Nejdůležitějším krokem při sledování provozu sítě je bezesporu zjišťování obsahu paketů. Sniffer je při této operaci rozdělí tak, aby od sebe uživatel dokázal rozlišit jednotlivé části, a to aniž by přesně věděl, které bajty například u paketu TCP/IP odpovídají cílovému portu. Propracovanější systémy dokáží pro určitou IP adresu pomocí dotazu na službu DNS zjistit jméno hosta (jméno počítače v síti nebo jméno internetového serveru) a v případě potřeby znovu spojí několik paketů dohromady do datového proudu. To uživateli ušetří zdlouhavé vyhledávání sekvenčních čísel v proudu dat, stejně jako následné řazení odpovídajících paketů k sobě.

4.Program pro sledování síťového provozu v praxi
Programy pro sledování síťového provozu (v tomto případě se nazývají Protocol Analyzer) nacházejí uplatnění zejména ve velkých sítích. Jejich úkolem je pomoci uživatelům odhalit v jejich systémech slabá místa nebo chyby. Z tohoto důvodu jsou podobné aplikace vybaveny řadou funkcí a možností pro správu, například možnostmi rozčlenění datového provozu podle protokolů, odesílatelů/příjemců, stejně jako možnostmi pro provedení analýz trendů a utilit pro automatické rozpoznávání chyb. Tyto dodatečné funkce samozřejmě mají svoji cenu. Například výkonný program pro sledování a analýzu protokolů s rozdělenými klientskými moduly například stojí 5 000 eur. Možnosti těchto programů samozřejmě překračují to, co obyčejný uživatel může na jediném svém počítači nebo v malé síti potřebovat. K tomu, abyste zjistili, zda nějaký program bez povolení odesílá data do internetu a pokud ano, tak jaká, nepotřebujete složité utility pro analýzu. Pro dekódování rovněž nebudete potřebovat podporu pro všechny dostupné protokoly, jako například poněkud exotický Decnet. Vzhledem k tomu, že výrobci těchto aplikací většinou nedodávají na trh odlehčené varianty svých drahých produktů, nezbývá než se poohlédnout po freewarových nebo sharewarových utilitách, které tuto mezeru na trhu v současné době vyplňují.
Nejpopulárnějším programem (možná i proto, že je zdarma) je utilita Ethereal (na našem CD vám ji nabízíme ve verzi 0.10.14) . Je určena pro Windows 98/ME, NT4, 2000 a XP, můžete ji rovněž stáhnout na adrese www.ethereal.com jako soubor ETHEREAL-SETUP-0.10.14.EXE o velikosti 12 MB.

5.První kroky s Etherealem
Nyní vám na příkladu Etherealu předvedeme první kroky, které musíte podniknout, abyste mohli úspěšně sledovat provoz v počítačové síti, například za účelem odhalení programu typu Phone Home (to je program, který se sám připojuje k serveru svého výrobce, aby na něj například zasílal data o svém využívání, registraci apod.) či k prozkoumání připojení pomocí protokolu IP, jejichž původ vám není jasný.
Než budete Ethereal instalovat, musíte si stáhnout zdarma dostupný ovladač Winpcap. Jeho verzi 3.1, určenou pro Windows 95/98/ME, NT4, 2000 a XP, naleznete na našem CD jako soubor WINPCAP_3_1.EXE o velikosti 456 KB, popřípadě na internetové adrese http://www.winpcap.org. Tato utilita dokáže přečíst všechna data procházející síťovou kartou (viz Co dokáže Winpcap). Tato data následně využívá Ethereal pro analýzu.
Nejprve prověříme síťový provoz týkající se dat, která přicházejí do našeho počítače ze sítě. Tento provoz způsobují všechna otevřená okna internetového prohlížeče a další aplikace, jako například programy pro práci s elektronickou poštou nebo programy typu Instant Messenger. Programy tohoto typu by tedy měly být vypnuty.
Spusťte Ethereal a v menu Capture klepněte na položku Options. V dialogovém okně vyberte u políčka Interface síťovou kartu nebo telefonické připojení sítě. Pokud se vám bude zdát standardně nastavená hodnota pro paměť (v poli Buffer size) příliš nízká, můžete ji zvětšit. Udává velikost bufferu ovladače Winpcap. Vyšší hodnotu doporučujeme zadat zejména u sítí s extrémním provozem, ale zpravidla vyhoví implicitní nastavení. Vzhledem k tomu, že všechny pakety potřebujeme celé, ponecháme nezaškrtnutou položku Limit each Packet to. Zatím nebudeme používat žádný filtr k filtrování zaznamenávaných dat (položka Capture Filter). V poli Display Options nedoporučujeme zatrhávat položku Update list of packet in real time, jinak Ethereal spotřebuje příliš mnoho systémových prostředků jen k tomu, aby zobrazil obsah každého paketu.

6.Začínáme se sledováním provozu
Po klepnutí na tlačítko Start zahájí Ethereal automaticky sběr dat. Pokud nás zajímá pouze běžný provoz na síti, necháme program jednoduše několik minut běžet. Mezitím se v informačním okně programu objevují informace o zaznamenaných síťových paketech a také informace o tom, ke které skupině protokolů patří. Po chvíli klepněte na tlačítko Stop, čímž se sledování provozu na síti zastaví a Ethereal zobrazí všechny nasbírané pakety uspořádané do tabulky. V závislosti na architektuře sítě a na počtu stanic v ní se v seznamu objeví celá řada pravidelně se opakujících paketů. Jedná se o dotazy typu ARP (Address Resolution Protocol), jež zjišťují, která IP adresa patří k MAC adrese (Media Access Control) síťové karty. Je-li součástí sítě směrovač, naleznete zde i pakety, sloužící k výměně informací o směrování. Navíc počítače s operačním systémem Windows často posílají zprávy typu Browser nebo Potential Browser, jimiž se v síti dorozumívají.

7.Podrobnější analýza síťového provozu
V našem případě vidíme jednu podezřelou věc: jedna stanice pravidelně vysílá pakety NetBIOS over IPX (viz obrázek). To je přinejmenším zvláštní, protože protokol IPX je poměrně zastaralý a obvykle se již dnes nepoužívá. Ethereal navíc pro tento paket zobrazuje pouze IPX adresu odesílatele. Některý z počítačů je tedy špatně nakonfigurovaný. Pátrejme dále!
Pokud v tabulce klepnete na libovolný paket, objeví se ve spodní části okna jeho obsah. V něm je nejzajímavější částí ta, jež se nachází pod položkou IEEE 802.3 Ethernet. Klepnutím na znaménko + úplně vlevo se otevřou jednotlivé části paketu a vy zjistíte MAC adresu odesílatele.
Po klepnutí pravým tlačítkem na řádek s adresou odesílatele se otevře kontextové menu, ze kterého můžete přímo nastavit filtrování obsahu. Vzhledem k tomu, že vás nyní zajímají všechny pakety, které přišly nebo odešly během komunikace s tímto počítačem, vyberte položku Apply as Filter, Selected. Ethereal následně zobrazí všechny pakety odeslané ze zadaného počítače, což ještě upřesníte filtrem eth.addr == <adresa>.

8.Vyloučení rušivých elementů a vyhledání počítače
Máme štěstí a v seznamu jsme nalezli ještě dva pakety typu Browser, pomocí nichž nyní získáme další informace o hledaném počítači. Tyto pakety mimo jiné obsahují i jména počítačů v síti, nastavená ve Windows. V našem případě se jedná o počítač ZOUBEK, který se nachází ve skupině DOMA. S těmito údaji už lze tento počítač v našem případě se jednalo o špatné nastavení sítě snadno vyhledat a jeho konfigurace opravit.

9.Filtrování datového provozu na základě kritérií
Nebudete-li datový provoz filtrovat vůbec, získáte informace o všech paketech. Tyto informace jsou však užitečné jen málokdy. Pro odfiltrování paketů vysílaných z určité IP adresy a IP broadcastů (pakety vysílané hromadně na všechny stanice v síti), které vás zajímají, vám postačí Capture Filter, do něhož zadáte zdrojovou nebo cílovou adresu IP (ale pouze jednu z těchto adres). Otevřete dialogové okno Capture Options (klepnutím do menu Capture/Options) a vedle tlačítka Capture Filter zadejte výraz:
host <IP-adresa>
Výraz <IP-adresa> nahraďte IP adresou síťové karty, u níž chcete zaznamenávat provoz v našem případě IP adresou vašeho počítače. Pokud získáte během zaznamenávání podezření, že něco není v pořádku, můžete filtrování ještě zpřísnit, abyste získali skutečně jen ta data, která potřebujete. Například následující příkaz zachytí pouze pakety, které putují ven a dovnitř a patří počítači s danou IP adresou, přičemž se zaznamenává komunikace probíhající na portu 80 (protokol HTTP jedná se o datové pakety internetového prohlížeče).
host <IP-adresa> and tcp port 80

10.Sledování přenosu elektronické pošty v počítačové síti
Komunikace pomocí nejrůznějších internetových protokolů jako POP3, SIP, SMTP nebo FTP probíhá přes počítačovou síť nešifrovaně. Ačkoliv dnes řada serverů pro práci s elektronickou poštou (a to i takové, které poskytují e-mailové schránky zdarma) nabízí šifrovaný přenos dat, jen málo uživatelů této možnosti využívá.
Může se docela snadno stát, že nějakému hackerovi uživatel ulehčí práci, protože existují osoby, které používají stejná hesla pro přihlašování k soukromé i firemní e-mailové schránce, nebo vyřizují firemní záležitosti přes svou soukromou e-mailovou schránku. Když chcete zjistit, zda uživatel používá pro přihlašování pomocí elektronické pošty nešifrované připojení, stačí jednoduchý Capture Filter ve tvaru:
tcp port 110 or tcp port 25 or tcp port 143
Tímto příkazem Ethereal zobrazí komunikaci probíhající na třech nešifrovaných portech, používaných pro elektronickou poštu: POP3, SMTP a IMAP. Chcete-li otestovat, zda tento příkaz skutečně funguje, spusťte Ethereal a vyzvedněte si zprávy ve své e-mailové schránce.
U nešifrovaného připojení pomocí protokolu POP3 zjistíte, že se heslo přenáší skutečně nešifrované. To představuje značné bezpečnostní riziko vzhledem k tomu, že v počítačové síti může program jako Ethereal používat prakticky kdokoliv a může takto sbírat hesla různých uživatelů. Správci sítí znalí tohoto rizika proto nasazují sniffery právě na připojení pomocí protokolů POP3, aby uživatele před tímto nebezpečím včas varovali. Podobně citlivé na přenos hesla jsou i protokoly FTP, Telnet nebo HTTP.

11.Sledování jiných počítačů v síti
Pokud se jedná o sledování provozu vlastního počítače, pak je používání Etherealu skutečně velmi jednoduché. V případě sledování toku dat u jiných počítačů v síti je to složitější. V takovém případě musíme provést několik dalších opatření předem. Ethernet samotný je ve své podstatě sdílené médium. To mimo jiné znamená, že se všechny pakety rozesílají na všechny stanice v síti. Aby se každý počítač nemusel neustále zabývat tím, které pakety jsou pro něj určeny a které ne, využívá síťová karta počítače vestavěný filtr. Ten propouští k ovladači síťové karty pouze ty pakety, které jsou určeny pro síťovou kartu s danou MAC adresou, nebo ty, které se označují jako Multicast nebo Broadcast a jsou určeny pro všechny stanice v síti.
Řada karet však podporuje i tzv. Promiscuous Mode. Jedná se o režim, pomocí něhož dokáže Ethereal prostřednictvím síťové karty přijímat všechny pakety v síti, tedy i ty, které danému počítači vůbec nepatří. A právě díky tomuto režimu můžete sledovat datový provoz i na jiných počítačích.
Vzhledem k současnému rozšíření přepínačů (jako centrálních prvků sítě) je sledování ostatních počítačů v síti stále obtížnější. Přepínače v síti slouží k tomu, aby pakety rozesílaly pouze na ty počítače, pro něž jsou určeny. K tomu stačí, aby si přepínač poznamenal, jakou MAC adresu má počítač připojený na daném portu přepínače. Pak síťová karta přijímá pouze broadcasty a pakety, které jsou určeny pro ni. To zabraňuje provedení účinné analýzy chyb počítačové sítě pomocí snifferů.
Se zrcadlením: Dražší přepínače disponují funkcí nazývanou Port Mirroring. Tato funkce dokáže zrcadlit provoz jednoho portu na druhý. Na tento port se pak připojí sniffer a sleduje provoz v síti. Většinou se pro zrcadlení používá port pro uplink, protože přes něj prochází veškerý datový tok. Pokud chceme sledovat pouze provoz ve směru do internetu a obráceně, pak postačí zrcadlení toho portu přepínače, který připojujeme ke směrovači.
Bez zrcadlení: U přepínače bez funkce zrcadlení portu musíme použít ne právě čistý způsob, kterému se říká Switch Jamming. Na přepínač se posílá velké množství paketů určených pro různé MAC adresy, a to tak dlouho, dokud se přepínač nezahltí. V tomto okamžiku se pak přepínače začínají chovat jako obyčejné rozbočovače rozesílají tedy pakety na všechny porty. A právě v tom spočívá nevýhoda tohoto řešení. Při analýze přepínač degradujeme na rozbočovač, čímž přijdeme o rychlost komunikace, na níž jsme byli u zařízení fungujícího jako přepínač zvyklí.

12.Jak cíleně přelstít přepínač pomocí Jammingu
V Linuxu dokonce pro Switch Jamming existuje speciální utilita Macof, uživatelé Windows mohou zase zkusit balík utilit Netwox, určený pro tento operační systém. Tato utilita je určena pro Windows 95/98/ME, 2000 a XP a najdete ji na internetové adrese www.laurentconstantin.
com/en/netw/netwox. V tomto balíku se jedná o utilitu číslo 75. Po instalaci programu (informace pro instalaci naleznete na www.laurentconstantin.com/en/netw/netwox) spustíte Jamming příkazem:
netwox350.exe 75 -d eth0

13.Sledování datových paketů v bezdrátových sítích WLAN
Když se pakety přenášejí bezdrátově jako WLAN, pak je může zachytit prakticky kdokoliv. Stačí mít kartu WLAN, pracující v režimu Promiscuous Mode. I z tohoto důvodu nejsou pro sledování provozu v bezdrátových sítích potřeba žádné speciální utility pro analýzu bohatě postačí standardní prostředky. Ve Windows je načítání paketů pro správu sítí WLAN možné jen při určitých kombinacích hardwarových zařízení. Proto se Ethereal v prostředí Windows hodí pouze ke sledování čistě datového provozu.
Na tomto místě vám představíme utilitu s názvem Airsnare, která je rovněž zdarma. Slouží ke sledování síťového provozu a monitoruje použití nepovolených MAC adres. Pokud utilita takovou stanici najde, protokoluje veškerý její provoz a dokáže dokonce poslat uživateli varování.

Co dokáže Winpcap
Knihovna Winpcap, která je šířena jako program Open Source, slouží jako základ většiny programů pro Windows, které nějakým způsobem pracují s pakety zachytávanými v počítačové síti. Ve své podstatě plní Winpcap následující úkoly:
1. zaznamenává všechny datové pakety, které odcházejí a přicházejí do síťové karty,
2. tyto pakety pak nadále filtruje, a to podle kritérií zadaných uživatelem,
3. posílá datové pakety do sítě,
4. sbírá statistické údaje o datovém provozu v počítačové síti.
Winpcap přitom pracuje naprosto neviditelně: pakety se po předání Winpcapem do sítě nijak nemění. Část knihovny přitom pracuje jako ovladač zařízení, který spolupracuje přímo s ovladačem síťové karty.
Má-li Winpcap odchytávat pakety dvou cizích PC, musí ovladač karty pracovat v tzv. promiskuitním modu. To ovšem zdaleka není u všech karet samozřejmost, zejména u karet pro WLAN tento režim často chybí.

Sledování provozu bezdrátové sítě WLAN pomocí utility Airsnare
Airsnaire 1.2.11 je utilita pro Windows 95/98/ME, NT4, 2000 a XP. Najdete ji na našem CD a na adrese home.comcast.net/~jay.deboer/airsnare/ jako soubor SETUP.EXE o velikosti 10,9 MB. Ke své činnosti využívá knihovnu Winpcap, kdy se začlení do bezdrátové sítě WLAN a sleduje, zda se do sítě nepřihlašuje zařízení s nepovolenou MAC adresou. Pokud takové zařízení objeví, může tento freewarový program provést několik akcí, počínaje vyhlášením poplachu přes e-mail až po automatické spuštění Etherealu, který zaznamená veškerou komunikaci s tímto nepovoleným zařízením. Záznam pak třeba může posloužit při dalším jednání.