12 analizatorów pakietów sieciowych dla Sysadmin i analityków bezpieczeństwa

Twoja sieć jest kręgosłupem Twojej działalności biznesowej. Upewnij się, że wiesz, co się w nim dzieje.

Pod wieloma względami krajobraz dla cyfrowych firm przeszedł rewolucję lub dwie. Co zaczęło się tak proste Skrypty CGI napisany w Perlu teraz rozkwitł w klastrowych wdrożeniach działających w pełni zautomatyzowanych na Kubernetes i innych frameworkach orkiestracyjnych (przepraszam za ciężki żargon — wcale tego nie zmyślam; po prostu tak jest w dzisiejszych czasach!).

Typowa skonteneryzowana, rozproszona nowoczesna aplikacja internetowa (źródło: medium.com)

Ale nie mogę się powstrzymać od uśmiechu na myśl, że podstawy są nadal takie same, jak w latach siedemdziesiątych.

Wszystko, co mamy, to abstrakcje oparte na abstrakcjach wspieranych przez twarde, fizyczne kable, które tworzą sieć (w porządku, są sieci wirtualne, ale masz pomysł). Jeśli chcemy wymyślić, możemy podzielić sieć na warstwy zgodnie z modelem OSI, ale wszystko powiedziane i zrobione, zawsze mamy do czynienia z Protokoły TCP/IP (ostrzeżenie, przed nami ciężkie czytanie!), pingi, routery, z których wszystkie mają jeden wspólny cel — przesyłanie pakietów danych.

Czym więc jest pakiet sieciowy?

Bez względu na to, co robimy — czatowanie, przesyłanie strumieniowe wideo, granie, surfowanie, kupowanie rzeczy — jest to zasadniczo wymiana pakietów danych między dwoma komputerami (sieciami). „Pakiet” to najmniejsza jednostka informacji przepływająca w sieci (lub między sieciami) i istnieje dobrze zdefiniowana metoda konstruowania i weryfikowania pakietów sieciowych (poza zakresem tego artykułu, ale jeśli masz ochotę na przygodę, oto jeszcze).

Przepływ pakietów w sieci (źródło: training.ukdw.ac.id)

Mówiąc prościej, każdy pakiet reprezentuje ogniwo w łańcuchu i jest prawidłowo przesyłany u źródła i sprawdzany w miejscu docelowym. Nawet jeśli pojedynczy pakiet zostanie wysłany lub uporządkowany, proces jest zawieszany do momentu odebrania wszystkich pakietów we właściwej kolejności, a dopiero wtedy są one łączone w celu utworzenia danych, które pierwotnie reprezentowały (na przykład obraz).

Teraz, gdy rozumiemy, czym jest sieć, zaczynamy rozumieć, co robi analizator sieci. Jest to narzędzie, które pozwala zaglądać do poszczególnych pakietów w Twojej sieci.

Ale dlaczego miałbyś chcieć wchodzić w takie kłopoty? Porozmawiajmy o tym dalej.

Dlaczego musimy analizować pakiety?

Wygląda na to, że pakiety są w zasadzie podstawowymi blokami budulcowymi w sieciowym przepływie danych, podobnie jak atomy są podstawą całej materii (tak, wiem, to nie są prawdziwe cząstki fundamentalne, ale jest to wystarczająco dobra analogia dla naszych celów) . A jeśli chodzi o analizę materiałów lub gazów, nigdy nie zawracamy sobie głowy tym, co robi pojedynczy atom; po co więc martwić się pojedynczym pakietem sieciowym na poziomie indywidualnym? Co możemy wiedzieć poza tym, co już wiemy?

Trudno sprzedać wagę analizy na poziomie pakietów, jeśli nie zostałeś wcześniej ugryziony w plecy, ale spróbuję.

