« poprzedni punkt  następny punkt »


2. Spoofing ARP

ARP (Address Resolution Protocol) jest protokołem odpowiedzialnym za konwersję adresu IP na adres sprzętowy. Gdy datagram IP jest gotowy do wysłania, host musi dowiedzieć się, jaki jest adres sprzętowy skojarzony z docelowym adresem IP. Dla pakietów wysyłanych wewnątrz sieci lokalnej, będzie to adres interfejsu docelowego. Dla pakietów skierowanych na zewnątrz, będzie to adres jednego z routerów.

Aby zdobyć poszukiwany adres sprzętowy, host wysyła zapytanie ARP używając sprzętowego adresu ogólnego (hardware broadcast address). Pytanie brzmi: Jaki jest adres sprzętowy skojarzony z podanym adresem IP ?. Powinien odpowiedzieć co najwyżej jeden host z sieci lokalnej. Pytanie zawiera adres IP nadawcy. Wszyscy, do których pytanie dotrze, mogą zapisać skojarzenie adresu IP i adresu sprzętowego nadawcy pytania. Zrobi to na pewno wywołany host gdyż musi odpowiedzieć na pytanie. Skojarzenia te zapisywane są w buforze ARP (ARP cache). Ulegają one przeterminowaniu po kilku minutach. Zawsze przed wysłaniem zapytania ARP ma miejsce sprawdzenie bufora ARP. Po przeterminowaniu wysyłane jest pytanie odświeżające zapis ARP. Jeżeli odpowiedź nie nadejdzie, to zapis jest usuwany z bufora. Jeżeli przed usunięciem zapisu z bufora stary komputer zostanie odłączony od sieci i pojawi się nowy z tym samym adresem IP i innym adresem sprzętowym, to odpowie on na pytanie odświeżające i nastąpi modyfikacja w buforach nadawcy pytania. Na rys. 1 przedstawiono przebieg opisanego procesu, a na rys. 2 można obejrzeć strukturę zapytania ARP.

Gdy dwa komputery maja ten sam adres IP, to oba odpowiedzą na zapytanie dotyczące tego adresu. Niektóre systemy mogą zignorować drugi komunikat, inne nadpiszą pierwszy zawartością drugiego. Systemy mogą również wysyłać komunikat zerowania (RESET TCP/IP). Systemy nie muszą sprawdzać, czy powtórzony komunikat pochodzi z tego samego źródła, czy jest próbą spoofingu. Włamywacz może spowodować odłączenie od sieci komputera pod który chce się podszyć i wejść w ten sposób w jego miejsce. Może jednocześnie próbować zmienić jego adres IP. Na rys. 3. przedstawiono przebieg procesu spoofingu ARP.

Rys. 1. Funkcjonowanie ARP

Rys. 2. Zapytanie ARP przechwycone przez sniffer

Rys. 3. Przebieg spoofingu ARP

Istotą spoofingu jest to, że jest on skierowany przeciwko komputerowi oszukiwanemu, a nie temu, którego adres IP został przejęty. W parze tej komputer oszukiwany jest elementem ufającym a ten, którego adres przejęto - zaufanym. Wynika z tego, że maszyny ufające nie powinny korzystać z ARP do wykrywania adresów sprzętowych komputerów zaufanych. Zamiast tego zapis taki powinien być wprowadzony do bufora ARP jako tzw. zapis permanentny, który nie ulega przeterminowaniu. Nie będą wysyłane pytania ARP. Ewentualne odpowiedzi, które nie były poprzedzone pytaniem nie są obsługiwane.

Wadą zapisów permanentnych jest możliwość wysyłania pakietów do niedziałających komputerów. Wadą jest również konieczność zmian wpisów w przypadku zmiany konfiguracji. Bufory ARP maja ograniczoną pojemność, co limituje liczbę zapisów permanentnych lub ogranicza czas ważności zapisów dynamicznych. W systemach Unix, Windows dostępne jest polecenie arp umożliwiające:

Zagrożenie spoofingu pomiędzy podsieciami IP jest usuwane przez zastosowanie barier sprzętowych w postaci routerów z permanentnymi zapisami ARP. Jeżeli komputery zaufane pracują w podsieci narażonej na spoofing ARP, to dzięki zapisom permanentnym routery nie zostaną oszukane. Należy jeszcze zadbać aby komputery zaufane były chronione przed spooferem ARP udającym router. Routery są jednak zwykle dobrze zabezpieczone i nie przerywają pracy.

Jeżeli nie istnieje możliwość wprowadzenia bariery sprzętowej, to zostaje szybkie wykrywanie spoofingu i natychmiastowa interwencja. Należy opracować procedury postępowania w takich przypadkach gdyż wykryta nieprawidłowość może być zamierzona, przypadkowa, lub być naruszeniem bezpieczeństwa.

Pasywna detekcja na poziomie hosta

Komputer odpowiadający na pakiet ARP powinien badać nie tylko adres odbiorcy ale i adres IP nadawcy. Jeżeli stwierdzi, że to jest jego adres, to może oznaczać, że inny komputer podszywa się pod niego. Takiej kontroli dokonuje większość systemów.

Aktywna detekcja na poziomie hosta

Hosty powinny wysyłać pytania ARP ich własnych adresów przy starcie systemu jak i regularnie później. Jeżeli odpowiedź ARP nadejdzie, to może to oznaczać wykrycie spoofingu.

Detekcja na poziomie serwera

Polega na weryfikacji pytania ARP przez pytanie RARP dotyczące adresu sprzętowego zawartego w odpowiedzi. Pytanie RARP brzmi: Jaki jest adres IP skojarzony z podanym adresem sprzętowym?. Protokół RARP jest normalnie używany przez stacje bezdyskowe, które podczas startu muszą sprawdzić swój adres IP. Metoda pytania odwrotnego jest bardzo skuteczna również w wielu innych sytuacjach.

Detekcja na poziomie sieci przez okresowe kontrole

Okresowe kontrole powinny dotyczyć zawartości buforów ARP. Można wtedy wykryć w nich zmiany adresów. Zadaniem personelu administracyjnego powinno być bieżące utrzymywanie bazy danych z adresami sprzętowymi, adresami IP, nazwami DNS itp. Bazy takie mogą być podstawą okresowo przeprowadzanych automatycznych kontroli. Można wykorzystać protokół SNMP. W SNMP każdy komputer korzystający z IP ma agenta SNMP odpowiadającego na żądania dotyczące informacji i konfiguracji. W niektórych standardach SNMP dostępne są tabele opisujące adresy sprzętowe i IP.

Detekcja na poziomie sieci przez ciągłe monitorowanie

Interfejs sieciowy można przełączyć w tryb ogólny, dzięki któremu możliwe jest ciągłe analizowanie każdego pakietu w sieci. Można wtedy dodatkowo realizować analizę ruchu w sieci i opracowywać odpowiednie statystyki. Do przeprowadzenia takiego niskopoziomowego monitoringu sieci stworzono agentów SNMP z obsługą protokołu RMON.


« poprzedni punkt  następny punkt »