ARP spoofing, także zatruwanie pamięci ARP (ARP cache poisoning) – atak sieciowy w sieci lokalnej polegający na rozsyłaniu sfałszowanych komunikatów protokołu ARP, które wiążą adres IP innego urządzenia z adresem MAC napastnika. W efekcie ruch kierowany do danego adresu IP trafia do atakującego, co umożliwia podsłuch, modyfikację lub blokowanie transmisji[1][2].
Atak wykorzystuje właściwość samego protokołu ARP, opisanego w 1982 roku w dokumencie RFC 826: jest on bezstanowy i nie przewiduje uwierzytelniania, przez co urządzenie przyjmuje i zapisuje w swojej pamięci podręcznej ARP odpowiedź nawet wtedy, gdy nie wysyłało odpowiadającego jej zapytania[3][2].
Aby urządzenia w sieci lokalnej mogły się komunikować, muszą znać adresy MAC odpowiadające adresom IP. Gdy urządzenie nie ma potrzebnego wpisu, rozgłasza zapytanie ARP z pytaniem, kto ma dany adres IP; właściciel tego adresu odpowiada swoim adresem MAC, a odpowiedź trafia do pamięci podręcznej ARP pytającego[1].
W ataku napastnik wysyła do pamięci podręcznej ARP ofiary sfałszowaną odpowiedź, w której własny adres MAC przypisuje adresowi IP innego urządzenia – zwykle bramy domyślnej. Może przy tym biernie czekać na zapytanie ofiary i odpowiedzieć szybciej niż prawowity właściciel adresu, albo rozesłać niezamówioną odpowiedź (tzw. gratuitous ARP), która ogłasza przypisanie adresu wszystkim urządzeniom w segmencie[1]. Ponieważ protokół nie wymaga uwierzytelniania, zaatakowane urządzenie nadpisuje wpis w swojej pamięci podręcznej[1].
Skierowanie ataku jednocześnie na ofiarę i na bramę domyślną pozwala przejąć ruch w obu kierunkach. Jeżeli napastnik przekazuje przechwycone pakiety dalej do prawdziwego odbiorcy, uzyskuje pozycję człowieka pośrodku (man in the middle), umożliwiającą podsłuch i modyfikację transmisji; jeżeli pakiety porzuca, dochodzi do blokady usługi[1][2].
Znaczenie ataku wiąże się ze sposobem działania przełączników. W dawnych sieciach opartych na koncentratorach (hubach) całe pasmo było współdzielone, a urządzenie rozsyłało każdą ramkę do wszystkich portów; do podsłuchania komunikacji wystarczyło przełączyć kartę sieciową w tryb odbioru wszystkich ramek (tryb mieszany, promiscuous) za pomocą programu zwanego snifferem[4]. Przełącznik, w odróżnieniu od koncentratora, uczy się, za którym portem znajduje się dany adres MAC, i kieruje ramki wyłącznie do właściwego portu, co uniemożliwia bierny podsłuch[4].
ARP spoofing pozwala obejść to ograniczenie: przekierowując ruch ofiary na adres MAC napastnika, umożliwia przechwytywanie komunikacji także w sieci zbudowanej na przełącznikach[2].
Do ograniczania ryzyka ataku stosuje się kilka metod:
ARP spoofing bywa wykorzystywany w rzeczywistych atakach. Technika ta figuruje w katalogu MITRE ATT&CK jako podtechnika ataku typu człowiek pośrodku (T1557.002); posługiwały się nią m.in. grupy określane jako Cleaver i LuminousMoth, ta druga do przekierowania zainfekowanego komputera na stronę kontrolowaną przez napastnika[1].