Tablica ARP
Co to jest ARP? Do czego służy i dlaczego powinniśmy o niej wiedzieć? Mało kto z codziennych użytkowników komputera zdaje sobie sprawę jak ważne są wpisy ARP.

Zacznijmy od początku. ARP (ang. Address Resolution Protocol) jest to protokół tłumaczący adresy IP na adres MAC danego komputera. Dzięki temu urządzenia w jednej podsieci mogą porozumiewać się w niższej warstwie modelu ISO/OSI (warstwa 2). Tablica ARP istnieje na każdym komputerze. Aby ją wyświetlić w wierszu poleceń należy wpisać: „arp -a”. Wpisy ARP dzielimy na 2 rodzaje:

  • statyczne, czyli dodane przez nas samych, dzięki poleceniu: „arp -s IP_hosta MAC_hosta”, gdzie IP_hosta i MAC_hosta musimy znać. Dzięki przypisaniu statycznemu mamy pewność, że dany MAC adres jest właściwie powiązany z odpowiednim urządzeniem i dzięki temu zmniejszamy możliwość przechwytywania naszych danych wysyłanych do sieci. Ale o tym później....
  • dynamiczny – Najczęściej stosowany wpis. Zwłaszcza u ludzi, którzy nigdy nie słyszeli o wpisach ARP. Komputer sam przypisuje sobie MAC adres znając IP danego urządzenia.
Aby uzyskać MAC adres komputer wysyła pakiet do wszystkich z zapytaniem:

Who has 192.168.1.1? Tell 192.168.1.100

W powyższym przykładzie widzimy, że komputer o IP: 192.168.1.100 wysyła pakiet do wszystkich z zapytaniem: „Kto z Was to IP 192.168.1.1?”.

Następnie urządzenie z takim numerem wysyła odpowiedź:
„192.168.1.1 is at 00:1a:23:ab:83:59”.

Odpowiedź brzmi: „To jestem ja! Podaję swój MAC adres:  00:1a:23:ab:83:59”.

Powyżej widzimy rozmowę za pomocą dwóch pakietów urządzeń, gdzie jedno z nich potrzebuje MAC adres drugiego.


OK, mamy podstawy, wiemy co to jest tablica ARP, ale czemu ta wiedza ma nam służyć? Po co nam znajomość tej tablicy? Nie wystarczy nam, że posługujemy się dynamicznymi wpisami? Otóż przejdziemy teraz trochę, ale tylko trochę na ciemną stronę informatyków i zobaczymy co można robić znając takie pakiety. ARP Spoofing – jest to podmiana tablicy ARP. Niestety w dzisiejszych czasach nie trzeba nawet wiedzieć jak wygląda pakiet ARP, trzeba jedynie dobrze posługiwać się wyszukiwarką jak np. google, aby jakakolwiek osoba mogła nam zatruć tablicę ARP. Działa to w bardzo prosty sposób. Ofiara wewnątrz sieci LAN wysyła co powiedzmy sekundę spreparowany pakiet ARP, gdzie zamiast MAC adres np. serwera pojawia się MAC atakującego. Może spróbujmy to sobie narysować.

PC1   ----   switch   ----   serwer <---uproszczony schemat, gdzie użytkownik PC1 komunikuje się poprzez Switch z serwerem, gdzie ma tylko dostęp po wpisaniu odpowiedniego hasła. Wszystko ładnie działa:
  • Użytkownik wpisuje ip serwera,
  • PC1 wysyła zapytanie ARP aby dostać jego MAC adres,
  • Serwer odpowiada podając swój MAC,
  • Użytkownik wysyła hasło do serwera w celu swojej weryfikacji,
  • Użytkownik dostaje się na serwer
A teraz sytuacja, kiedy wewnątrz sieci jest atakujący, który zatruwa PC1 tablicę ARP.

PC1  ---- Switch  ---- atakujący  ----  Switch  ---- serwer
<--- tak jak  powyżej. PC1 chce się tylko i wyłącznie skomunikować z serwerem. Jednakże atakujący wysyła do PC1 spreparowane pakiety ARP, gdzie co sekundę aktualizuje mu tablicę ARP podmieniając MAC adres serwera na MAC adres swojego komputera. Aby jednak użytkownik PC1 nie zorientował się, że coś jest nie tak i nie zaczął wzywać IT helpdesk atakujący po przejęciu paczki wysyła ją dalej do serwera. W ten sam sposób można zatruć tablicę ARP serwera, aby on przesyłał najpierw paczki do atakującego, a ten dopiero do PC1. A więc w punktach jak to działa:

  • Użytkownik PC1 wpisuje ip serwera,
  • PC1 wysyła zapytanie ARP aby dostać MAC adres serwera,
  • Serwer odpowiada podając swój MAC,
  • Atakujący podmienia wpis ARP podając IP serwera, ale MAC adres swój,
  • Użytkownik poprzez komputer atakującego łączy się z serwerem i podaje hasło,
  • Atakujący przechwytuje pakiety z hasłem, ale przesyła je również dalej lub czyści tablicę ARP
  • Użytkownik PC1 łączy się serwerem.

Jak widzimy w powyższym przykładzie atakujący w bardzo prosty sposób może uzyskać nasze hasła, konta, praktycznie wszystko. Powyższy przykład jest trywialny, co jednak jeżeli ktoś przechwyci nasze logowanie się do banku, na serwery z tajnymi danymi? Atak taki jest również znany jako „Man in the middle”, czyli człowiek w środku. Oczywiście są również inne sposoby na zabezpieczenie się, chociażby certyfikaty publiczne, gdzie jedna ze stron zna wcześniej certyfikat drugiej strony, lub jest w stanie go zweryfikować.

Jak widać, to że jesteśmy za firewallem, antywirusem, routerem, który ma włączony firewall sprzętowy itd., itd. wcale nie zapewnia nam 100% pewności w tym co robimy. Atak na tablicę ARP w połączeniu ze źle chronioną siecią bezprzewodową (np. klucz WEP), gdzie każdy człowiek posługujący się google jest w stanie się „włamać” w ciągu 2 minut i podłączyć do sieci.... Nie trzeba chyba tłumaczyć do czego to może doprowadzić....