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