Jest coś niepokojącego w sytuacji, w której ktoś zaczyna po kolei pukać do wszystkich drzwi w budynku. Jedno pukanie? Nic szczególnego. Może pomyłka, może ktoś czegoś szuka. Ale jeśli ktoś w ciągu kilku sekund sprawdza każde drzwi, jedno po drugim, w niemal równych odstępach czasu, trudno nie zacząć się zastanawiać.
 

W sieci komputerowej wygląda to podobnie. Tyle że zamiast drzwi są adresy IP, zamiast pukania - pakiety, a zamiast ciekawskiego przechodnia pojawia się ktoś, kto próbuje ustalić, co właściwie znajduje się po drugiej stronie kabla.
 

Zanim dojdzie do włamania, trzeba przecież poznać teren. Znaleźć urządzenia, sprawdzić dostępne usługi, poszukać otwartych portów. A skoro trzeba pytać, trzeba wysyłać pakiety. A skoro wysyła się pakiety, ktoś może je zobaczyć.
 

I właśnie tutaj zaczyna się interesująca część pracy z Wiresharkiem.

Najpierw trzeba wiedzieć, gdzie się weszło

Wyobraźmy sobie intruza, który właśnie znalazł się w obcej sieci. Nie wie, które urządzenia są aktywne, jakie mają adresy ani jakie usługi działają. Musi więc rozpocząć rekonesans. W książce Wireshark. Analiza ruchu sieciowego i wykrywanie włamań Adam Józefiok pokazuje, jak takie działania wyglądają z perspektywy analityka obserwującego ruch sieciowy.
 

Jedną z najprostszych metod jest skanowanie ARP. Narzędzie wysyła zapytania do kolejnych adresów, a aktywne urządzenia odpowiadają. W efekcie można zebrać informacje o hostach, adresach IP i adresach MAC.
 

Samo zapytanie ARP nie jest oczywiście niczym podejrzanym. Sieci korzystają z ARP na co dzień. Problem pojawia się wtedy, gdy zwyczajna komunikacja zaczyna przypominać systematyczne przeszukiwanie całego segmentu.
 

W eksperymencie opisanym w książce uruchomienie skanowania spowodowało lawinę zapytań kierowanych na adres rozgłoszeniowy. Aktywne stacje odpowiedziały, odsłaniając część struktury sieci.
 

I właśnie wtedy Wireshark staje się ciekawym narzędziem obserwacyjnym. Nie dlatego, że potrafi magicznie powiedzieć „atak”, ale dlatego, że pozwala zobaczyć powtarzalność zachowania.
 

„A które drzwi są otwarte?”

Kiedy wiadomo już, jakie urządzenia znajdują się w sieci, pojawia się następne pytanie: jakie usługi są na nich dostępne? Tu zaczyna się skanowanie portów, a jednym z przykładów jest skan TCP SYN.
 

Mechanizm jest stosunkowo prosty. Skaner wysyła SYN, a odpowiedź hosta dostarcza informacji o stanie portu. Zamknięty port może odpowiedzieć RST/ACK, natomiast przy otwartym może pojawić się SYN/ACK, po którym skaner kończy próbę bez pełnego zestawienia połączenia.
 

W Wiresharku nie oglądamy więc tylko wyniku skanowania. Możemy zobaczyć sam proces: kolejne SYN-y, odpowiedzi, zmieniające się porty i kolejne hosty.
 

Jeżeli takie sekwencje zaczynają pojawiać się bardzo szybko i regularnie, sytuacja wygląda zupełnie inaczej niż podczas normalnego korzystania z sieci. W analizowanym przez autora przykładzie kolejne komunikaty SYN pojawiały się w odstępach około 1–3 ms.
 

Ktoś nie przegląda strony. Nie pobiera dokumentu. Ktoś sprawdza, co jest dostępne.
 

Najciekawsze może być to, że nikt nie odpowiada

Skanowanie UDP jest bardziej kłopotliwe, bo sam protokół nie dostarcza tak jednoznacznych informacji jak TCP. Pakiet może wywołać odpowiedź ICMP, może pojawić się odpowiedź UDP, ale może też nie wydarzyć się nic.
 

