Hlavní navigace

Bráníme se odposlechu: ARP Cache Poisoning a připojení počítače k síti

8. 8. 2006
Doba čtení: 7 minut

Sdílet

 Autor: 29
V dnešním díle seriálu se podíváme na to, jak zjistit, že se někdo neoprávněně připojil do naší sítě, a jak tomuto jevu zabránit. V druhé části tohoto dílu jsou rozebrány možnosti detekce a obrany proti útoku nazývanému ARP Cache Poisoning.

Připojení počítače k síti

Jak souvisí kontrola připojení cizího počítače do naší sítě s obranou proti odposlouchávání? Souvisí to velice, pokud budeme mít naše počítače zabezpečeny proti spouštění neoprávněného softwaru a uživatelé budou hlídáni, aby se nic nového neinstalovalo (v nejlepším případě na to nebudou mít práva), je naše síť relativně v bezpečí (samozřejmě toto nemůže být jediný způsob obrany). Pokud ale přijde útočník se svým počítačem, který je plně vybaven, a bude mít možnost se připojit se do sítě, nastává problém. Proto se tomuto jevu musíme bránit.

U podnikových sítí jsou nejčastěji (nebo aspoň ze začátku) veškeré síťové prvky (huby, switche, routery, modemy, …) umístěny v jedné místnosti. Počítače jsou umístěny v budovách, kde se pracuje, a nad zaměstnanci je dozor (jak kde). Hrozí riziko, že sem přijde útočník se svým plně vybaveným notebookem, připojí se do prázdné síťové zásuvky (nemyslím elektrickou síť) a začne krást firmě cenná a tajná data. Proto se zde zaměřujeme na hledání nových MAC nebo IP adres.

Detekce pro normální firmu

Objevit, že se někdo připojil do vaší sítě, můžete mnoha způsoby. Způsob budící úsměv, nicméně nejspolehlivější, je kontrola stavových diod síťových prvků, které rozsvícením signalizují, že se k danému portu někdo připojil. Kdo by se ale chtěl pořád dívat, která dioda svítí a která nesvítí… Proto se dá přítomnost útočníka zjistit i pomocí skenování sítě.

Základem je, že se pomocí ICMP Echo paketů dotazujeme, zda někdo na dané IP adrese je, nebo není. Takto se vlastně ověří veškeré IP adresy v dané síti (myslí se síť, která je určena maskou podsítě). Tento způsob je ovšem často neúspěšný, jelikož spousta lidí právě ICMP zprávy blokuje na svém firewallu.

Rafinovanější způsob je například místo ICMP Echo použít ARP Request. Toto opravdu „nikdo“ nefiltruje (lze to filtrovat, ovšem vyřešit problémy s tím spojené není pro normální uživatele), maximálně by někdo mohl filtrovat tyto zprávy z vaší MAC adresy. To už by ovšem musel být člověk, který už má o vaší síti nějakou znalost.

Na toto skenování samozřejmě existují automatizované programy, které kontrolují výskyt nových počítačů, a v případě výskytu nového počítače vás upozorní. Ovšem nelze se na ně spoléhat a je lepší se proti připojení cizího zařízení bránit.

Obrana pro normální firmu

Obrana by měla začínat tím, že by se po budově (firmy) neměly neorganizovaně pohybovat cizí osoby. Toto ovšem v moci obyčejného administrátora není. Takže další potřebná věc je, aby veškeré neobsazené zásuvky byly fyzicky odpojeny od sítě, například ve vyvazovací skříni. Pokud to switch dovoluje, je ještě velice dobré zamknout porty, aby na každém portu mohla být pouze jedna určitá MAC adresa. Toto vše sice není stoprocentní, ale dá se to považovat za dostatečné.

