Analiza ruchu sieciowego ze Sniffnetem

Ruch sieciowy dla wielu z nas jest zupełną zagadką. Mniej doświadczeni użytkownicy mogą łatwo monitorować go u siebie programem Sniffnet.

Monitoring ruchu sieciowego to chleb powszedni administratora. Większość adminów korzysta z graficznego narzędzia Wireshark ze względu na bogactwo funkcji i dostępność w repozytoriach większości dystrybucji. Adresatami Wiresharka są przede wszystkim profesjonaliści, więc korzystanie z tego narzędzia wymaga solidnej wiedzy. Nowy projekt Sniffnet kierowany jest zaś do osób mniej doświadczonych, którym dostarczy klarownych wyników w prostym, jednoznacznym i intuicyjnym interfejsie.

Instalacja

Sniffnet jest wieloplatformową aplikacją napisaną w Rust [1]. Jeśli w systemie nie ma środowiska tego języka, to najpierw trzeba je skonfigurować poleceniem z linii 2 w Listingu 1. Proces instalacji wymaga od nas nieco interaktywności i przy znaku zachęty wyświetla kilka komunikatów o stanie. Sniffnet jako taki instalujemy także z terminala menedżerem pakietów dla Rusta o nazwie Cargo (linia 4).

Listing 1: Instalacja Sniffneta

01 ### Instalacja Rusta

02 $ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

03 ### Konfiguracja Sniffneta przez Rusta

04 $ cargo install sniffnet

05 ### Instalacja Sniffneta z paczki DEB

06 $ sudo apt install sniffnet_Linux.deb

07 ### Instalacja zależności

08 $ sudo apt install libpcap-dev libfontconfig libfontconfig1-dev

Jeśli korzystamy z dystrybucji Linuksa z menedżerem pakietów DEB, możemy za to zainstalować już skompilowany pakiet DEB [2] z GitHuba projektu, co oszczędzi nam wcześniejszej instalacji środowiska Rust (linia 6).

Aby program działał poprawnie, należy też oczywiście spełnić kilka zależności [3] (linia 8), niezależnie od tego, gdzie będzie instalowany. Po wszystkim uruchamiamy program poleceniem sudo sniffnet.

Otwiera się okno startowe z opcjami filtrowania (Rysunek 1). Po prawej, zaznaczając odpowiedni przycisk, można wybrać wersję protokołów internetowego i transportowego. W obu przypadkach domyślnie aktywne są wszystkie dostępne wersje (tzn. IPv4 i IPv6, a także TCP i UDP). Po prawej z brzegu, spośród kilkunastu opcji na liście, wybieramy protokół aplikacji. Również tutaj Sniffnet domyślnie uwzględnia wszystkie protokoły.

W lewej części okna widać interfejsy sieciowe dostępne w naszym systemie – zarówno fizyczne, jak i wirtualne. Sniffnet zawsze aktywuje pierwszy dostępny interfejs fizyczny, dlatego w razie potrzeby musimy przełączyć się na inny. Po wprowadzeniu podstawowych ustawień klikamy przycisk Run!.

Rysunek 1: W uporządkowanym oknie startowym Sniffneta wyświetla się tylko to, co niezbędne.
Rysunek 2: Sniffnet podsumowuje wszystkie dane o ruchu sieciowym w jednym oknie.

Sniffnet pracuje przez chwilę nad zebraniem dostępnych danych, po czym otwiera właściwe okno monitoringu (Rysunek 2). U góry widzimy aktualizowany na bieżąco wykres z liczbą pakietów na sekundę przechodzących przez aktywny interfejs sieciowy. Kolorami rozróżniono pakiety wychodzące i przychodzące. Objętość przesyłanych danych w bajtach na sekundę zobaczymy natomiast po wybraniu drugiego przycisku pod Plotted data (Dane na wykresie). W małej ramce obok wykresu znajdziemy trochę statystyk o połączeniu sieciowym, w tym liczbie filtrowanych pakietów, ich rozmiar w megabajtach oraz liczbę odfiltrowanych pakietów z podziałem na protokoły aplikacji.

Najciekawszym elementem jest chyba ramka Relevant connections (Powiązane połączenia) pod wykresem, która zawiera dokładne dane o poszczególnych połączeniach – adres źródłowy i docelowy, wykorzystywane porty, protokół transportowy i protokół aplikacji, a także liczbę przesłanych pakietów. Przy prawym brzegu okna, w kolumnie Bytes, jest także rozmiar danych przesłanych w ramach danego połączenia.

W oknie monitoringu Sniffnet wyróżnia dane kolorami – połączenia przychodzące są czerwono-brązowe, a wychodzące – niebieskie. Ten widok można zmienić, wybierając przycisk most packets (najwięcej pakietów), co pokaże nam połączenia według pakietów wysłanych lub odebranych, albo most bytes (najwięcej bajtów), gdzie połączenia zostaną posortowane malejąco według objętości przesłanych danych.

