Być może znasz pojęcie adresów IP. Każdy komputer w sieci ma co najmniej jeden. Podczas komunikacji między sieciami te adresy IP jednoznacznie identyfikują źródło i miejsce docelowe ruchu sieciowego, dzięki czemu można go dostarczyć i odpowiedzieć na nie w sposób niezawodny. Podczas komunikacji z urządzeniem w tej samej sieci komputer nie używa bezpośrednio adresu IP. Zamiast tego tłumaczy ten adres IP na adres MAC. ARP to protokół do zarządzania translacją IP na MAC i komunikowania się w sieci.
ARP to skrót od Address Resolution Protocol. Jest to protokół bezstanowy, który zawiera komponenty rozgłaszania i odpowiedzi na żądanie. ARP jest używany głównie w sieciach IPv4, chociaż inne systemy sieciowe również go używają. Sieci IPv6 implementują funkcjonalność ARP i pewne dodatkowe funkcjonalności z NDP. Lub protokół wykrywania sąsiadów.
Zidentyfikowane adresy MAC są przechowywane w tabeli ARP na każdym urządzeniu. Każdy wpis w tabeli ARP regularnie wygasa. Ale może być aktualizowany pasywnie, gdy ruch ARP jest emitowany do sieci, minimalizując całkowitą ilość potrzebnego ruchu ARP.
Sonda ARP i odpowiedź
Jeśli komputer musi przesłać pakiet sieciowy, sprawdza docelowy adres IP. Wie, że musi wysłać go do routera dla urządzeń w innej sieci. To może następnie skierować pakiet do właściwej sieci. Jeśli pakiet jest przeznaczony dla urządzenia w sieci lokalnej, komputer musi znać poprawny adres MAC, aby go wysłać.
Jako pierwszy port połączenia komputer sprawdzi swoją tablicę ARP. Powinna zawierać listę wszystkich znanych urządzeń w sieci lokalnej. Jeśli docelowy adres IP i MAC są tam, użyje tabeli ARP do uzupełnienia i wysłania pakietu. Jeśli adres IP nie ma wpisu w tablicy ARP, komputer musi to sprawdzić za pomocą sondy ARP.
Komputer wysyła do sieci sondę ARP z pytaniem „kto ma?”
Notatka: Odpowiedź sondy ARP jest również transmisją. Dzięki temu wszystkie inne urządzenia sieciowe mogą aktualizować swoje tablice ARP bez konieczności wykonywania identycznych sond ARP. Pomaga to zminimalizować ruch ARP.
Sonda ARP przy połączeniu
Gdy komputer łączy się z siecią, musi uzyskać adres IP. Można to określić ręcznie, ale zazwyczaj jest przydzielane dynamicznie przez DHCP (Protokół dynamicznej kontroli hosta) serwer. Serwer DHCP jest zazwyczaj funkcją routera sieciowego, ale może być uruchamiany przez oddzielne urządzenie. Gdy nowe urządzenie ma adres IP, poprzez konfigurację ręczną lub DHCP. Urządzenie musi szybko sprawdzić, czy żadne inne urządzenie nie korzysta już z tego adresu IP.
W tym celu urządzenie rozgłasza pakiet sondujący ARP, prosząc o odpowiedź dowolnego urządzenia korzystającego z nowo przypisanego adresu IP. Oczekiwaną odpowiedzią jest cisza. Żadne inne urządzenie nie powinno reagować, zwłaszcza w sieci DHCP. Po krótkich opóźnieniach urządzenie ponownie wyemituje ten sam komunikat kilka razy. To powtarzanie pomaga w przypadkach, gdy jeden pakiet mógł zostać odrzucony w drodze do lub z urządzenia o sprzecznym adresie IP. Po braku odpowiedzi na kilka sond ARP, urządzenie może zacząć używać nowego adresu IP. Aby to zrobić, musi wysłać bezpłatne ARP.
Bezpłatne ARP
Gdy urządzenie ustali, że adres IP, którego chce użyć, nie jest używany, wysyła bezpłatne ARP. Wiąże się to po prostu z nadawaniem do sieci”
Niepotrzebne żądania ARP są również regularnie wysyłane do sieci, podobnie jak przypomnienia wszystkim innym urządzeniom, że komputer jest nadal podłączony, online i ma swój adres IP.
Podszywanie się pod ARP
ARP jest protokołem bezstanowym, nie ma połączenia, a wszystkie komunikaty są rozgłaszane w całej sieci. Wszystkie urządzenia nasłuchują i buforują odpowiedzi ARP w swoich tabelach ARP. Prowadzi to jednak do luki w systemie. Zakładając, że atakujący może fizycznie połączyć się z siecią, może uruchomić oprogramowanie, które złośliwie rozsyła nieprawidłowe, nieuzasadnione pakiety odpowiedzi ARP. Każde urządzenie w sieci zobaczy złośliwe pakiety ARP, domyślnie im zaufa i zaktualizuje swoje tabele routingu. Te teraz nieprawidłowe tabele ARP są określane jako „zatrute”.
Może to być po prostu wykorzystane do spowodowania problemów z siecią poprzez skierowanie ruchu w złym kierunku. Jest jednak gorszy scenariusz. Jeśli atakujący sfałszuje pakiety ARP dla adresu IP routera i kieruje je do własnego urządzenia, odbierze i będzie mógł zobaczyć cały ruch sieciowy. Zakładając, że urządzenie ma inne połączenie sieciowe do przekazywania ruchu, może to zająć człowieka w środku (MitM). Dzięki temu atakujący może przeprowadzać nieprzyjemne ataki, takie jak stripping HTTPS, potencjalnie pozwalając mu zobaczyć i zmodyfikować cały ruch sieciowy.
Notatka: Istnieją pewne zabezpieczenia przed atakami MitM. Atakujący nie byłby w stanie zduplikować certyfikatu HTTPS strony internetowej. Każdy użytkownik, który ma przechwycony ruch, powinien otrzymać błędy certyfikatu przeglądarki.
Istnieje jednak wiele niezbędnych i nieszyfrowanych komunikatów, zwłaszcza w sieci wewnętrznej. Nie jest tak w przypadku sieci domowej. Mimo to sieci korporacyjne zbudowane na systemie Windows są szczególnie podatne na ataki typu spoofing ARP.
![](/f/82ef61cd1e23becaf916cc2263966852.png)
Wniosek
ARP to skrót od Address Resolution Protocol. Jest używany w sieciach IPv4 do tłumaczenia adresów IP na adresy MAC, co jest potrzebne w sieciach lokalnych. Składa się z bezstanowych emisji żądań i odpowiedzi. Odpowiedzi lub ich brak pozwalają urządzeniu określić, jaki adres MAC jest powiązany z adresem IP lub czy adres IP jest nieużywany. Urządzenia buforują odpowiedzi ARP, aby zaktualizować swoje tabele ARP.
Urządzenia mogą również regularnie emitować nieuzasadnione komunikaty, że ich adres MAC jest powiązany z ich adresem IP. Brak mechanizmu uwierzytelniania umożliwia złośliwemu użytkownikowi rozgłaszanie fałszywych pakietów ARP w celu zatruwania tabel ARP i kierowania ruchu do siebie w celu przeprowadzenia analizy ruchu lub ataków MitM.