Pokud má vaše firma hlouběji do kapsy, existuje možnost i ověřování klientů pomocí protokolu EAPOL (Extensible Authentication Protocol over LAN). Tento protokol – zjednodušeně řečeno – spočívá v tom, že porty switche jsou filtrovány. Pokud se uživatel chce dostat do sítě, musí se přihlásit. Metoda přihlašování je dost variabilní, jelikož EAP protokol neurčuje způsob autentizace, nýbrž to nechává na vyšší vrstvě. Takže se můžete autentizovat pomocí čipové karty nebo jiného hardwarového prvku, můžete také použít jenom uživatelské jméno a heslo. Jakmile jste autentizováni, je port otevřen a můžete komunikovat; pokud se autentizace neprovede, má útočník smůlu a port je filtrován. Pokud se o tomto protokolu a jeho možnostech chcete dozvědět více, doporučuji seriál Technologie pro zlepšení bezpečnosti datových sítí.

Připojení počítače k síti u malé firmy poskytující Internet

I když to přímo nesouvisí s obranou proti odposlouchávání v rámci normální firmy, zařadil jsem tuto kapitolu pro zajímavost.

Situace u malých poskytovatelů připojení k Internetu, kteří připojují hlavně pomocí WiFi, je často taková, že chtějí za každý připojený počítač platit zvlášť. Proto se snaží zjišťovat, zda někdo nepřipojuje někoho dalšího na černo – najdou se totiž i tací, kteří konektivitu dále přeprodávají a obohacují se na úkor poskytovatelské firmy. Tomu se firmy snaží zabránit. Některým poskytovatelům to ale nevadí, záleží na uzavřené smlouvě.

Aby nešlo nově připojené počítače odhalit, maskují je uživatelé pomocí NATu. NAT – zjednodušeně řečeno – pracuje tak, že se více počítačů tváří jako jeden. Jeden počítač (ten připojený „legálně“) pracuje jako gateway a všechny pakety, které přes něj prochází, modifikuje tak, že změní jejich zdrojové adresy na sebe, tím se pak pakety tváří jako pocházející od tohoto počítače.

Detekce

NAT není naštěstí úplně bezchybný a dají se odhalit počítače připojené za ním. Využívá se k tomu převážně pasivní detekce odposloucháváním dat a jejich analýzou. Tyto techniky zde rozebírat nebudu: zájemce odkazuji na článek Úklid pavučiny – zjišťování nelegálního sdílení připojení [PDF, 1,7 MB] v časopise Hakin9.

Obrana

Zde je problém, že nemáte nad uživateli kontrolu. Proto jediná obrana je ve správně sepsané smlouvě a dobré detekci nelegálního sdílení připojení. Pokud máte splněny předchozí dvě podmínky, není problém po uživateli vymáhat pokutu či jej odpojit od sítě.

ARP Cache poisoning

Tento útok je nejrozšířenější a těžko odhalitelný. Není u něj třeba, aby byla síťová karta zapnuta v promiskuitním režimu. Dále tento útok funguje pouze na vybrané hosty a jeho detekce je těžší.

Detekce

Tento útok lze detekovat přímo na switchi, ovšem to umožňují pouze dražší switche, slouží k tomu funkce DAI (dynamic ARP inspection). Výhodu to má i v tom, že na switchi můžete tomuto útoku snadno zabránit. Switche toto detekují na základě tabulky, kde je k sobě přiřazena IP adresa, MAC adresa, port switche a další. O tomto se detailněji zmíním až ve 4. díle.

Další možnost je detekce na samotném počítači. K tomu se například používá program ARP Watch (Linux) nebo XARP (Windows). Programy pracují tak, že si při svém spuštění „vytáhnou“ z ARP Cache záznamy a zapamatují si je. Poté pravidelně kontrolují ARP Cache a porovnávají ji se zapamatovanou, pokud přibyl záznam s novou IP adresou, tak si jej zapamatují. Objeví-li ovšem v ARP Cache, že u nějaké IP adresy se změnila MAC adresa, informují uživatele o možném napadení. Nevýhodou tohoto postupu je, že musí být takto chráněna každá stanice, a pokud používáte DHCP server, snadno vznikají falešné poplachy.