Rysunek 3: Wszystkie połączenia i aktywności na interfejsie sieciowym można przejrzeć również w formie tekstowej.

Kompleksowo

Na wykresie Sniffnet zawsze pokazuje najnowsze zdarzenia przesyłania danych. Aby śledzić ruch sieciowy w ujęciu czasowym, Sniffnet loguje wszystkie połączenia i aktywność na nich w formie tabeli pod $HOME/sniffnet_report/report.txt. Aby obejrzeć ten plik tekstowy, klikamy Open fill report, a otworzy się w naszym standardowym edytorze tekstu (Rysunek 3). Aplikacja aktualizuje ten dziennik niemal w czasie rzeczywistym.

Jeśli w trakcie analizowania ruchu chcemy coś zmienić w ustawieniach programu, klikamy ikonę strzałki w lewym górnym rogu (Rysunek 2), aby wrócić do głównego okna. Warto pamiętać, że Sniffnet usuwa plik dziennika przy każdym nowym uruchomieniu. W razie potrzeby logi można zapisać po zakończeniu działania aplikacji, czyli przed jej restartem.

Podsumowanie

Kiedy chcemy przyjrzeć się ruchowi na swojej sieci, Sniffnet jest prostym, niewymagającym nauki rozwiązaniem dla użytkowników na każdym poziomie biegłości. Narzędziu brakuje funkcjonalności analizy – jeżeli chcemy namierzyć problemy z siecią, trzeba będzie samodzielnie czytać logi.

W trakcie testów programu znalazłem w nim kilka bugów. Na Kubuntu 22.04 program nie otworzył raportu po kliknięciu przycisku Open full report, ale bez problemu można to obejść, otwierając plik ręcznie. Bardziej poważny problem to usuwanie plików dziennika bez żadnej dostrzegalnej prawidłowości. Ponadto Sniffnet nie tłumaczy adresów IP na nazwy urządzeń – do ciągu 104.26.7.95 trzeba samodzielnie dopasować nazwę urządzenia. Kolejny problem to niemożność kopiowania fragmentów pliku dziennika tworzonego na żywo. Interesujące nas fragmenty trzeba pozyskać po wygenerowaniu całego loga (przy założeniu, że ten nagle nie zniknie po sesji). Z całą pewnością w programie Sniffnet nie brakuje rzeczy do poprawki. 

Źródła:

[1] Sniffnet: https://github.com/GyulyVGC/sniffnet

[2] Pakiet DEB: https://github.com/GyulyVGC/sniffnet/releases

[3] Instrukcja instalacji: https://github.com/GyulyVGC/sniffnet#installation

Podziel się postem:

Najnowsze:

Mobilne

Gemini Live już dostępne po polsku!

Google nieustannie rozwija swoje produkty i usługi, a jednym z najciekawszych jest Gemini – zaawansowany model sztucznej inteligencji, który oferuje szeroki wachlarz możliwości. Od niedawna Gemini Live, czyli funkcja umożliwiająca swobodną rozmowę z AI, jest dostępna w języku polskim! Co to oznacza dla polskich użytkowników i jak można wykorzystać tę nową funkcjonalność?

Bezpieczeństwo

Luka w zabezpieczeniach BitLockera w Windows 11: Czy Twoje dane są bezpieczne?

Szyfrowanie dysków to jedna z podstawowych metod ochrony danych w erze cyfrowej. Użytkownicy systemów Windows często korzystają z wbudowanego narzędzia BitLocker, aby zabezpieczyć swoje poufne informacje przed niepowołanym dostępem. Jednak ostatnie doniesienia z Chaos Communication Congress (CCC) w Niemczech wskazują na poważną lukę w zabezpieczeniach BitLockera w systemie Windows 11, która może narazić dane użytkowników na ryzyko.

Bezpieczeństwo

Złamanie Enigmy: Przełomowy moment w historii kryptologii

Złamanie szyfru Enigmy przez polskich kryptologów na przełomie grudnia 1932 i stycznia 1933 roku to jedno z najważniejszych wydarzeń w historii kryptologii i II wojny światowej. Ten artykuł skupia się na wydarzeniach z tego okresu, które doprowadziły do przełomowego momentu w dekryptażu niemieckiej maszyny szyfrującej. Niemcy, przekonani o niemożliwości złamania Enigmy, używali jej do zabezpieczania tajnej korespondencji wojskowej i dyplomatycznej. Sukces polskich matematyków, Mariana Rejewskiego, Jerzego Różyckiego i Henryka Zygalskiego, dał aliantom ogromną przewagę, umożliwiając odczytywanie niemieckich komunikatów i przewidywanie ich ruchów.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *