Wireshark i tcpdump: Para mocy debugowania

Wireshark, darmowy sniffer pakietów o otwartym kodzie źródłowym i analizator protokołów sieciowych, stał się niezbędnym narzędziem do rozwiązywania problemów z siecią, analizy i bezpieczeństwa (po obu stronach). Niniejszy artykuł zagłębia się w funkcje, zastosowania i praktyczne wskazówki dotyczące wykorzystania pełnego potencjału Wireshark, rozszerzając aspekty, które mogły zostać pominięte w dyskusjach lub demonstracjach. Niezależnie od tego, czy są Państwo programistami, ekspertami ds. bezpieczeństwa, czy po prostu interesują się operacjami sieciowymi, niniejszy przewodnik zwiększy Państwa zrozumienie Wireshark i jego zastosowań.

Wprowadzenie do Wireshark

Wireshark został początkowo opracowany przez Erica Rescorlę i Geralda Combsa i zaprojektowany do przechwytywania i analizowania pakietów sieciowych w czasie rzeczywistym. Jego możliwości obejmują różne interfejsy sieciowe i protokoły, co czyni go wszechstronnym narzędziem dla każdego, kto zajmuje się sieciami. W przeciwieństwie do swojego odpowiednika z linii poleceń, tcpdump, interfejs graficzny Wireshark upraszcza proces analizy, prezentując dane w przyjaznym dla użytkownika “widoku proto”, który organizuje pakiety w hierarchicznej strukturze. Ułatwia to szybką identyfikację protokołów, portów i przepływów danych.

Kluczowe cechy Wireshark to:

  • Graficzny interfejs użytkownika (GUI): Ułatwia analizę pakietów sieciowych w porównaniu do narzędzi wiersza poleceń.
  • Widok proto: Wyświetla dane pakietów w strukturze drzewa, upraszczając identyfikację protokołu i portu.
  • Kompatybilność: Obsługuje szeroki zakres interfejsów sieciowych i protokołów

Monitory sieciowe w przeglądarce

FireFox i Chrome zawierają wbudowane znacznie lepsze narzędzie do monitorowania sieci. Jest ono lepsze, ponieważ jest prostsze w użyciu i działa z bezpiecznymi witrynami od razu po wyjęciu z pudełka. Jeśli może Pan użyć przeglądarki do debugowania ruchu sieciowego, powinien Pan to zrobić.

W przypadkach, gdy ruch wymaga informacji o protokołach niskiego poziomu lub odbywa się poza przeglądarką, Wireshark jest kolejnym najlepszym rozwiązaniem.

Instalacja i rozpoczęcie pracy

Aby rozpocząć pracę z Wireshark, proszę odwiedzić stronę oficjalną stronę internetową do pobrania. Proces instalacji jest prosty, ale należy zwrócić uwagę na instalację narzędzi wiersza poleceń, które mogą wymagać osobnych kroków. Po uruchomieniu Wiresharka, użytkownik zostanie powitany wyborem interfejsów sieciowych, jak widać poniżej. Wybór odpowiedniego interfejsu, takiego jak pętla zwrotna do debugowania lokalnego serwera, ma kluczowe znaczenie dla przechwytywania odpowiednich danych.

Witamy w Wireshark: Przechwytywanie ekranu

Podczas debugowania lokalnego serwera (localhost), proszę użyć interfejsu loopback. Zdalne serwery będą prawdopodobnie pasować z interfejsem en0 karty sieciowej. Można użyć wykresu aktywności obok karty sieciowej, aby zidentyfikować aktywne interfejsy do przechwytywania.

Nawigacja przez szumy za pomocą filtrów

Jednym z wyzwań związanych z używaniem Wiresharka jest przytłaczająca ilość przechwytywanych danych, w tym nieistotny “szum tła”, jak widać na poniższym obrazku.

Szum tła

Wireshark radzi sobie z tym problemem za pomocą potężnych filtrów wyświetlania, pozwalając użytkownikom skupić się na określonych portach, protokołach lub typach danych. Przykładowo, filtrowanie ruchu TCP na porcie 8080 może znacznie zmniejszyć ilość niepowiązanych danych, ułatwiając debugowanie określonych problemów.

Filtrowanie ruchu TCP na porcie 8080

Proszę zauważyć, że w górnej części interfejsu użytkownika Wireshark znajduje się widżet uzupełniania, który pozwala łatwiej znaleźć wartości.

W tym przypadku filtrujemy według portu tcp.port == 8080 który jest portem używanym zazwyczaj w serwerach Java (np. Spring Boot/tomcat).

Ale to nie wystarczy, ponieważ HTTP jest bardziej zwięzły. Możemy filtrować według protokołu dodając http do filtra, który zawęża widok do żądań i odpowiedzi HTTP, jak pokazano na poniższym obrazku.

Widok żądań i odpowiedzi HTTP

Głęboka analiza danych

Wireshark wyróżnia się zdolnością do analizowania i prezentowania danych sieciowych w przystępny sposób. Na przykład odpowiedzi HTTP zawierające dane JSON są automatycznie analizowane i wyświetlane w czytelnej strukturze drzewa, jak widać poniżej. Funkcja ta jest nieoceniona dla programistów i analityków, zapewniając wgląd w dane wymieniane między klientami i serwerami bez ręcznego dekodowania.

