ARP spoofing
ARP spoofing je 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řekladu IP adresy příjemce paketu na jeho MAC adresu. Podvržením odpovědi může útočník pakety určené oběti nasměrovat na vlastní MAC adresu.
Popis útoku
Protokol ARP se používá v počítačových sítích s protokolem IP verze 4 k překladu síťové IP adresy na MAC adresu. MAC adresa jednoznačně identifikuje síťovou kartu a používá se k adresaci na linkové 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ý v ethernetových sí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.
Obrana proti ARP spoofingu
Statické ARP záznamy
Přeložené IP adresy na MAC adresy můžou 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.
Zabezpečení portů switche
Útoku lze předejít za pomocí L3 switche zapnutím funkce Dynamic 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 je IP 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 funkce DHCP 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 detekující ARP spoofing
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 můžou 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.
Ochrana na úrovni OS
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íči HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
položky ArpCacheLife
, ArpCacheMinReferenceLife
, ArpUseEtherSNAP
, ArpTRSingleRoute
, ArpAlwaysSourceRoute
, ArpRetryCount
.