ARP spoofing

ARP spoofingje zneužitíAddress Resolution Protocolu(ARP), umožňující útočníkovi vydávat se v místní síti za jiný počítačpodvržením odpovědi na ARP dotaz. ARP dotaz slouží k překladuIP adresypříjemce paketu na jehoMAC adresu. Podvržením odpovědi může útočník pakety určené oběti nasměrovat na vlastní MAC adresu.
Protokol ARP se používá v počítačových sítích s protokolemIPverze 4 k překladu síťovéIP adresynaMAC adresu. MAC adresa jednoznačně identifikuje síťovou kartu a používá se k adresaci nalinkové vrstvě.
Při cestě paketů počítačovou sítí je ale příjemce paketu adresován za pomocí IP adresy. Na každém směrovači po cestě musí být proto IP paket zabalen do rámce linkové vrstvy opatřeného MAC adresou. Právě v této chvíli přichází na řadu protokol ARP - směrovač se protokolem ARP dotáže všech počítačů v odpovídající části sítě a očekává, že příjemce mu zpět zašle svoji MAC adresu. Směrovač tuto MAC adresu uloží společně s IP adresou do své ARP tabulky. Na základě obsahu ARP tabulky pak stanovuje, na kterou MAC adresu zasílat pakety pro danou IP adresu.
Princip ARP spoofingu, neboli podvržení MAC adresy spočívá v neustálém zasílání „odpovědi“ s MAC adresou útočníka. Směrovač si zaznamená falešnou adresu do své ARP tabulky, pakety následně zasílá na ni.
Pokud chce útočník odposlouchávat komunikaci mezi dvěma uzly lokální sítě, stačí mu oběma z nich podstrčit svoji MAC adresu, a přijatá data posílat dál skutečným adresátům.
ARP spoofing je pro odposlech nutný vethernetovýchsítích propojených přepínači (switchi), které se učí na kterém konci sítě jsou které MAC adresy, a směřují provoz jen na výstupy, na kterých se nachází jeho adresát. Starší rozbočovače (huby) posílají všechna data všem, proto odposlech libovolného provozu na jimi řízené síti ARP spoofing nevyžaduje.
Přeložené IP adresy na MAC adresy mohou být staticky uloženy v lokální ARP tabulce. V takovém případě mohou být počítače nastaveny, aby ignorovaly všechny pakety s ARP odpovědí. Statické záznamy poskytují dokonalé zabezpečení proti APR spoofingu, aktualizaci obsahu ARP tabulky pak je ale nutné zajistit jinak, například její distribucí z DHCP serveru (který IP adresy MAC adresám přiděluje).
Takové řešení však vyžaduje nestandardní software na straně klienta i serveru a jediným standardním bezpečným řešením tak zůstává mimořádně nepraktická ruční aktualizace ARP tabulky.
Útoku lze předejít za pomocí L3 switche zapnutím funkceDynamic ARP Inspection. Switch pak sleduje DHCP komunikaci a zjišťuje tak, jaké IP adresy byly přiděleny stanicím na daných portech. Zahazuje pak neoprávněné ARP odpovědi.
Vylepšenou variantou funkce jeIP Source Guard, která nezahazuje jen ARP odpovědi, ale veškerý provoz s neoprávněnou IP adresou odesílatele (s výjimkou DHCP, které je k získání IP nutné).
Aby obě funkce skutečně bránily útoku, je nutné zabránit také vytváření neoprávněných DHCP serverů (tzv. DHCP spoofingu) zapnutím funkceDHCP snoopingu. Ta umožňuje stanovit porty, za kterými se může nacházet DHCP server. Pokusí-li se některý počítač připojený skrze jiný port provozovat DHCP server, příslušné komunikaci bude na úrovni switche zabráněno.
Software, který detekuje ARP spoofing obecně závisí na nějaké formě certifikace nebo ověřování ARP odpovědí. Nepotvrzené ARP odpovědi jsou pak blokovány. Ve spolupráci s DHCP serverem mohou být certifikovány dynamické i statické IP adresy. Tato funkce může být realizována u jednotlivých hostitelů nebo mohou být integrovány do jiných síťových zařízení (Ethernet switch).
Jednodušší formou detekce ARP spoofingu je kontrola počtu IP adres přiřazených jediné MAC adrese. MAC adresa útočníka zde totiž pravděpodobně bude mít více IP adres - vlastní, oprávněnou, IP adresu a IP adresu oběti. Tato detekce však neodhalí útok v případě, že se útočník vzdá vlastní IP aresy na síťové kartě z které je prováděn útok.
Útok lze odhalit také pasivním odposlechem ARP komunikace (což nečiní potíže vzhledem k tomu že jde o broadcast) a upozorněním síťových administrátorů v případě, kdy jako odpověď na dotaz na stejnou IP adresu přišla odlišná MAC adresa.
Operační systémy reagují různě, např. Linux ignoruje nevyžádané odpovědi, ale na druhé straně využívá zachycené požadavky z jiných strojů k aktualizaci své mezipaměti. Solaris přijímá aktuální informace o položkách až po uplynutí časového limitu. V systému Microsoft Windows lze chování ARP mezipaměti konfigurovat pomocí několika záznamů v registru. Konkrétně v klíčiHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ParameterspoložkyArpCacheLife,ArpCacheMinReferenceLife,ArpUseEtherSNAP,ArpTRSingleRoute,ArpAlwaysSourceRoute,ArpRetryCount.