Analiza ruchu sieciowego pozwala zobaczyć, co naprawdę dzieje się między hostami, a nie tylko to, co zapisuje aplikacja albo system operacyjny. W cyberbezpieczeństwie daje to przewagę przy wykrywaniu infekcji, bocznego ruchu w sieci, podejrzanych połączeń wychodzących i błędów konfiguracji, które na pierwszy rzut oka wyglądają niewinnie. W tym tekście pokazuję praktyczne podejście na Linuksie: jak wybrać narzędzie, skąd brać pakiety, co z nich wyciągnąć i gdzie najczęściej popełnia się kosztowne pomyłki.
Najpierw ustaw właściwy punkt obserwacji, potem szukaj anomalii
- Największą wartość daje połączenie pakietów, metadanych i logów systemowych, a nie samo „podglądanie ruchu”.
- Wireshark sprawdza się do ręcznej analizy, a `tcpdump` i `tshark` do szybkiego zbierania danych z Linuksa.
- Zeek i `Suricata` są lepsze, gdy chcesz stałego monitoringu, alertów i kontekstu do incydentów.
- Punkt przechwytywania zwykle decyduje o jakości wyniku bardziej niż samo narzędzie.
- Szyfrowanie nie zabija analizy, ale przesuwa ciężar z treści na metadane, wzorce i korelację zdarzeń.
- Najczęstsze błędy to brak baseline, zły moment przechwycenia i zbyt szeroki zakres danych.
Co naprawdę daje obserwacja ruchu w bezpieczeństwie
W praktyce patrzę na ruch sieciowy jak na warstwę prawdy między aplikacją a infrastrukturą. Logi systemowe powiedzą mi, że coś się wydarzyło, ale dopiero pakiety i przepływy pokazują, dokąd host się łączy, jak często to robi i czy zachowuje się normalnie. To właśnie dlatego z tej metody korzysta się przy wykrywaniu beaconingu, skanów portów, podejrzanych transferów danych, DNS tunnelingu czy lateral movement w sieci wewnętrznej.
Najważniejsza zmiana w ostatnich latach jest prosta: treść coraz częściej jest zaszyfrowana, więc rośnie znaczenie metadanych. Nadal widzę adresy IP, kierunek sesji, rozmiary pakietów, czas trwania połączeń, wzorce DNS i rytm komunikacji. To często wystarcza, żeby odróżnić normalną usługę od hosta, który co kilka sekund wysyła małe porcje danych do obcego serwera.
Ja zwykle zaczynam od pytania, czy szukam pojedynczego incydentu, czy mam zbudować obraz normalnego zachowania sieci. To drugie jest mniej efektowne, ale w dłuższej perspektywie daje lepsze wyniki, bo bez wzorca bazowego łatwo uznać zwykły skok obciążenia za atak. To prowadzi do pytania, jak taki proces ułożyć na Linuksie krok po kroku.
Jak ułożyć sensowny proces na Linuksie
Największy błąd początkujących polega na tym, że od razu otwierają narzędzie i zaczynają klikać filtry. Ja robię odwrotnie: najpierw ustalam, gdzie zbieram ruch, co chcę zobaczyć i jak długo mam to przechowywać. Na Linuksie ten porządek ma znaczenie, bo inaczej szybko kończysz z gigantycznym plikiem, który niczego nie wyjaśnia.
- Wybierz punkt przechwytywania. Inaczej patrzy się na interfejs hosta, inaczej na port SPAN z przełącznika, a jeszcze inaczej na TAP lub eksport przepływów z urządzenia brzegowego.
- Ogranicz zakres zbierania. Filtr BPF odrzuca pakiety już na etapie przechwytywania, więc oszczędza czas i miejsce, zanim dane trafią do analizy.
- Zapisz kontekst. Sama sesja TCP niewiele mówi, jeśli nie wiem, jaki proces ją otworzył, kiedy to się stało i czy w tym samym czasie pojawiły się alerty z hosta.
- Porównaj z baseline. W normalnej sieci są pewne powtarzalne wzorce: aktualizacje, DNS, logowanie, kopiowanie danych, backup. Bez tego tła trudno ocenić, czy ruch jest nietypowy.
- Wyciągnij hipotezę, a nie tylko obserwację. Nie chodzi o to, żeby zobaczyć „dziwny pakiet”, tylko żeby odpowiedzieć, czy to błąd konfiguracji, nowa usługa, czy realne nadużycie.
Na końcu sprawdzam jeszcze jedną rzecz: czy mam dane wystarczające do odtworzenia zdarzenia. Jeśli nie, cała analiza kończy się na intuicji, a nie na dowodzie. Kiedy ten proces jest uporządkowany, dobór narzędzi staje się dużo prostszy.