Analiza pakietów oznacza ubrudzenie sobie rąk i sięganie do kanalizacji, aby coś wymyślić. Ogólnie rzecz biorąc, musisz analizować pakiety sieciowe, gdy wszystko inne zawiodło. Zazwyczaj obejmuje to pozornie beznadziejne scenariusze, takie jak:

  • Niewytłumaczalna utrata tajnych danych pomimo braku ewidentnego naruszenia
  • Diagnozowanie powolnych aplikacji, gdy wydaje się, że nie ma żadnych dowodów
  • Upewnienie się, że komputer/sieć nie zostały naruszone
  • Udowodnienie lub zaprzeczenie, że napastnik nie jest piggybacking wyłączony z Wi-Fi
  • Dowiedzieć się, dlaczego Twój serwer jest wąskim gardłem pomimo małego ruchu

Podsumowując, analiza pakietów podlega pewnym twardym dowodom. Jeśli wiesz, jak przeprowadzić analizę pakietów i mieć migawkę, możesz uchronić się przed niesłusznym oskarżeniem o włamanie lub po prostu obwinianiem jako niekompetentnego programistę lub administratora sieci.

Chodzi o mózgi! (źródło: dailydot.com)

Jeśli chodzi o prawdziwą historię, myślę, że znalazłem ten komentarz na poście na blogu tutaj jest wyjątkowy (tu powtórzony na wszelki wypadek):

Aplikacja krytyczna dla mojej firmy wykazywała problemy z wydajnością, spadała na twarz podczas wdrożeń u klientów. Była to aplikacja do wyceny akcji używana na czele zakładów giełdowych w firmach finansowych na całym świecie. Jeśli miałeś 401(k) około 2000, prawdopodobnie zależało to od tej aplikacji. Przeprowadziłem analizę tego rodzaju, który opisałeś, w szczególności zachowanie TCP. Wskazałem, że problem tkwi w implementacji protokołu TCP przez dostawcę systemu operacyjnego. Wadliwe zachowanie polegało na tym, że za każdym razem, gdy stos wysyłający przechodził do kontroli przeciążenia, nigdy się nie przywracał. Dało to komicznie małe okno wysyłania, czasami zaledwie kilka wielokrotności MSS.

Zajęło trochę czasu walka z menedżerami kont i pracownikami wsparcia programistów u dostawcy systemu operacyjnego, którzy nie rozumieli problemu, mojego wyjaśnienia lub tego, że problem *nie mógł* występować w aplikacji, ponieważ aplikacja jest błogo nieświadoma machinacji TCP. To było jak rozmowa ze ścianą. Zaczynałem od początku z każdą telekonferencją. W końcu skontaktowałem się telefonicznie z facetem, z którym mogłem porozmawiać. Okazuje się, że włożył do stosu rozszerzenia RFC1323! Następnego dnia miałem w rękach łatkę do systemu operacyjnego i od tego momentu produkt działał idealnie.

Deweloper wyjaśnił, że wystąpił błąd, który powodował, że przychodzące pakiety ACK *z ładunkami* były błędnie kategoryzowane jako DUPACK, gdy stos był pod kontrolą przeciążenia.

To nigdy nie miałoby miejsca w przypadku aplikacji półdupleksowych, takich jak HTTP, ale aplikacja, którą obsługiwałem, przez cały czas wysyłała dane dwukierunkowo w gnieździe.

Nie miałem wtedy dużego wsparcia ze strony kierownictwa (mój menedżer nawet krzyczał na mnie, że „zawsze chcę używać sniffera” do rozwiązywania problemów) i nikt oprócz mnie nie patrzył na implementację TCP dostawcy systemu operacyjnego jako źródło problemu. Samodzielne zmaganie się z poprawką od dostawcy systemu operacyjnego sprawiło, że to zwycięstwo było szczególnie słodkie, przyniosło mi mnóstwo kapitału na robienie własnych rzeczy i doprowadziło do pojawienia się najciekawszych problemów na moim biurku.

Na wypadek, gdybyś nie miał ochoty czytać tego kawałka tekstu lub jeśli nie miało to większego sensu, ten dżentelmen miał problemy z wydajnością, za które obwiniano jego aplikację, a kierownictwo, zgodnie z oczekiwaniami, nie udzielało żadnego wsparcia . Dopiero dokładna analiza pakietów wykazała, że ​​problem nie tkwi w aplikacji, ale w sposobie obsługi protokołu sieciowego przez system operacyjny!

