Download: CoverArp

Transkrypt

Download: CoverArp
Fałszowanie pakietów ARP
TEMAT MIESIĄCA
Fałszowanie i zatruwanie protokołu ARP
LOCAL DETOUR
Każdy użytkownik przyłączony do lokalnej sieci komputerowej może podsłuchiwać i manipulować ruchem
sieciowym. Techniki podsłuchiwania i zatruwania protokołu ARP stanowią dodatkowe możliwości
przeprowadzenia ataku. THOMAS DEMUTH, ACHIM LEITNER
C
iekawość, zemsta, szpiegostwo przemysłowe -- to możliwe przyczyny
przeprowadzania ataków sieciowych
od wewnątrz. Statystyki dowodzą, że od 70 do
80 procent stanowią ataki tego typu [1]. Administratorzy mają utrudnione zadanie, ponieważ zabezpieczenie sieci od środka jest o wiele
trudniejsze od zabezpieczenia sieci przed atakami zewnętrznymi.
Jedną z najbardziej groźnych form ataku
jest fałszowanie ruchu ARP. Fałszowanie pakietów ARP pozwala napastnikowi podsłuchiwać i manipulować ruchem lokalnym.
Napastnik może przeprowadzać ataki pośredniczące (man-in-the-middle), a dzięki
zaawansowanemu oprogramowaniu nawet
niedoświadczeni złoczyńcy mają duże szanse
powodzenia.
Działanie protokołu ARP
Protokół ARP został opublikowany w listopadzie 1982 roku przez Davida C. Plummera
w ramach dokumentu RFC 826 [2]. W roku
1982 bezpieczeństwo sieciowe nie było ważnym zagadnieniem; celem opracowania protokołu było zapewnienie sprawnego działania.
ARP odwzorowuje adresy IP na adresy MAC.
Jeśli klient C potrzebuje wysłać pakiet do ser-
Adresy w sieci lokalnej: podstawy
Gdy dwa komputery w sieci lokalnej muszą
nawiązać połączenie, potrzebny jest sposób
ich jednoznacznej identyfikacji. Ethernet wykorzystuje 48-bitowe (6 bajtowe) liczby przypisane każdemu urządzeniu sieciowemu. To
tak zwane adresy MAC (Media Access Control), które są unikalne na całym świecie.
Dzięki temu użytkownicy mogą przyłączać
(teoretycznie) dowolną liczbę urządzeń Ethernet do sieci lokalnej. Ethernet nie wykorzystujący przełączników i mostów stosuje technikę
rozgłaszania. Oznacza to, że każdy pakiet jest
wysyłany do każdego węzła w danym segmencie sieci. Tylko adresat pakietu przyjmuje
go, pozostałe węzły ignorują obce pakiety.
To bardzo prosty mechanizm, lecz nie jest
skalowalny. Każdy węzeł sieci pochłania
część jej przepustowości. Mosty i przełączniki
poprawiają sytuację, dzieląc sieć na wiele
segmentów i zapamiętując, które adresy
MAC znajdują się w którym segmencie (służy
do tego tak zwana tablica CAM, czyli Con-
tent Addressable Memory). Dzięki temu
przełączniki i mosty wysyłają pakiet tylko do
tego z segmentów, do którego przyłączony
jest jego adresat. W ramach każdego segmentu pakiety mogą być przesyłane bez zakłócania ruchu w pozostałych segmentach.
Opisany mechanizm nie może być stosowany w sieciach rozległych. Każdy przełącznik
musi znać lokalizację każdego komputera
docelowego. Aby temu zaradzić, twórcy Internetu opracowali mechanizm adresowania, wykorzystujący adresy IP. Adres IP ma
długość 32 bitów (4 bajty) i składa się z sekcji
sieciowej i sekcji hosta. Maska podsieci informuje o tym, która część adresu dotyczy sieci,
a która identyfikuje hosty.
Sieci wchodzące w skład Internetu są połączone ruterami. Rutery muszą znać tylko adresy sieci, dzięki czemu pakiety są przesyłane
jedynie pomiędzy ruterami poszczególnych
sieci. Ruting opiera się na adresach IP, natomiast sieci lokalne nadal wykorzystują adre-
WWW.LINUX-MAGAZINE.PL
sowanie MAC. Jednak gdyby każdy program
potrzebował znać zarówno adres IP jak i adres MAC adresata, byłoby to niewygodne.
W tym miejscu pomocny jest protokół ARP
(Address Resolution Protocol), który służy do
dopasowania adresów MAC do adresów IP.
Administrator nie musi konfigurować tego
mechanizmu, to znaczy nie ma potrzeby odwzorowywania adresów IP na adresy MAC.
Wszystko to odbywa się automatycznie. Taki
automatyzm stanowi jednak poważne zagrożenie, które zostanie omówione właśnie
w tym artykule.
Oprócz protokołu ARP istnieje również protokół RARP (Reverse ARP, [3]). W podobny
sposób co DHCP, serwer RARP przypisuje
adresy IP do maszyn w oparciu o znajomość
ich adresów MAC. RARP nie może służyć do
przekazania klientowi innych parametrów
(serwera nazw, adresu bramy, maski sieciowej), jest zatem stosowany bardzo sporadycznie.
NUMER 18 LIPIEC 2005
27
TEMAT MIESIĄCA
Fałszowanie pakietów ARP
Rysunek 1: Klient przed przesłaniem pakietu wykorzystuje protokół ARP do uzyskania adresu MAC serwera w sieci lokalnej. Żądanie typu „kto
ma...” jest wysyłane do wszystkich komputerów w sieci lokalnej (rozgłaszane). Węzeł posiadający poszukiwany adres odpowiada bezpośrednio
pytającej maszynie.
wera S i obydwa węzły są przyłączone do tej samej podsieci, musi znać jego adres MAC. Nawet w sytuacji, gdy S znajduje się w innej sieci,
C nadal potrzebuje znać adres MAC, w tym
przypadku jednak musi to być adres MAC rutera, który przekaże pakiet w dalszą drogę.
W celu pozyskania adresu MAC, C rozgłasza żądanie ARP do wszystkich systemów
w sieci lokalnej. Jest to pytanie typu Kto ma
adres IP a.b.c.d?. Komputer, którego dotyczy
zapytanie odpowiada nadawcy, informując
go o swoim adresie MAC (Rysunek 1.).
Jak widać na Rysunku 2, pakiet ARP jest
przesyłany jako zawartość ramki ethernetowej. W tym celu w polu typu nagłówka ramki
umieszczana jest wartość 0x8006, która in-
formuje adresata, że ma do czynienia z pakietem ARP.
Rozgłaszanie żądania ARP i oczekiwanie
na odpowiedź za każdym razem, gdy jest nawiązywane połączenie, powodowałoby zbyt
duże opóźnienia, zatem każdy stos IP obsługuje tabelę ARP, zwaną również pamięcią
podręczna ARP (ARP cache, Rysunek 3.).
Pamięć podręczna ARP zawiera tablicę odwzorowującą adresy IP na odpowiadające im
adresy MAC. Tabela ta może zawierać statyczne dane (skonfigurowane przez użytkownika) lub dynamiczne (uzyskane za pośrednictwem zapytań ARP). Dynamiczne wpisy
są ważne przez określony okres, z reguły kilka minut.
Ataki sieciowe
wykorzystujące
mechanizmy adresowania
Rysunek 2: Pakiet ARP jest przesyłany jako zawartość ramki ethernetowej. Po polach typu
i długości następują adresy źródłowy i docelowy.
28
NUMER 18 LIPIEC 2005
WWW.LINUX-MAGAZINE.PL
Protokół ARP nie zawiera zabezpieczeń
przed fałszowaniem pakietów, jest więc podatny na różne typy ataków. Najpowszechniej spotykane jest fałszowanie adresów
MAC (MAC spoofing), zalewanie MAC
(MAC flooding) oraz fałszowanie pakietów
ARP (ARP spoofing).
Fałszowanie adresów MAC polega na wykorzystaniu przez napastnika określonych
adresów MAC z sieci lokalnej. Takie ataki
mają sens głównie w przypadku, gdy dostęp
do zasobów w sieci jest zdefiniowany w oparciu o adresy MAC. Wiele sieci WLAN (bezprzewodowych) wykorzystuje adresy MAC
autoryzowanych stacji jako elementy list kontroli dostępu. To bardzo słabe zabezpieczenie, które łatwo ominąć. Napastnik musi po
prostu poznać uprzywilejowane adresy MAC
Fałszowanie pakietów ARP
TEMAT MIESIĄCA
gadnąć typ protokołu i w oparciu o tę wiedzę
wcześniej zapytań
odkodować dane uwierzytelniające użytkowARP;
informacja
nika na serwerze.
o adresie otrzymana
w odpowiedzi jest zapisywana do późniejRysunek 3: Tablica ARP w systemie Linux z jednym niekompletnym
szego wykorzystania.
wpisem, jednym wpisem statycznym i dwoma wpisami dynamicznymi
Nawet SSL i SSH nie
W systemach Win(znacznik C: kompletny, M: statyczny).
zawsze są bezpieczne
dows napastnicy maSzyfrowane połączenia nie są nietykalne
ją możliwość modyfikacji nawet wpisów staz założenia, co demonstrują narzędzia do
i podszyć się pod system nieaktywny w datycznych zdefiniowanych przez użytkownika.
przeprowadzania ataków z zastosowaniem
nym momencie. Fałszowanie adresów MAC
Dzięki temu napastnik może monitorować
protokołu ARP. Programy te można zdobyć
jest stosowane przy atakach, w których pożąwymianę danych pomiędzy klientem a serw wersjach dla różnych systemów operacyjdane jest ukrycie tożsamości napastnika.
werem i, działając jako pośrednik w tej konych (zobacz ramka „Narzędzia do ataków
W sieciach przewodowych można dość łamunikacji, manipulować tą komunikacją.
wykorzystujące ARP”). Oprócz zatruwania
two uchronić się przed atakami tego typu.
Pośrednik (man in the middle) modyfikuje
tablic ARP, narzędzia te zawierają własną
Wiele przełączników sieciowych obsługuje
wpis serwera w pamięci podręcznej ARP
implementację SSL (Secure Socket Layer),
funkcje bezpieczeństwa portów. Przełącznik
klienta, zmuszając klienta do uwierzenia, że
TLS (Transport Layer Security), SSH (Secuuczy się adresu MAC na danym porcie i zapiadres MAC napastnika należy do serwera.
re Shell) oraz PPTP (Point to Point Tunnesuje go na stałe. Od tego momentu przełącznik nie przyjmie żadnych innych źródłowych
adresów MAC na tym porcie. To bardzo skuteczny sposób zapobiegający atakom fałszowania adresów MAC. Wadą tego rozwiązania
jest to, że administrator musi modyfikować
ustawienia przełącznika w przypadku planowanych zmian w sieci.
Zabezpieczenia portów pozwalają również
chronić sieć przed atakami innego typu. Ataki zalewania MAC zostały wymyślone w celu
zablokowania mechanizmów zabezpieczeń
portów przełącznika. Przełączniki, w przeciwieństwie do koncentratorów, wykorzystują
tablice CAM (Content Addressable MemoRysunek 4: Ettercap oczekujący na połączenie pomiędzy 192.168.1.120 i 192.168.1.124 (adry), w których zapisywane są informacje
res źródłowy i docelowy). To narzędzie potrafi w prosty sposób podsłuchiwać połączenia telnet
o adresach MAC przypisanych każdemu pori FTP. W przypadku połączeń SSHv1 posługuje się techniką pośrednika (man in the middle), aby
towi przełącznika. Przełącznik wysyła pakiet
odkodować dane połączenia.
tylko na ten port, do którego jest przyłączony
jego adresat.
Podobną manipulację napastnik stosuje
ling Protocol), pozwalające podszywać się zaNapastnik może zablokować tę funkcję, zaw stosunku do serwera.
równo pod serwer, jak i pod klienta.
lewając przełącznik adresami -- tablica CAM
Jeśli klient chce nawiązać połączenie
Podczas połączenia SSL z serwerem
jest w stanie pomieścić ograniczoną liczbę adz serwerem, sprawdzi wpisy w zatrutej tabliWWW przeglądarka ostrzega użytkownika,
cy ARP i wyśle pakiet na adres MAC napastresów. Jeśli atak powiedzie się, przełącznik
że coś jest nie w porządku z certyfikatem senika. Dzięki temu napastnik może czytać
zaczyna pracować jak koncentrator i przesyła
sji. Wielu użytkowników nie rozumie powagi
pakiety do wszystkich portów, co umożliwia
i modyfikować pakiety przed przekazaniem
zagrożenia i po prostu ignoruje ostrzeżenie.
ich do serwera. Serwer zakłada, że pakiet zopodsłuchiwanie pakietów i inne ataki.
Wiele serwerów ma skonfigurowane samostał wysłany bezpośrednio przez klienta. Oddzielnie podpisane certyfikaty i ostrzeżenia
powiedź serwera jest przesyłana do napasttego typu są dobrze znane użytkownikom,
nika, który przekazuje ją do klienta. Jeśli
zatem jedyną reakcją jest z reguły kliknięcie
Zatruwanie tablicy ARP
serwer jest umieszczony w osobnej podsieci,
przycisku Anuluj. Błąd w starszych wersjach
Trzeci typ ataków nie jest łatwy do wykrycia
napastnik może przeprowadzić analogiczny
Internet Explorera umożliwiał przeprowai nie są znane proste do zastosowania środki
atak na ruter.
dzenie ataku tego typu nawet bez wyświetlazapobiegawcze. Atak opiera się na fałszowaOczywiście napastnik może przeprowania ostrzeżenia.
niu pakietów ARP (napastnik celowo przesydzić również atak blokady usług, po prostu
Atak na połączenie SSH przebiega podobła nieprawdziwe pakiety ARP). Zatruwanie
odrzucając wszelkie pakiety przesyłane ponie (Rysunek 4.). Jeśli klient zna już klucz
tablic ARP jest specyficzną formą ataków fałmiędzy serwerem a klientem. Aby manipuloserwera, pojawi się ostrzeżenie (Rysunek 5).
szowania pakietów ARP, których celem jest
wać danymi, napastnik odsyła do adresata
Wielu użytkowników i administratorów zinieautoryzowana modyfikacja (zatrucie) tainny pakiet, niż otrzymał. Napastnik może
gnoruje to ostrzeżenie, zakładając, że „coś się
blic ARP systemów w sieci lokalnej.
gromadzić hasła, ponieważ znajomość portu,
zmieniło na serwerze SSH”. Tak naprawdę
Systemy operacyjne sprawdzają, czy otrzyna który był przesyłany pakiet pozwala odniewiele protokołów i implementacji jest odmane odpowiedzi ARP dotyczą wysłanych
WWW.LINUX-MAGAZINE.PL
NUMER 18 LIPIEC 2005
29
TEMAT MIESIĄCA
Fałszowanie pakietów ARP
Zapobieganie atakom ARP
Rysunek 5: Podczas ataku przeprowadzonego przez Ettercap (Rysunek 4), klient (w tym przypadku odo) otrzymuje od serwera fałszywy klucz hosta. Klucz ten tak naprawdę pochodzi od
napastnika -- a nie jak oczekuje klient, od odpowiedniego serwera (bashir). Jeśli użytkownik zignoruje ostrzeżenie o nieprawidłowym kluczu, połączenie będzie manipulowane.
pornych na atak pośredniczący. Jednym
z wyjątków jest IPsec, który odmawia pracy,
gdy w procesie uwierzytelniania wystąpi jakikolwiek problem.
Z tego powodu prawie całość ruchu wewnętrznego jest podatna na ataki. Istnieją
nawet gotowe, łatwe do wykorzystania skryp-
ty przechwytujące hasła przesyłane ponad
pięćdziesięcioma różnymi protokołami. Ataki te działają na poziomie ARP, a z reguły
w dziennikach zapisuje się dostęp na poziomie IP, więc napastnicy mogą być całkiem
spokojni o to, że nikt nie zauważy ich działalności.
Jedno z podejść do problemu ataków ARP
mogłoby polegać na zakazaniu pobierania
i uruchamiania wszelkiego zewnętrznego
oprogramowania. Taka reguła jest jednak niezwykle trudna do wyegzekwowania. Administratorzy musieliby ograniczyć dostęp do łącza internetowego. Złośliwe oprogramowanie
może dostać się do sieci lokalnej wieloma drogami: HTTP, HTTPS, FTP czy pocztą elektroniczną. Administratorzy musieliby ponadto zakazać stosowania pamięci masowej, jak
dyskietek, dysków CD oraz urządzeń przenośnych, jak laptopy czy PDA. Z powodu znacznych ograniczeń użyteczności, takie rozwiązanie jest w praktyce nie do zastosowania.
W przypadku, gdy w sieci znajdują się tylko systemy Linux, w których użytkownicy
pracują bez praw konta root, automatycznie
unika się wielu potencjalnych ataków. Powód jest prosty: do wysyłki sfałszowanego pakietu ARP konieczne są uprawnienia konta
root w systemie. Nie ma jednak możliwości
uniknięcia uruchomienia systemu z dysku
CD lub przyłączenia do sieci obcego laptopa.
Narzędzia do ataków ARP
Poniżej omawiamy kilka programów używanych do przeprowadzania ataków wykorzystujących słabości protokołu ARP. Administrator może wykorzystać te narzędzia do
sprawdzenia odporności swojej sieci. Narzędzia te są dość użyteczne w celu demonstracji wagi zagrożenia ze strony ataków na poziomie protokołu ARP. Należy wszakże pamiętać, że prawdziwy problem nie wynika
z faktu, że te narzędzia istnieją, lecz z tego, że
protokół ARP jest z definicji bardzo mało bezpieczny.
Brian: Bardzo proste narzędzie (źródła występują w jednym pliku języka C) realizujące atak
zatruwania pamięci podręcznej ARP w celu
zablokowania funkcji przełącznika w sieci lokalnej. Dzięki temu napastnik może podsłuchiwać cały ruch odbywający się w sieci.
http://www.bournemouthbynight.co.uk/tools/
ARP-SK: Twórcy tego programu określają go
jako „szwajcarski scyzoryk dla ARP”. Jest dostępny dla systemów Unix i Windows. Program potrafi manipulować tablicami ARP
różnych urządzeń.
Cain & Abel: To zaawansowane narzędzie dla
systemu Windows rozpoczęło swoje istnienie
od prostego narzędzia do odzyskiwania haseł.
Podsłuchuje sieć i wykorzystuje różne techniki
odszyfrowywania zaszyfrowanych i zaciemnionych haseł. W wersji 2.5 tego narzędzia wprowadzono funkcję zatruwania tablic ARP, dzięki
czemu napastnik może podsłuchiwać ruch IP
w sieci przełączanej. Program przeprowadza
ataki na połączenia SSH i HTTPS.
http://www.arp-sk.org
http://www.oxid.it/cain.html
Arpoc i WCI: To program dla Linuksa i Windows, realizujący ataki pośredniczące w sieci
lokalnej. Odpowiada na każde żądanie ARP,
wysyłając sfałszowane odpowiedzi ARP,
i przekazuje wszystkie pakiety adresowane
poza sieć do odpowiedniego rutera.
Dsniff: Pakiet programów specjalizowanych
do różnych zadań. Dsniff, Filesnarf, Mailsnarf,
Msgsnarf, Urlsnarf oraz Webspy podsłuchują
ruch sieciowy i przechwytują interesujące dane
(hasła, adresy e-mail i pliki). Arpspoof, Dnsspoof oraz Macof pozwalają administratorom
i napastnikom uzyskać dostęp do danych teoretycznie zabezpieczonych przez przełącznik
sieciowy. Sshmitm i Webmitm obsługują ataki
pośredniczące na sesje SSH i HTTPS (autor
określa ten typ ataku mianem Monkey in the
Middle, czyli małpy pośredniczącej).
http://www.phenoelit.de/arpoc/
Arpoison: Narzędzie uruchamiane z wiersza
poleceń, tworzące sfałszowane pakiety ARP.
Użytkownik może określić adresy źródłowe
i docelowe adresy IP lub MAC.
http://arpoison.sourceforge.net
30
NUMER 18 LIPIEC 2005
http://naughty.monkey.org/~dugsong/dsniff/
WWW.LINUX-MAGAZINE.PL
Ettercap: Niezwykle skuteczny program z interfejsem tekstowym (Rysunek 4). Najnowsza
wersja posiada również interfejs GTK. Działania programu są przeprowadzane w sposób
automatyczny, program wyświetla w oknie listę potencjalnych celów ataku. Może służyć
do podsłuchiwania, ataków ARP, automatycznego przechwytywania haseł, jak również
potrafi manipulować danymi przechwyconych połączeń. Program ten potrafi atakować sesje SSHv1 oraz SSL (z wykorzystaniem
technik pośredniczących).
http://ettercap.sourceforge.net
Hunt: Resetuje połączenia, podsłuchuje dane,
przechwytuje sesje. Narzędzie stosuje między
innymi techniki fałszowania pakietów ARP.
http://packetstormsecurity.nl/sniffers/hunt/
Juggernaut: W roku 1997 Phrack Magazine opublikował program Juggernaut,
przodka wielu dostępnych obecnie programów do podsłuchiwania w sieci z możliwościami zatruwania pamięci podręcznej
ARP.
http://www.phrack.org/show.php?p=50&a=6
Parasite: Demon Parasite podsłuchuje sieć
lokalną i odpowiada na żądania ARP, wysyłając sfałszowane odpowiedzi ARP. Program
stopniowo „zdobywa funkcję” pośrednika
wszelkiego ruchu sieciowego.
http://www.thc.org/releases.php
Fałszowanie pakietów ARP
TEMAT MIESIĄCA
Aby zapobiec wielu atakom ARP, można
zastosować statyczne wpisy ARP. Zarządzanie taką konfiguracją wiąże się jednak
z ogromnym wysiłkiem ze strony administratorów, którzy muszą ręcznie ustawiać
adresy prawie wszystkich systemów
(oprócz ruterów i serwerów). Systemy operacyjne firmy Microsoft pozwalają jednak
na zatruwanie nawet ręcznie zdefiniowanych wpisów w tablicach ARP, co niweluje
wszelkie zabezpieczenia dokonane tym
sposobem.
Ponadto to rozwiązanie ma sens jedynie
w niewielkich sieciach, ponieważ liczba wpisów ARP wzrasta proporcjonalnie do kwadratu liczby węzłów w sieci. Innymi słowy,
w sieci zawierającej sto komputerów trzeba
zarządzać 9900 wpisami ARP (99 w każdym
systemie). To stanowi gigantyczny wysiłek
administratorski, szczególnie w przypadku
pojawienia się problemów w sieci.
ne pakiety ARP. Czujnik SNMP wykorzystuje protokół SNMP do komunikacji
z urządzeniami i sprawdzania stanu ich tablic ARP.
Systemy wykrywania włamań (IDS, zobacz ramka „Snort i ARP”) również mają
możliwość wykrywania ataków ARP, lecz
z reguły systemy tego typu instaluje się na
obrzeżach sieci. Ponadto pracownicy mogą
czuć się niekomfortowo wiedząc, że ich działania są śledzone przez system wykrywania
włamań. Administrator widzi cały ruch
w sieci i w ten sposób monitoruje działania
wszystkich pracowników. Użyteczność tego
podejścia jest ponadto dość kontrowersyjna,
ponieważ wiele narzędzi IDS ignoruje protokół ARP. Taki system okaże się nieskuteczny, gdy będzie miał do czynienia z atakami zatruwania ARP w środowisku wykorzystującym dynamiczne przyznawanie adresów IP (DHCP).
Zachować czujność
Szyfrowanie może pomóc
Inne techniki zapobiegania
atakom
Arpwatch [4] to narzędzie Open Source dla
systemów Unix monitorujące ruch ARP
w sieci. System z uruchomionym programem Arpwatch odczytuje informacje o adresach z każdego pakietu ARP i porównuje
ją z zapisaną bazą danych. Jeśli dane nie pasują do zapisanych wcześniej, program wysyła wiadomość e-mail do administratora.
Autorzy twierdzą, że Arpwatch obsługuje
SNMP, lecz nie udało nam się zastosować
tej opcji.
Wiele sieci wykorzystuje obecnie mechanizmy dynamicznego przyznawania adresów
IP, czyli DHCP (Dynamic Host Configuration Protocol). W takim środowisku Arpwatch będzie generował dużo fałszywych
alarmów z powodu częstych zmian odwzorowania adresów IP i MAC.
ARP-Guard [5] jest stosunkowo nowym
produktem firmy ISL, który wykorzystuje infrastrukturę czujników (sensorów). Czujniki
monitorują informację ARP i przekazują ją
do systemu zarządzającego, który analizuje
te dane i informuje administratora w przypadku wykrycia próby ataku. Architektura
pakietu ARP-Guard zapewnia dobrą skalowalność, a interfejs zarządzania za pośrednictwem przeglądarki WWW docenią administratorzy nieprzywykli do wiersza poleceń
powłoki.
ARP-Guard wykorzystuje czujniki sieci
lokalnej oraz SNMP. Czujnik sieci lokalnej
działa podobnie jak Arpwatch lub dowolny,
klasyczny system IDS -- analizuje napotka-
Gdy są stosowane protokoły kryptograficzne
(przede wszystkim IPsec) zapewniające poufność, autentyczność i integralność danych,
ataki ARP są zredukowane do prób wywoła-
Niektórzy producenci zapór sieciowych i ruterów twierdzą, że ich produkty potrafią wykrywać ataki fałszowania ARP, lecz nie jest
to tak do końca prawda. Systemy te potrafią
nia blokady usług. Każda próba podsłuchania lub zamanipulowania danych skończy
się fiaskiem. Jednakże może minąć pewien
czas, zanim IPsec oraz inne protokoły szyfrujące znajdą powszechne zastosowanie
i będą poprawnie konfigurowane w sieciach
lokalnych.
Jedna z grup badaczy zaproponowała zastąpienie protokołu ARP jego bezpieczniejszą wersją [7]. S-ARP wykorzystuje szyfrowanie, ośrodki certyfikacji CA i cyfrowo
podpisane komunikaty ARP. Należy jednak rozważyć, czy ten wysiłek jest uzasadniony: IPsec zapewnia większe bezpieczeństwo przy porównywalnym narzucie obciążenia łącza i ma uniwersalne zastosowanie,
natomiast S-ARP zabezpiecza tylko protokół ARP. Jedyna zaleta S-ARP polega na
tym, że relatywnie mniej obciąża procesor
komputera.
Snort i ARP
Snort [6] jest doskonałym przykładem sieciowego systemu IDS. Systemy detekcji włamań
pomagają administratorowi wykrywać ataki
sieciowe we wczesnym etapie i podjąć odpowiednie działania zaradcze. Snort wykorzystuje preprocesor Arpspoof, obsługujący
cztery mechanizmy detekcji:
■ Każde wykryte żądanie ARP jest weryfikowane pod kątem zgodności adresu źródłowego w ramce ethernetowej z adresem źródłowym pakietu ARP. Jeśli te dwa adresy są
niezgodne, Snort wywołuje ostrzeżenie.
W przypadku ataków zatruwania tablic ARP
adresy nie będą się różnić, więc ta metoda
detekcji nie będzie skuteczna.
■ Przy odpowiedzi na żądanie ARP porównywane są pary adresów źródłowych i docelowych żądania i odpowiedzi. Jeśli dowolna
z tych par nie jest zgodna, Snort wywołuje
ostrzeżenie. Ta metoda również nie wykrywa
ataków zatruwania tablic ARP, ale wykrywa
ataki pośredniczące, wykorzystujące ARP.
Z drugiej strony taka sytuacja może być
w zupełności legalna, gdy jeden komputer
odpowiada na żądania ARP w imieniu innego komputera.
■ System podnosi alarm, gdy pojawia się
żądanie ARP na adres hosta zamiast na ad-
WWW.LINUX-MAGAZINE.PL
res rozgłaszania. Taka sytuacja jest w konflikcie ze standardem (ponad dwudziestoletnim), lecz zdarzają się zupełnie legalne
powody takiego działania w sieci. Oryginalne ataki ARP nie wykorzystują żądań ARP
na adresy hostów, więc ta metoda detekcji
nie wykrywa niektórych ataków, w tym zatruwania ARP.
■ Snort sprawdza pakiety ARP w oparciu
o listy adresów IP oraz adresów MAC dostarczanych przez administratora. Jeśli źródłowy adres IP znajduje się na liście, Snort
odczytuje odpowiadający mu adres MAC
z listy i porównuje go z adresem MAC z pakietu ARP i ramki ethernetowej. W przypadku rozbieżności, Snort wysyła ostrzeżenie do administratora. Ten mechanizm jest
użyteczny głównie w niewielkich sieciach,
ponieważ przy dużych liczbach węzłów wysiłek administratorski znacznie się zwiększa. Nie ma rozsądnego sposobu użycia tej
metody w środowiskach wykorzystujących
dynamiczne przyznawanie adresów IP
(DHCP).
Jak widać, możliwości Snorta na polu wykrywania ataków ARP są mocno ograniczone,
podobna sytuacja występuje w większości
systemów detekcji włamań.
NUMER 18 LIPIEC 2005
31
TEMAT MIESIĄCA
Fałszowanie pakietów ARP
wykrywać i zapisywać w dziennikach informacje o modyfikacji ich własnych tablic
ARP, nie mają jednak możliwości stwierdzić,
czy zmiana nie wynikła z legalnej przyczyny.
Podział sieci na większą liczbę segmentów
i przyłączanie do nich mniejszej liczby użytkowników może wpłynąć na obniżenie ilości
ataków ARP. Zarządzane przełączniki sieciowe, pozwalające administratorom na większą
kontrolę nad ruchem sieciowym, zapewniają
zabezpieczenie przed atakami ARP, a ponadto znacznie optymalizują sam ruch. Są jednak kosztowne, przysparzają dodatkowych
zadań administratorskich i mogą sprawiać
problemy niektórym aplikacjom.
Część programistów próbuje dodać warstwę zabezpieczeń protokołu IP na urządzeniach końcowych. Patch na jądro Linuksa
o nazwie Antidote [8] powoduje, że system Linux przed modyfikacją wpisu ARP wysyła żądanie do poprzedniego adresu MAC obowiązującego we wpisie. System zmodyfikuje wpis
w tablicy ARP wyłącznie w przypadku, gdy
żądanie pozostanie bez odpowiedzi. Takie podejście nie stanowi zabezpieczenia przed sabotażem. Napastnik musi po prostu przeprowadzić atak w okresie, gdy pozostałe systemy
w sieci nie działają (są wyłączone lub niedostępne). W przypadku rozwiązań wykorzystujących mechanizmy wysokiej dostępności lub
równoważenia obciążenia, łatka Antidote może zablokować dostęp do takich systemów.
Inna metoda zabezpieczająca przed zatruwaniem pamięci podręcznej ARP polega na
zablokowaniu dowolnych zmian w odwzoro-
waniach adresów MAC i IP. Łatka Anticap
[9] jest dostępna dla systemów Linux, FreeBSD oraz NetBSD. Podobne rozwiązanie
istnieje też w systemie Solaris. Zabezpieczenie wykorzystuje okres ważności wpisu w tablicy ARP, przed upłynięciem którego nie
jest możliwa jego modyfikacja. Tę funkcję
można dowolnie konfigurować, lecz zabezpiecza ona jedynie przed fałszowaniem pakietów systemów, które pracują bez przerw.
Aby sfałszować nowy wpis ARP, wystarczy
poczekać, aż upłynie jego okres ważności.
Jądra Linuksa z serii 2.4 i nowsze nie reagują na nieproszone odpowiedzi ARP. Niestety, to zabezpieczenie łatwo oszukać, co
jest szczegółowo objaśnione w pliku README pakietu Ettercap. Jądro zawsze musi
przetworzyć żądanie ARP. Gdy do jądra dociera kombinacja adresu IP i MAC (źródłowego), jądro dodaje te dane do swojej pamięci podręcznej ARP. Zatem napastnik musi
jedynie wysłać sfałszowane żądanie ARP. Ettercap wysyła kombinacje żądań i odpowiedzi ARP, aby oszukać dowolny system podatny na jedną z tych technik.
Zabezpieczenia wbudowane w stos IP są
bezsilne na ataki fałszowania ARP. Jeśli napastnik odpowie na żądanie ARP szybciej od
właściwej maszyny, do której adresowane było żądanie, to wygrywa wyścig i jego adres
będzie dodany do tablicy ARP.
Nikt nie jest bezpieczny
Współczesne techniki i protokoły nie zapewniają pełnego zabezpieczenia przed atakami
ARP, można jednak uzbroić się w narzędzia
pomocnicze, jak systemy detekcji włamań i
specjalizowane detektory anomalii w danych
ARP, które pozwolą wykryć większość prymitywniejszych prób manipulacji tablicami
ARP. Aby zabezpieczyć się w pełni, należy
stale stosować IPsec w sieci lokalnej. Ignorowanie tego problemu to nie najlepszy pomysł, chyba że w pełni ufa się wszystkim
użytkownikom przyłączonym do korporacyjnej sieci lokalnej. ■
INFO
[1] Analiza bezpieczeństwa przeprowadzona
przez KPMG: http://www.kpmg.com/about/press.asp?cid=469
[2] Address Resolution Protocol, RFC 826:
http://www.ietf.org/rfc/rfc826.txt
[3] Reverse ARP, RFC 903:
http://www.ietf.org/rfc/rfc903.txt
[4] Arpwatch: http://www-nrg.ee.lbl.gov
und http://www.securityfocus.com/tools/142
[5] ARP-Guard: https://www.arp-guard.com
[6] Snort: http://www.snort.org
[7] Secure ARP: http://security.dico.unimi.it/research.en.html#sarpd and
http://www.acsac.org/2003/papers/111.pdf
[8] Patch Antidote na jądro Linuksa:
http://www.securityfocus.com/archive/1/299929
[9] Patch Anticap na jądro Linuksa:
http://cvs.antifork.org/cvsweb.cgi/anticap/
ZAMÓW REKLAMĘ
W LINUX MAGAZINE
Reklama internetowa w serwisie
www.linux-magazine.pl
W przypadku jakichkolwiek
pytań dotyczących reklamy
w Linux Magazine
prosimy o kontakt!
Dział reklamy:
Andrzej Chłodziński
tel/fax: (22) 642 70 05
[email protected]
32
NUMER 18 LIPIEC 2005
WWW.LINUX-MAGAZINE.PL

Podobne dokumenty