Narzędzia, które najczęściej wybieram do różnych zadań
Nie traktuję narzędzi jak konkurencji, tylko jak zestaw warstw. Jedno służy do szybkiego zrzutu pakietów, drugie do ręcznego rozbierania sesji na części, trzecie do automatycznej korelacji i alertów. W cyberbezpieczeństwie to podejście działa lepiej niż szukanie jednego „magicznego” programu.
| Narzędzie | Kiedy je wybieram | Najmocniejsza strona | Ograniczenie |
|---|---|---|---|
| Wireshark | Gdy chcę ręcznie przeanalizować konkretną sesję, problem z protokołem albo mały zrzut PCAP | Bardzo czytelny widok warstw, filtrów i rozmów między hostami | Nie nadaje się do stałego monitoringu dużej sieci |
| `tcpdump` / `tshark` | Gdy potrzebuję szybko zebrać pakiety na Linuksie albo zautomatyzować capture | Lekkość, skryptowalność i dobra kontrola nad filtrem | Wymaga większej wprawy przy interpretacji wyniku |
| Zeek | Gdy chcę logów, kontekstu i analizy zachowania w czasie zbliżonym do rzeczywistego | Bardzo dobre źródło metadanych do dochodzeń i korelacji | Trzeba nauczyć się modelu pracy opartego na logach |
| Suricata | Gdy zależy mi na alertach, wykrywaniu znanych wzorców i analizie ruchu live albo PCAP | Łączy IDS, IPS i monitoring sieciowy w jednym silniku | Wymaga sensownych reguł i kontroli wydajności |
| NetFlow / sFlow / IPFIX | Gdy chcę obserwować trendy, anomalia i rozmowy między hostami na większą skalę | Niewielki koszt danych i dobra skalowalność | Brak pełnej treści pakietów, więc mniejsza szczegółowość |
W praktyce najczęściej łączę je w taki sposób: `tcpdump` zbiera materiał, Wireshark daje mi szczegóły, Zeek buduje kontekst, a Suricata dokłada warstwę reguł i ostrzeżeń. Gdy potrzebuję obrazu całej sieci, a nie pojedynczych pakietów, sięgam po przepływy. To rozsądniejsze niż próba zrobienia wszystkiego jednym narzędziem.
Nawet najlepszy zestaw nie pomoże jednak, jeśli po drodze popełnisz kilka klasycznych błędów.
Najczęstsze błędy i ograniczenia, które zniekształcają wynik
Największy problem, jaki widzę w praktyce, to mylenie „mam zrzut ruchu” z „wiem już, co się stało”. Sam plik PCAP niczego nie rozstrzyga, jeśli został zebrany w złym miejscu albo za późno. W sieci z load balancerem, NAT-em, kontenerami czy ruchem między strefami łatwo zobaczyć tylko fragment historii.
- Za późny punkt przechwytywania. Jeśli zbierasz ruch dopiero na hoście ofiary, możesz nie zobaczyć pierwszej fazy komunikacji, DNS-a albo pośredników.
- Brak synchronizacji czasu. Bez spójnego czasu z hostów, routerów i systemu monitoringu korelacja zdarzeń staje się zgadywanką.
- Ignorowanie szyfrowania. Treść bywa niedostępna, ale metadane nadal są wartościowe, więc analiza nie kończy się na samym payloadzie.
- Brak baseline. Jeśli nie wiesz, jak wygląda normalny ruch, każda anomalia może wyglądać groźniej albo mniej groźnie niż w rzeczywistości.
- Analiza bez kontekstu hosta. Pakiet może wyglądać podejrzanie, ale dopiero informacja o procesie, użytkowniku i czasie zmienia go w dowód albo fałszywy alarm.
- Za szerokie przechowywanie danych. W środowiskach objętych RODO i politykami bezpieczeństwa trzeba pilnować retencji, zakresu i podstawy przetwarzania, bo pełne PCAP-y szybko stają się problemem organizacyjnym.
Ja zwykle zakładam, że im bardziej złożona infrastruktura, tym większe ryzyko złej interpretacji. To nie jest wada samej metody, tylko sygnał, że trzeba lepiej zaplanować punkt obserwacji i sposób korelacji. Gdy to działa, dopiero wtedy ma sens dokładanie bardziej zaawansowanych reguł i automatyzacji.
Co wdrożyć najpierw, jeśli zaczynasz od zera
Gdybym miał uporządkować temat w małej firmie, labie albo na pojedynczym serwerze Linux, zacząłbym od prostego modelu pracy, a nie od rozbudowanego stacku. W praktyce wystarczą cztery kroki, żeby uzyskać realną wartość i nie utonąć w danych.
- Zbuduj bazę normalnego ruchu przez kilka dni albo tydzień, żeby zobaczyć typowe DNS, logowania, aktualizacje i transfery.
- Włącz lekkie przechwytywanie na brzegu sieci lub na serwerze, a pełne PCAP-y zapisuj tylko wtedy, gdy coś naprawdę wymaga głębszego śledztwa.
- Dodaj alerty na konkretne wzorce - nietypowe domeny, nowe kierunki wychodzące, nagły wzrost uploadu, powtarzalne krótkie połączenia albo ruch do rzadko używanych portów.
- Trzymaj różne poziomy danych osobno: pełne pakiety krótko, metadane dłużej, a logi systemowe i aplikacyjne tak, żeby dało się je z łatwością skorelować.
Jeśli mam wskazać jedną zasadę, to jest nią dyscyplina. Najpierw prosty obraz normalnego ruchu, potem automatyzacja, a dopiero na końcu głęboka inspekcja. W takim układzie analiza naprawdę pomaga w cyberbezpieczeństwie, zamiast produkować kolejny stos danych do ręcznego przeglądania.