Poprawka nie była poprawką w aplikacji, ale łatką twórców systemu operacyjnego!

Chłopcze och chłopcze . . . Jak myślisz, gdzie byłaby ta osoba bez analizy na poziomie pakietów? Prawdopodobnie bez pracy. Jeśli to nie przekonuje Cię o znaczeniu analizy pakietów (zwanej również sniffowaniem pakietów), nie wiem, co to zrobi.

Teraz, gdy wiesz, że analiza pakietów to supermoc, mam dobrą wiadomość: nie jest to trudne!

Dzięki potężnym, ale prostym w użyciu narzędziom do podsłuchiwania pakietów, zbieranie informacji z analizy na poziomie pakietów może być tak proste, jak czytanie pulpitu sprzedaży. To powiedziawszy, będziesz potrzebować trochę więcej niż tylko powierzchniowej wiedzy o tym, co dzieje się w sieci. Ale znowu, nie ma tu żadnej nauki o rakietach, żadnej pokręconej logiki do opanowania – po prostu zdrowy rozsądek.

Jeśli zaczniesz czytać dokumentację jednego z tych narzędzi podczas używania ich w swojej sieci, wkrótce staniesz się ekspertem.

Wireshark

Wireshark to stary projekt (rozpoczął się w 1998 roku), który jest w zasadzie standardem branżowym, jeśli chodzi o nurkowanie w głąb sieci. To imponujące, biorąc pod uwagę, że jest to organizacja prowadzona wyłącznie przez wolontariuszy, wspierana przez hojnych sponsorów. Wireshark pozostaje open-source (nie na GitHub, ale kod można znaleźć) tutaj) a nawet ma technikę konferencja do jego nazwy!