Odpowiedzi HTTP zawierające dane JSON, automatycznie analizowane i wyświetlane w czytelnej strukturze drzewa

Wireshark analizuje i wyświetla dane JSON w panelu analizy pakietów. Oferuje zarówno widok szesnastkowy, jak i ASCII dla surowych danych pakietów.

Zastosowanie wykraczające poza podstawowe

Podczas gdy podstawowe funkcje Wiresharka zaspokajają szeroki zakres zadań sieciowych, jego prawdziwa siła leży w zaawansowanych funkcjach, takich jak analiza sieci Ethernet, deszyfrowanie HTTPS i debugowanie między urządzeniami. Zadania te mogą jednak wymagać skomplikowanych kroków konfiguracyjnych i głębszego zrozumienia protokołów sieciowych i środków bezpieczeństwa.

Istnieją dwa duże wyzwania podczas pracy z Wireshark:

  • Deszyfrowanie HTTPS: Odszyfrowanie ruchu HTTPS wymaga dodatkowej konfiguracji, ale zapewnia wgląd w bezpieczną komunikację.
  • Debugowanie urządzeń: Wireshark może być używany do rozwiązywania problemów sieciowych na różnych urządzeniach, co wymaga określonej wiedzy na temat konfiguracji sieci.

Podstawy szyfrowania HTTPS

HTTPS wykorzystuje Transport Layer Security (TLS) lub jego poprzednika, Secure Sockets Layer (SSL), do szyfrowania danych. Ten mechanizm szyfrowania zapewnia, że wszelkie dane przesyłane między serwerem internetowym a przeglądarką pozostają poufne i nienaruszone. Proces ten obejmuje szereg kroków, w tym uzgadnianie, szyfrowanie danych i sprawdzanie integralności danych.

Odszyfrowanie ruchu HTTPS jest często niezbędne dla programistów i administratorów sieci do rozwiązywania problemów z błędami komunikacji, analizowania wydajności aplikacji lub zapewnienia, że wrażliwe dane są prawidłowo szyfrowane przed transmisją. Jest to potężna zdolność do diagnozowania złożonych problemów, których nie można rozwiązać po prostu sprawdzając niezaszyfrowany ruch lub dzienniki serwera.

Metody odszyfrowywania HTTPS w Wireshark

Ważne: Odszyfrowywanie ruchu HTTPS powinno odbywać się wyłącznie w sieciach i systemach, których są Państwo właścicielami lub mają Państwo wyraźne pozwolenie na ich analizę. Nieautoryzowane odszyfrowywanie ruchu sieciowego może naruszać przepisy dotyczące prywatności i standardy etyczne.

Rejestrowanie klucza Pre-Master Secret

Jedną z powszechnych metod jest użycie tajnego klucza pre-master do odszyfrowania ruchu HTTPS. Przeglądarki takie jak Firefox i Chrome mogą rejestrować tajne klucze pre-master do pliku, jeśli są tak skonfigurowane. Wireshark może następnie użyć tego pliku do odszyfrowania ruchu:

  1. Proszę skonfigurować przeglądarkę: Proszę ustawić zmienną środowiskową (SSLKEYLOGFILE), aby określić plik, w którym przeglądarka zapisze klucze szyfrowania.
  2. Przechwytywanie ruchu: Proszę użyć Wireshark do przechwycenia ruchu jak zwykle.
  3. Proszę odszyfrować ruch: Proszę wskazać Wiresharkowi plik z kluczami pre-master secret (poprzez preferencje Wiresharka), aby odszyfrować przechwycony ruch HTTPS.

Korzystanie z serwera proxy

Inne podejście polega na kierowaniu ruchu przez serwer proxy, który odszyfrowuje ruch HTTPS, a następnie ponownie szyfruje go przed wysłaniem do miejsca docelowego. Ta metoda może wymagać skonfigurowania dedykowanego serwera proxy deszyfrującego, który może obsługiwać szyfrowanie/deszyfrowanie TLS:

  1. Proszę skonfigurować serwer proxy deszyfrujący: Narzędzia takie jak Mitmproxy lub Burp Suite mogą działać jako pośrednik, który odszyfrowuje i rejestruje ruch HTTPS.
  2. Proszę skonfigurować sieć tak, aby przekierowywała ruch przez serwer proxy: Proszę upewnić się, że ustawienia sieciowe klienta kierują ruch przez serwer proxy.
  3. Inspect Traffic: Proszę użyć narzędzi serwera proxy, aby bezpośrednio sprawdzić odszyfrowany ruch.

Integracja tcpdump z Wireshark dla lepszej analizy sieci

Podczas gdy Wireshark oferuje graficzny interfejs do analizy pakietów sieciowych, istnieją scenariusze, w których korzystanie z niego bezpośrednio może być niewykonalne ze względu na zasady bezpieczeństwa lub ograniczenia operacyjne. tcpdump, potężny analizator pakietów wiersza poleceń, staje się nieoceniony w takich sytuacjach, zapewniając elastyczne i mniej inwazyjne środki przechwytywania ruchu sieciowego.