Dalším způsobem je aktivní detekce. Například požádáme o ARP překlad, a pokud dostaneme více odpovědí, je to jasné, nebo pokud se bude záznam v ARP Cache lišit s odpovědí. Bohužel ale šance přijít na útočníka, pokud napadá pouze komunikaci mezi dvěma počítači, aniž bychom měli k těmto počítačům přístup, je nulová (výjimkou je výše zmíněná detekce na switchi).

Obrana

Nejefektivnější obranou je vhodný switch, který provádí inspekci ARP paketů. Tuto metodu zmíníme ve 4. díle. Další obranou jsou statické položky. Statická položka je takový záznam v ARP Cache, kterému nikdy nevyprší platnost a systém ho neaktualizuje (to znamená, že ARP Cache Poisoning tento záznam nezmění). Statické záznamy jsou tam uloženy nastálo a přidávají a odebírají se ručně.

Pro obyčejné uživatele je vhodné používat nějaký program, který monitoruje ARP Cache a hlídá změny. Špatnou variantou také není možnost přidat si do ARP Cache statickou položku. Jelikož uživatel pracuje nejvíce s Internetem a hlavně tam odcházejí cenná data, stačí si přidat do ARP Cache pouze statickou položku výchozí brány. Postup je následující: nejdříve zjistíte, jakou IP adresu má výchozí brána. Poté zjistíte, jakou má MAC adresu (pokud v ARP Cache ještě tato položka není, stačí dát ping na IP adresu brány). Jakmile znáte IP a MAC adresu brány, vytvoříte si statickou položku v ARP Cache. Celý postup i s příkazy je na obrázku.

statické přidávání

Jedinou nevýhodou tohoto postupu je, že jestli vás v tuto chvíli útočník napadl, tak si přidáte statickou položku odkazující na útočníka. Tahle možnost ale pravděpodobná příliš není. Pokud by ovšem nastala, poznali byste to tak, že by vám třeba po pěti hodinách přestal chodit Internet z důvodu, že by útočník přestal odposlouchávat a tím by přestal i přeposílávat pakety. Pokud by se toto stalo, odeberete statickou položku pomocí příkazu arp -d IP_ADRESA_BRÁNY (Windows).

Pro středně velké společnosti, které si nemohou dovolit nákup drahých switchů, doporučuji bránit se statickými položkami. Nejlepší způsob implementace a spravování je vytvořit dávkový soubor. Nejdříve se vymažou veškeré záznamy z ARP Cache a ta se poté naplní známými kombinacemi IP a MAC adres. Tento dávkový soubor je nejlepší umístit na server nebo nějaký síťový disk a nastavit klientské počítače, aby ho spustily po každém startu Windows. Pokud přijde někdo pouze na den s notebookem, není nutné ho přidávat do dávkového souboru – vše bude správně fungovat, pouze tento člověk nebude ochráněn.

BRAND24

dávkový soubor

Obsah příštích dílů?

V příštím díle se podíváme na možnosti detekce a obrany proti zbylým technikám útoků (Port Stealing, MAC Flooding, ICMP Redirecting, DHCP Spoofing a DNS Spoofing).

Čtvrtý díl bude i posledním dílem seriálu o obraně. Bude se věnovat hlavně možnostem obrany na úrovni switchů, budou zde rozebrána řešení firmy Cisco a některá obecná doporučení a postřehy pro zvýšení bezpečnosti.

Mohou se ve vašem zaměstnání nepozorovaně pohybovat cizí osoby?

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

Autor článku

Autor je spolumajitelem firmy PATRON-IT a celým srdcem technik. Specializuje se na kybernetickou bezpečnost a má zkušenosti etického hackera. Věří, že aby mohl síť dobře zabezpečit, musí ji nejprve umět prolomit.

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).