Wśród wielu możliwości Wireshark są:

  • Obsługa setek protokołów sieciowych.
  • Współdziała z wieloma formatami plików (tcpdump (libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer® (skompresowany i nieskompresowany), Sniffer® Pro, NetXray® itd.).
  • Działa na praktycznie wszystkich dostępnych platformach (Linux, Windows, macOS, Solaris, FreeBSD i inne).
  • Odczyt danych na żywo między innymi z Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring.
  • Dekompresja gzip w locie.
  • Mnóstwo obsługiwanych protokołów deszyfrowania (WPA/WPA2, SNMPv3 itp.)
  • Obszerna analiza VoIP
  • Zasady kolorowania dla szybszego skanowania wizualnego

Sprawdź ten fantastyczny kurs online, aby nauczy cię opanowania Wireshark.

Szukasz Wireshark w swoim terminalu? Jasne, spróbuj Terminologia

tcpdump

Jeśli jesteś oldschoolowy (czytaj hardcore ćpuna wiersza poleceń), tcpdump jest dla Ciebie.

Jest to kolejne z tych kultowych narzędzi Linuksa (takich jak curl), które pozostają tak aktualne jak zawsze, do tego stopnia, że ​​prawie wszystkie inne „bardziej wyrafinowane” narzędzia opierają się na nim. Jak powiedziałem wcześniej, nie ma środowiska graficznego, ale narzędzie to nadrabia.

Ale instalacja może być uciążliwa; podczas gdy tcpdump jest dostarczany w pakiecie z większością nowoczesnych dystrybucji Linuksa, jeśli Twoja nie ma, będziesz musiał budować ze źródeł.

Polecenia tcpdump są krótkie i proste, mają na celu rozwiązanie konkretnego problemu, takiego jak:

  • Wyświetlenie wszystkich dostępnych interfejsów
  • Przechwytywanie tylko jednego z interfejsów
  • Zapisywanie przechwyconych pakietów do pliku
  • Przechwytywanie tylko nieudanych pakietów

. . . i tak dalej.

Jeśli Twoje potrzeby są proste i potrzebujesz przeprowadzić szybkie skanowanie, tcpdump może być świetną opcją do rozważenia (zwłaszcza jeśli wpiszesz tcpdump i stwierdzisz, że jest już zainstalowany!). Sprawdź ten post, aby zapoznać się z przykładami poleceń tcpdump w czasie rzeczywistym.

Tproxy

Tproxy jest prostym, otwartym narzędziem wiersza poleceń do proxy połączeń TCP w sieci. Tproxy jest napisany w języku programowania Go i jest narzędziem wiersza poleceń Go i jest spakowany jako plik binarny Go, dzięki czemu jest dostępny na wszystkich nowoczesnych platformach Linux i macOS.

Poniższy obrazek pokazuje wiersz poleceń do monitorowania połączeń Mysql:

Jego głównym przypadkiem użycia jest proxy połączeń HTTP i sprawdzanie zawartości żądania HTTP i odpowiedzi. Może być również używany do proxy innych protokołów, takich jak SOCKS lub TCP. Może być używany do proxy połączeń TCP między dwoma hostami lub do analizy ruchu na aktywnym połączeniu. Przydaje się do debugowania i testowania aplikacji używających TCP jako protokołu transportowego oraz do tworzenia usług proxy TCP.

Został napisany z myślą o zapewnieniu łatwego w użyciu interfejsu do narzędzia wiersza poleceń tcpdump, umożliwiającego użytkownikom pośredniczenie w połączeniach TCP i wykonywanie innych zaawansowanych analiz sieciowych bez konieczności rozumienia podstawowego protokołu TCP.

Poniższy wiersz polecenia wyświetla połączenia gRPC:

Działa jako proxy TCP, umożliwiając łączenie się ze zdalnymi usługami i aplikacjami tak, jakbyś był na komputerze lokalnym. Pozwala na budowanie niestandardowych usług TCP na zdalnych hostach, podobnie jak odwrotny serwer proxy TCP, który pozwala na różne zabezpieczenia, rozwiązywanie problemów i ulepszenia wydajności podczas pracy z aplikacjami korzystającymi z TCP.

Poniżej znajduje się kilka innych zastosowań Tproxy

  • Przydaje się do debugowania i optymalizacji połączeń TCP.
  • Przydaje się również do zrozumienia, jak działają inne programy proxy, takie jak Burp Suite i ZAP.
  • Może być używany do proxy połączeń TCP między dwoma hostami lub między hostem a zdalną usługą TCP, taką jak baza danych lub usługa sieciowa.
  • Monitoruj połączenia MySQL i połączenia gRPC, a także sprawdza niezawodność połączenia pod względem szybkości Retrans i RTT

Większość użytkowników stwierdzi, że Tproxy upraszcza ich przepływ pracy i pozwala im przeprowadzać złożoną analizę sieci i analizować aplikacje internetowe bez konieczności zmiany aplikacji lub samej sieci. Narzędzie można pobrać z GitHub.

NetworkMiner

Promowanie się jako narzędzie analizy sieci śledczych (FNAT), NetworkMiner to jeden z najlepszych analizatorów na poziomie pakietów, z jakimi się spotkasz. Jest to narzędzie typu open source, które może pasywnie analizować sieć i jest wyposażone w imponujący interfejs GUI do analizy, który może pokazywać pojedyncze obrazy i inne przesłane pliki.

Ale to nie wszystko. NetworkMiner posiada doskonałe inne funkcje, takie jak:

  • Obsługa IPv6
  • Parsowanie plików PCAP
  • Wyodrębnij certyfikaty X.509 z ruchu szyfrowanego SSL
  • Pcap-over-IP
  • Działa z kilkoma rodzajami ruchu, takimi jak FTP, TFTP, HTTP, SMB, SMB2, SMTP, POP3 itp.
  • Odcisk palca systemu operacyjnego
  • Lokalizacja geograficzna IP
  • Obsługa skryptów wiersza poleceń

Pamiętaj, że niektóre z tych funkcji są dostępne w wersji komercyjnej.

Skrzypek

W przeciwieństwie do innych pasywnych snifferów sieciowych, Skrzypek jest czymś, co znajduje się między twoim urządzeniem a światem zewnętrznym i dlatego wymaga pewnej konfiguracji (czy dlatego nazwano to „Skrzypkiem”? 😉 ).

Jest to konfigurowalne (przy użyciu FiddlerScript) bezpłatne narzędzie, które ma długą i wyróżniającą się historię, więc jeśli Twoim celem jest wykrywanie ruchu HTTP/HTTPS jak szef, Fiddler jest drogą do zrobienia.

Z Fiddlerem możesz zrobić wiele, zwłaszcza jeśli masz ochotę założyć hakerską bluzę z kapturem:

  • Manipulacja sesją: Zgrywaj otwarte nagłówki HTTP i dane sesji, modyfikując je w dowolny sposób.
  • Testowanie bezpieczeństwa: umożliwia symulowanie ataków typu man-in-the-middle i odszyfrowywanie całego ruchu HTTPS.
  • Testowanie wydajności: analizuj czasy ładowania strony (lub odpowiedzi interfejsu API) i zobacz, która część odpowiedzi jest wąskim gardłem.

Jeśli czujesz się zagubiony, dokumentacja jest bardzo dobry i jest wysoce zalecany.

WinDump

Jeśli tęsknisz za prostotą tcpdump i chcesz wprowadzić go do swoich systemów Windows, przywitaj się WinDump. Po zainstalowaniu działa z wiersza poleceń, wpisując „tcpdump” w taki sam sposób, jak narzędzie działa w systemach Linux.

Zauważ, że nie ma nic do zainstalowania per se; WinDump to plik binarny, który można uruchomić od razu, pod warunkiem, że masz zainstalowaną implementację biblioteki Pcap (npcap jest zalecane, ponieważ winpcap nie jest już w fazie rozwoju).

BruteShark

BruteShark jest skutecznym narzędziem Network Forensic Analysis Tool (NFAT), którego można używać do przetwarzania i kontrolowania ruchu sieciowego, takiego jak pliki PCAP i przechwytywania bezpośrednio z interfejsów sieciowych.

Obejmuje rekonstrukcję sesji TCP, budowanie map sieciowych, wyodrębnianie skrótów silnie zaszyfrowanych haseł, konwersję skrótów do formatu Hashcat w celu przeprowadzenia ataku Brute Force w trybie offline.

Głównym celem tego projektu jest pomoc administratorom sieci i badaczom bezpieczeństwa odpowiedzialnym za analizę ruchu sieciowego i identyfikowanie słabych punktów.

Dostępne są dwie wersje BruteShark: aplikacja oparta na graficznym interfejsie użytkownika (GUI) dla systemu Windows oraz narzędzie CLI dla systemów Linux i Windows. Niektóre z projektów zawartych w tym rozwiązaniu można nawet wykorzystać niezależnie do analizy ruchu sieciowego na maszynach z systemem Windows i Linux.

BruteShark może również wykonywać różne operacje, takie jak wyodrębnianie zapytań DNS, rzeźbienie plików, wyodrębnianie połączeń VoIP (SIP, RTP), budowanie diagramu sieci dla użytkowników i węzłów sieci, wyodrębnianie hashów uwierzytelniania za pomocą Hashcat (NTLM, HTTP-Digest, CRAM-MD5, Kerberos, itp.) oraz pobieranie i kodowanie haseł i nazw użytkowników.

Wszystkie projekty są realizowane przez .Net Standard i .Net Core dla wieloplatformowego i nowoczesnego wsparcia. To rozwiązanie oferuje architekturę trójwarstwową i obejmuje jeden lub wiele projektów, w tym PL, BLL i DAL w każdej warstwie.

Poprzez DAL (warstwa dostępu do danych) projekt pomaga w odczytywaniu nieprzetworzonych plików PCAP za pomocą sterowników takich jak WinPcap, libpcap i bibliotek wrapperów, takich jak SharpPcap. Podobnie BLL (Business Logic Layer) odpowiada za analizę informacji o sieci (TCP, pakiet itp.), a PL wykorzystuje projekt przekrojowy i odnosi się zarówno do warstwy BLL, jak i DAL.

OmniPeek

W przypadku większych sieci, w których co sekundę przepływają przez nie tony MB danych, narzędzia, z których korzystają wszyscy inni, mogą wyczerpywać się. Jeśli masz do czynienia z tym samym, OmniPeek Może warto rzucić na to okiem.

Jest to narzędzie do analizy wydajności, analizy i kryminalistyki do analizy sieci, zwłaszcza gdy potrzebujesz zarówno funkcji niskopoziomowych, jak i kompleksowych pulpitów nawigacyjnych.

Źródło: sniffwifi.com

Capsa

Jeśli martwisz się tylko o platformę Windows, Capsa jest również poważnym pretendentem. Jest dostępny w trzech wersjach: bezpłatnej, standardowej i korporacyjnej, z których każda ma inne możliwości.

To powiedziawszy, nawet darmowa wersja obsługuje ponad 300 protokołów i ma interesujące funkcje, takie jak alerty (wywoływane po spełnieniu określonych warunków). Standardowa oferta jest o krok wyżej, obsługuje ponad 1000 protokołów i pozwala analizować rozmowy i rekonstruować strumienie pakietów.

Podsumowując, solidna opcja dla użytkowników systemu Windows.

EtherApe

Jeśli szukasz zaawansowanych wizualizacji i open source, EtherApe to świetna opcja. Podczas gdy gotowe pliki binarne są dostępne tylko dla kilku dystrybucji Linuksa, dostępne jest źródło (zarówno na SourceForge, jak i GitHub), więc budowanie ich na własną rękę jest opcją.

Oto, co według mnie sprawia, że ​​EtherApe jest świetny:

  • Monitorowanie wielowęzłowe, kodowane kolorami.
  • Obsługa wielu formatów pakietów, takich jak ETH_II, 802.2, 803.3, IP, IPv6, ARP, X25L3, REVARP, ATALK, AARP, IPX, VINES, TRAIN, LOOP, VLAN itp. (w rzeczywistości wiele, wiele, więcej) .
  • Odczytuj dane na żywo z „przewodu” lub z pliku tcpdump.
  • Obsługuje standardowe rozpoznawanie nazw
  • W najnowszych wersjach GUI został przeniesiony do GTK3, co zapewnia przyjemniejsze wrażenia.

CommView

Jeśli prowadzisz sklep działający wyłącznie w systemie Windows i cenisz wygodę priorytetowego wsparcia, CommView jest polecany. Jest to potężny analizator ruchu sieciowego z wbudowanymi zaawansowanymi funkcjami, takimi jak analiza VoIP, zdalne śledzenie itp.

To, co zrobiło na mnie największe wrażenie, to możliwość eksportowania danych do formatów używanych przez kilka otwartych i zastrzeżonych formatów, takich jak Sniffer®, EtherPeek™, AiroPeek™, Observer®, NetMon, Wireshark/Tcpdump i Wireshark/pcapng, a nawet zwykłe zrzuty szesnastkowe .

Eksplorator Wi-Fi

Ostatni na liście to Eksplorator Wi-Fi, który ma bezpłatną wersję dla systemu Windows i wersję Standard dla systemów Windows i macOS. Jeśli analiza sieci Wi-Fi jest wszystkim, czego potrzebujesz (co jest obecnie prawie standardem), to Wifi Explorer ułatwi życie.

Jest to pięknie zaprojektowane i bogate w funkcje narzędzie, które pozwala dotrzeć prosto do serca sieci.

Wyróżnienie: zamknięcie tego posta bez wzmianki o ekskluzywnym analizatorze sieci, na który się natknąłem, byłoby nieprzysługą — Mały znicz. Ma wbudowaną zaporę ogniową, więc ma dodatkową zaletę, że natychmiast pozwala idealnie kontrolować cały ruch (co może wydawać się uciążliwe, ale na dłuższą metę jest ogromnym zyskiem).

Co dalej?

Należy również zapoznać się z oprogramowaniem do monitorowania sieci, aby uzyskać lepszą widoczność infrastruktury. Jeśli chcesz zbudować karierę w sieci i bezpieczeństwie, sprawdź niektóre z najlepsze kursy online tutaj.