ARP Spoofing
ARP spoofing to rodzaj ataku sieciowego, który występuje w sieciach Ethernet i umożliwia atakującemu przechwytywanie danych w obrębie segmentu sieci lokalnej. Metoda ta polega na wysyłaniu w sieci LAN specjalnie skonstruowanych pakietów ARP, które zawierają adres MAC atakującego. W rezultacie pakiety danych, które normalnie byłyby kierowane do konkretnego adresata, trafiają do atakującego, co pozwala mu na podsłuchiwanie komunikacji.
Inny wariant tego ataku polega na zaatakowaniu bramy domyślnej w sieci, co umożliwia przejęcie ruchu wysyłanego do atakowanego komputera oraz ruchu odbieranego przez ten komputer. Dzięki temu atakujący ma możliwość modyfikacji przesyłanych danych (atak typu man in the middle).
Aby zabezpieczyć się przed tym atakiem, można zastosować statyczne mapowanie rekordów ARP. Istnieją również narzędzia, które monitorują tablice ARP w sieci lokalnej i raportują podejrzane sytuacje.
Technika ARP spoofing znajduje zastosowanie w sieciach Ethernet korzystających z przełączników. Kiedy sieci lokalne opierały się na hubach, wystarczyło ustawić kartę sieciową w tryb odbioru wszystkich pakietów (tryb promiskuitywny), aby móc podsłuchiwać całą komunikację. Takie działanie umożliwiały programy zwane snifferami. Podsłuch był możliwy, ponieważ hub przesyłał wszystkie pakiety do każdego urządzenia w sieci, niezależnie od jego adresu MAC. Pojawienie się inteligentnych przełączników zablokowało tę możliwość, ponieważ taki switch przesyła pakiet Ethernetowy jedynie do odpowiedniej karty sieciowej, jeżeli zna adres MAC docelowego hosta. Aby monitorować sieć opartą na tej technologii, można wykorzystać dynamiczne tablice ARP (ang. ARP cache).
Kiedy użytkownik chce przesłać dane do komputera z adresem IP 192.168.1.34, proces ten wygląda następująco:
Karta sieciowa w komputerze źródłowym wysyła zapytanie ARP: kto ma adres IP 192.168.1.34?
Karta sieciowa w komputerze docelowym z adresem MAC 00:07:95:03:1A:7E odpowiada: Hej, to ja!
W komputerze nadawcy do dynamicznej tablicy ARP dodawany jest wpis: IP 192.168.1.34 -> MAC 00:07:95:03:1A:7E.
Wszystkie pakiety z docelowym adresem IP 192.168.1.34 są przez warstwę łącza danych konwertowane na pakiety z adresem MAC 00:07:95:03:1A:7E.
W każdym komputerze powstaje dynamiczna tablica ARP, która przechowuje pary adresów MAC i IP. Jej zawartość można wyświetlić za pomocą polecenia arp -a.
Jednakże na jednym z urządzeń cracker może uruchomić program, który oszukuje karty sieciowe. Sniffer tego typu działa w następujący sposób:
Karta sieciowa w komputerze źródłowym wysyła zapytanie ARP: Kto ma adres IP 192.168.1.34?
Karta sieciowa w komputerze crackera z adresem MAC 00:C0:DF:01:AE:43 odpowiada: Hej, to ja!
W komputerze nadawcy do dynamicznej tablicy ARP dodawany jest wpis: IP 192.168.1.34 -> MAC 00:C0:DF:01:AE:43.
Wszystkie pakiety z docelowym adresem IP 192.168.1.34 są przez warstwę łącza danych konwertowane na pakiety z adresem MAC 00:C0:DF:01:AE:43 i trafiają do komputera crackera.
Cracker dodaje odpowiedni wpis do swojej tablicy ARP, łącząc prawdziwy adres IP komputera docelowego 192.168.1.34 z jego fizycznym adresem MAC 00:07:95:03:1A:7E.
Cracker uruchamia na swoim komputerze usługę IP Forwarding, co pozwala na przekierowywanie komunikatów sieciowych protokołu IP.
Wszystkie pakiety z docelowym adresem IP 192.168.1.34 cracker przesyła do ich prawdziwego odbiorcy z adresem MAC 00:07:95:03:1A:7E.
W sytuacji, gdy atakowana maszyna posiada już właściwy adres warstwy łącza danych dla celu, atakujący może go zmienić, wysyłając spreparowaną „odpowiedź”, mimo że atakowana maszyna nie zadała zapytania. Ta spreparowana odpowiedź zostanie zaakceptowana, a wpis w tablicy ARP atakowanej maszyny zostanie zmieniony.
Technika sniffingu opisana powyżej jest znana jako zatruwanie tablicy ARP przez człowieka w środku (ang. the ARP poisoning man in the middle attack). Dzięki tej metodzie można podsłuchiwać ruch w sieciach z przełącznikami. Nieszyfrowana komunikacja bez cyfrowych podpisów w sieci Ethernet zawsze jest narażona na atak i nigdy nie powinna być wykorzystywana do przesyłania poufnych informacji.
W systemach operacyjnych z rodziny GNU/Linux oraz Windows można się zabezpieczyć przed podobnymi atakami poprzez ładowanie adresów z statycznej listy, jednak wymaga to aktualizacji tej listy przy każdej zmianie adresów warstwy łącza danych. W systemach Unixowych można również skorzystać z arptables w celu uzyskania większej kontroli nad ruchem generowanym przez protokół ARP.
Technika ARP spoofingu może być również zastosowana do blokowania komunikacji w ramach ataku DoS.