Rola tcpdump w rozwiązywaniu problemów sieciowych

tcpdump pozwala na przechwytywanie pakietów sieciowych bez graficznego interfejsu użytkownika, dzięki czemu idealnie nadaje się do użytku w środowiskach o surowych wymaganiach bezpieczeństwa lub ograniczonych zasobach. Działa na zasadzie przechwytywania ruchu sieciowego do pliku, który można następnie przeanalizować w późniejszym czasie lub na innym komputerze za pomocą Wireshark.

Kluczowe scenariusze użycia tcpdump

  • Środowiska o wysokim poziomie bezpieczeństwa: W miejscach takich jak banki lub instytucje rządowe, gdzie uruchamianie snifferów sieciowych może stanowić zagrożenie dla bezpieczeństwa, tcpdump oferuje mniej inwazyjną alternatywę.
  • Serwery zdalne: Debugowanie problemów na serwerze w chmurze może być trudne przy użyciu Wiresharka ze względu na interfejs graficzny; zrzuty tcpdump mogą być przesyłane i analizowane lokalnie.
  • Klienci dbający o bezpieczeństwo: Klienci mogą niechętnie zezwalać na uruchamianie narzędzi innych firm w swoich systemach; obsługa tcpdump z wiersza poleceń jest często bardziej przyjazna.

Skuteczne korzystanie z tcpdump

Przechwytywanie ruchu za pomocą tcpdump obejmuje określenie interfejsu sieciowego i pliku wyjściowego do przechwytywania. Proces ten jest prosty, ale potężny, pozwalając na szczegółową analizę interakcji sieciowych:

  1. Składnia polecenia: Podstawowa struktura poleceń inicjujących przechwytywanie obejmuje określenie interfejsu sieciowego (np, en0 dla połączeń bezprzewodowych) i nazwę pliku wyjściowego.
  2. Wykonanie: Po uruchomieniu polecenia tcpdump po cichu przechwytuje pakiety sieciowe. Przechwytywanie trwa do momentu ręcznego zatrzymania, w którym to momencie przechwycone dane mogą zostać zapisane do określonego pliku.
  3. Otwieranie przechwyconych pakietów w Wireshark: Plik wygenerowany przez tcpdump można otworzyć w Wireshark w celu szczegółowej analizy, wykorzystując zaawansowane funkcje Wireshark do analizy i zrozumienia ruchu sieciowego.

Poniżej przedstawiono tcpdump i jego dane wyjściowe:

$ sudo tcpdump -i en0 -w output
Password:
tcpdump: listening on en, link-type EN10MB (Ethernet), capture size 262144 bytes
^C3845 packets captured
4189 packets received by filter
0 packets dropped by kernel

Wyzwania i rozważania

Identyfikacja prawidłowego interfejsu sieciowego do przechwytywania w systemach zdalnych może wymagać dodatkowych kroków, takich jak użycie funkcji ifconfig aby wyświetlić listę dostępnych interfejsów. Ten krok ma kluczowe znaczenie dla zapewnienia, że odpowiedni ruch jest przechwytywany do analizy.

Słowo końcowe

Wireshark wyróżnia się jako potężne narzędzie do analizy sieci, oferujące głęboki wgląd w ruch sieciowy i protokoły. Niezależnie od tego, czy chodzi o niskopoziomowe prace sieciowe, analizę bezpieczeństwa czy tworzenie aplikacji, funkcje i możliwości Wiresharka sprawiają, że jest on niezbędnym narzędziem w arsenale technicznym. Dzięki praktyce i eksploracji użytkownicy mogą wykorzystać Wireshark do odkrywania szczegółowych informacji o swoich sieciach, rozwiązywania złożonych problemów i skuteczniejszego zabezpieczania swoich środowisk.

Połączenie łatwości obsługi z głęboką analityką sprawia, że Wireshark pozostaje rozwiązaniem dla profesjonalistów sieciowych z całego spektrum. Jego ciągły rozwój i szerokie zastosowanie podkreślają jego pozycję jako kamienia węgielnego w dziedzinie analizy sieci.

Połączenie możliwości tcpdump do przechwytywania ruchu sieciowego z analityczną sprawnością Wireshark oferuje kompleksowe rozwiązanie do rozwiązywania problemów i analizy sieci. Połączenie to jest szczególnie przydatne w środowiskach, w których bezpośrednie użycie Wiresharka nie jest możliwe lub idealne. Chociaż oba narzędzia posiadają stromą krzywą uczenia się ze względu na ich potężne i złożone funkcje, razem tworzą niezbędny zestaw narzędzi dla administratorów sieci, specjalistów ds. bezpieczeństwa i programistów.

To zintegrowane podejście nie tylko odpowiada na wyzwania związane z przechwytywaniem i analizowaniem ruchu sieciowego w różnych kontekstach operacyjnych, ale także podkreśla wszechstronność i głębię narzędzi dostępnych do zrozumienia i zabezpieczenia nowoczesnych sieci.

Filmy

Wireshark

tcpdump