I właśnie to „nic” trzeba umieć interpretować. Brak odpowiedzi może oznaczać otwarty port, ale równie dobrze może wynikać z filtrowania ruchu przez firewall. Stąd stan open/filtered, który nie daje jednoznacznej odpowiedzi.
 

W przechwyconym ruchu można jednak dostrzec charakterystyczny rytm: krótkie datagramy UDP kierowane do kolejnych portów i hostów, a następnie odpowiedzi ICMP informujące o niedostępności części usług.
 

Znów najważniejszy nie jest pojedynczy pakiet. Liczy się skala, częstotliwość i powtarzalność. Jedno pytanie może być normalne. Setki podobnych pytań zadawanych w równym rytmie zaczynają wyglądać już trochę inaczej.
 

Nie każda anomalia oznacza atak

I tutaj przydaje się zdrowy rozsądek. Duża liczba pakietów ARP nie oznacza automatycznie włamania. Taki ruch może pojawić się podczas rekonfiguracji urządzeń, odświeżania cache'u, pracy środowisk wirtualnych czy działania mechanizmów wysokiej dostępności. Nie istnieje uniwersalny próg, po którego przekroczeniu można postawić diagnozę.
 

Podobnie jest ze skanowaniem SYN. Charakterystyczne cechy ruchu mogą pomóc w rozpoznaniu sytuacji, ale zależą między innymi od wersji narzędzia, systemu operacyjnego, rodzaju skanu i urządzeń pośredniczących. Nie można więc traktować jednego wzorca jako niepodważalnego dowodu.
 

To chyba jedna z ważniejszych rzeczy, których uczy analiza ruchu sieciowego: najpierw trzeba wiedzieć, jak wygląda normalność.
 

Dopiero wtedy można zauważyć, że coś od niej wyraźnie odstaje.
 

Kiedy ARP zaczyna kłamać

ARP może służyć nie tylko do rozpoznawania sieci. Może też zostać wykorzystany do manipulowania komunikacją. W przypadku ARP spoofingu spreparowane odpowiedzi mogą zmienić mapowanie adresów IP i MAC w tablicach ofiary, a w odpowiednim scenariuszu skierować jej ruch przez urządzenie atakującego.
 

Tutaj również trzeba patrzeć na wzorce. Samo wystąpienie gratuitous ARP nie oznacza ataku. Znacznie ciekawsza staje się sytuacja, gdy jeden adres MAC zaczyna być przedstawiany jako właściciel wielu adresów IP albo pojawia się nagły wzrost liczby ARP Reply.
 

Autor pokazuje analizę takich pakietów w Wiresharku i zwraca uwagę na niespójne mapowania IP/MAC oraz powtarzające się odpowiedzi.
 

Nagle zwykła lista pakietów zaczyna przypominać zapis czyjegoś działania.
 

Ktoś pyta. Ktoś odpowiada. Ktoś sprawdza kolejne porty. Ktoś próbuje podszyć się pod inne urządzenie.
 

A Wireshark to wszystko zapisuje.
 

Sieć zostawia ślady

To chyba najbardziej interesująca rzecz w analizie ruchu sieciowego. Atakujący może próbować pozostać niezauważony, ale jeśli chce poznać sieć, musi zdobyć informacje. A zdobywanie informacji wymaga komunikacji.
 

Dlatego Wireshark. Analiza ruchu sieciowego i wykrywanie włamań prowadzi znacznie dalej niż samo poznanie interfejsu programu. Książka obejmuje między innymi skanowanie, ARP poisoning, MAC flooding, manipulacje STP, spoofing IP, ICMP, DNS, TLS, pocztę elektroniczną, QUIC oraz analizę statystyczną ruchu.
 

Bo Wireshark nie powie po prostu: „tu zaczyna się włamanie”.
 

Pokaże za to, jak sieć zachowuje się wtedy, gdy ktoś zaczyna ją badać. Najpierw jedno zapytanie. Potem kolejne. Później dziesiątki SYN-ów kierowanych do różnych portów. Wreszcie wzorce, które zaczynają układać się w całość.
 

Można je przeoczyć. Można też nauczyć się je czytać.
 

Bo w sieci włamanie nie zawsze zaczyna się od alarmu i czerwonych kontrolek. Czasem zaczyna się bardzo niepozornie - od pytania: „Kto tutaj jest?”