Zeek – od analizy ruchu sieciowego do Network Security Monitoring
Zeek to jedno z najważniejszych narzędzi klasy Network Security Monitoring (NSM). W przeciwieństwie do klasycznego IPS, takiego jak Snort czy Suricata, Zeek nie koncentruje się przede wszystkim na blokowaniu ruchu. Jego największą siłą jest obserwacja, analiza i tworzenie szczegółowych logów dotyczących tego, co dzieje się w sieci.
Można więc bardzo uprościć różnicę:
Snort / Suricata
|
Detect + Block
|
IPS
Zeek
|
Observe + Analyze
|
NSM
Zeek jest szczególnie przydatny w SOC, podczas analizy incydentów, threat huntingu i budowaniu własnego systemu monitoringu bezpieczeństwa.
Czym jest Zeek?
Zeek (wcześniej znany jako Bro) to open-source’owa platforma do analizy ruchu sieciowego.
Jej głównym zadaniem jest odpowiedź na pytanie:
Co właściwie dzieje się w naszej sieci?
Zamiast generować wyłącznie alert:
Possible attack detected
Zeek może zapisać znacznie więcej informacji:
10.10.10.25
|
| DNS query
v
example.com
|
| HTTPS connection
v
203.0.113.50
|
| 2.4 MB transferred
v
Remote Server
Dzięki temu administrator lub analityk bezpieczeństwa może później odtworzyć przebieg zdarzeń.
Zeek IDS czy IPS?
To bardzo ważne.
Zeek nie jest typowym IPS-em.
Nie jest projektowany przede wszystkim do:
Traffic
|
v
Zeek
|
X
DROP
Jego podstawowym zadaniem jest:
Traffic
|
v
Zeek
|
+--> Logs
+--> Metadata
+--> Events
+--> Analysis
Dlatego Zeek świetnie uzupełnia Snort lub Suricatę.
Zeek + Suricata
Bardzo dobra architektura:
INTERNET
|
v
Firewall
|
+---------+---------+
| |
v v
Suricata Zeek
IPS NSM
| |
BLOCK ANALYSIS
| |
+---------+---------+
|
v
LAN
Suricata odpowiada przede wszystkim za detekcję i blokowanie.
Zeek dostarcza kontekst.
Dlaczego Zeek jest interesujący?
Wyobraź sobie alert:
Suricata:
Malware detected
To ważna informacja.
Ale analityk chce wiedzieć:
- kto się łączył?
- z jakim adresem?
- kiedy?
- przez jaki protokół?
- ile danych przesłano?
- jakie DNS zostało wykonane?
- jakie hosty były odwiedzane wcześniej?
- czy było połączenie z innymi podejrzanymi adresami?
I tutaj zaczyna się wartość Zeeka.
Architektura Zeeka
Uproszczony model:
Network Traffic
|
v
Packet Capture
|
v
Protocol Analysis
|
v
Event Engine
|
+---------+---------+
| | |
DNS HTTP TLS
| | |
+---------+---------+
|
v
Logs
Zeek analizuje protokoły i generuje zdarzenia.
Jak Zeek otrzymuje ruch?
Najczęściej poprzez:
SPAN / Port Mirroring
Switch wysyła kopię ruchu do sensora.
Switch
/ | \
PC Server Zeek
^
|
SPAN
Zeek analizuje kopię ruchu.
Network TAP
Alternatywnie można wykorzystać TAP:
Internet
|
+--------> Server
|
TAP
|
v
Zeek
TAP pozwala sensorowi otrzymać kopię ruchu bez umieszczania go bezpośrednio na ścieżce komunikacji.
Zeek i PCAP
Zeek może pracować na rzeczywistym ruchu, ale bardzo ciekawa jest również analiza zapisanych plików PCAP.
Przykład:
zeek -r traffic.pcap
Zeek analizuje zapisany ruch i generuje logi.
To niezwykle przydatne podczas:
- analizy incydentów,
- ćwiczeń bezpieczeństwa,
- threat huntingu,
- nauki analizy sieciowej.
Najważniejsze logi Zeeka
Jedną z największych zalet Zeeka jest ogromna ilość wartościowych danych.
Typowe logi obejmują:
conn.log
dns.log
http.log
ssl.log
x509.log
ssh.log
smtp.log
files.log
weird.log
conn.log
To jeden z najważniejszych logów.
Można znaleźć informacje o połączeniach:
source IP
destination IP
source port
destination port
protocol
duration
bytes
connection state
Przykład:
192.168.10.25
|
| TCP/443
v
203.0.113.50
Duration: 12s
Bytes: 2.4 MB
DNS – dns.log
Zeek może rejestrować zapytania DNS.
Przykład:
192.168.10.25
|
| DNS
v
example.com
Log może zawierać:
- klienta,
- domenę,
- typ zapytania,
- odpowiedź,
- czas,
- serwer DNS.
Dlaczego DNS jest tak ważny?
Atakujący może wykorzystać DNS do:
- komunikacji z C2,
- DNS tunneling,
- pobierania informacji,
- kierowania ofiary na złośliwą infrastrukturę.
Przykład podejrzanego wzorca:
x7sd8f7s6df7s6df.example.com
a8sd7as8d7as8d7a.example.com
k2j3h4k5j6h7k8.example.com
Duża liczba nietypowych subdomen może być interesującym sygnałem dla analityka.
HTTP – http.log
Jeżeli ruch HTTP jest dostępny do analizy, Zeek może rejestrować między innymi:
- host,
- URI,
- metodę,
- status,
- User-Agent,
- rozmiar odpowiedzi.
Przykład:
GET /login
Host: example.com
User-Agent: Mozilla/5.0
Status: 200
HTTPS i TLS
W przypadku HTTPS zawartość jest szyfrowana.
Zeek nie może po prostu odczytać:
GET /secret-file
z zaszyfrowanej sesji.
Może jednak analizować dostępne informacje dotyczące połączenia TLS.
Przydatne są między innymi dane dotyczące:
- wersji TLS,
- certyfikatu,
- serwera,
- parametrów połączenia,
- informacji X.509.
x509.log
Zeek może analizować certyfikaty X.509.
Przykład:
Certificate
|
+-- Subject
+-- Issuer
+-- Validity
+-- SAN
Może to być przydatne podczas threat huntingu.
SSH
Zeek potrafi analizować również SSH.
Można uzyskać informacje dotyczące sesji, między innymi:
Client
|
SSH
|
Server
Daje to dodatkowy kontekst do analizy aktywności administracyjnej.
Zeek i pliki
Jedną z ciekawszych funkcji jest analiza transferów plików.
Zeek może rejestrować informacje dotyczące:
- nazwy,
- rozmiaru,
- MIME type,
- hash,
- połączenia, w którym plik został przesłany.
Schemat:
Client
|
| File Transfer
v
Server
|
v
Zeek
|
v
files.log
Hash pliku
Jeżeli Zeek jest odpowiednio skonfigurowany, można uzyskać hash pliku.
Przykładowo:
SHA256:
abc123...
Następnie analityk może sprawdzić hash w systemach threat intelligence.
To bardzo przydatne podczas analizy malware.
Zeek i threat hunting
To jeden z najlepszych przypadków użycia.
Przykładowe pytanie:
Czy którykolwiek komputer w naszej sieci komunikował się z tym adresem IP w ciągu ostatnich 30 dni?
Można przeszukać:
conn.log
i znaleźć:
192.168.10.50
|
v
198.51.100.20
Następnie można skorelować tę informację z innymi logami.
Zeek i Command & Control
Przykładowy scenariusz:
Compromised Host
|
| periodic connection
v
C2 Server
W conn.log może pojawić się charakterystyczny wzorzec:
10:00:00
10:05:00
10:10:00
10:15:00
10:20:00
Regularne połączenia typu beaconing mogą być sygnałem do dalszej analizy.
Zeek i beaconing
Przykład:
Host
|
+--> C2
|
+--> C2
|
+--> C2
|
+--> C2
Jeżeli połączenia występują regularnie, może to sugerować:
- malware,
- agenta C2,
- automatyczny proces.
Nie jest to jednak automatycznie dowód kompromitacji — regularny ruch może być całkowicie legalny.
Zeek i lateral movement
Zeek może być bardzo pomocny w wykrywaniu przemieszczania się atakującego po sieci.
Przykład:
PC-01
|
+--> Server-01
|
+--> Server-02
|
+--> DC-01
Analityk może zauważyć, że komputer użytkownika zaczął nagle komunikować się z wieloma serwerami.
Active Directory
W środowisku AD Zeek może dostarczyć dodatkowy kontekst dotyczący ruchu:
Client
|
+--> DNS
+--> Kerberos
+--> LDAP
+--> SMB
+--> Domain Controller
W połączeniu z logami Windows i narzędziami takimi jak BloodHound daje to znacznie szerszy obraz aktywności w sieci.
Zeek + SIEM
To jeden z najczęstszych sposobów wykorzystania.
Zeek
|
+--------+--------+
| | |
DNS HTTP Conn
| | |
+--------+--------+
|
v
SIEM
|
+-----+-----+
| |
Detection Hunting
Zeek może dostarczać dane do:
- Elastic,
- OpenSearch,
- Splunk,
- innych systemów SIEM.
Zeek i Elasticsearch
Przykładowa architektura:
Zeek
|
| Logs
v
Log Pipeline
|
v
Elasticsearch
|
v
Kibana
Administrator może następnie wyszukiwać zdarzenia i budować dashboardy.

Zeek i Security Onion
Zeek jest również ważnym elementem platform Network Security Monitoring takich jak Security Onion.
Przykładowa architektura:
Traffic
|
+---- Zeek
|
+---- Suricata
|
+---- PCAP
|
v
Security Monitoring
To bardzo dobre środowisko laboratoryjne do nauki SOC.
Zeek vs Suricata
Najważniejsza różnica:
| Zeek | Suricata | |
|---|---|---|
| Network monitoring | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| IDS | ✅ | ✅ |
| IPS | ❌ / nie jest głównym zastosowaniem | ✅ |
| Blocking | ❌ | ✅ |
| Protocol analysis | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| Metadata | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| Threat hunting | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| Signature detection | mniejsze znaczenie | ⭐⭐⭐⭐⭐ |
Najprościej:
Suricata mówi: „To wygląda jak atak”.
Zeek pomaga odpowiedzieć: „Co dokładnie działo się w sieci przed, podczas i po tym zdarzeniu?”.
Zeek vs Snort
Podobna różnica:
Snort
|
Signature Detection
|
Alert / Drop
natomiast:
Zeek
|
Protocol Analysis
|
Metadata
|
Logs
|
Investigation
Dlatego oba narzędzia mogą działać jednocześnie.
Zeek + Snort + Firewall
Bardzo ciekawa architektura:
INTERNET
|
v
Firewall
|
+---------+---------+
| |
v v
Snort 3 Zeek
IPS NSM
| |
BLOCK LOG
| |
+---------+---------+
|
v
LAN
|
v
SIEM
To już zaczyna przypominać prawdziwą architekturę SOC.
Zeek scripting
Jedną z najważniejszych możliwości Zeeka jest jego własny język skryptowy.
Można reagować na zdarzenia.
Przykładowa idea:
if suspicious_connection:
generate_notice()
Pozwala to tworzyć własne mechanizmy detekcji.
Notices
Zeek posiada mechanizm Notice Framework.
Można dzięki niemu generować informacje o interesujących zdarzeniach.
Schemat:
Traffic
|
Event
|
Detection Logic
|
Notice
|
SOC
Własna detekcja
Można tworzyć reguły odpowiadające specyfice organizacji.
Przykład logiczny:
IF
internal workstation
communicates with
known malicious IP
THEN
generate notice
To znacznie bardziej elastyczne niż poleganie wyłącznie na gotowych sygnaturach.
Zeek nie jest antywirusem
To również trzeba mocno podkreślić.
Zeek:
❌ nie zastępuje EDR
❌ nie zastępuje firewalla
❌ nie zastępuje IPS
❌ nie skanuje całego systemu operacyjnego
Jego zadaniem jest widoczność sieciowa.
Defense in Depth
Najlepsza architektura może wyglądać tak:
Internet
|
Firewall
|
Suricata / Snort
|
Network
|
+--------+--------+
| | |
Zeek EDR DNS
| | |
+--------+--------+
|
SIEM
|
SOC
Każde narzędzie dostarcza innego rodzaju informacji.
Zeek w Homelabie
Zeek świetnie nadaje się do laboratorium.
Przykład:
OPNsense
|
Managed Switch
|
+--------+--------+
| | |
PC VM Zeek
Switch może wysyłać kopię ruchu do Zeeka przez SPAN.
Możesz wtedy obserwować:
- DNS,
- HTTP,
- TLS,
- SSH,
- połączenia TCP,
- transfery plików.
Praktyczny scenariusz
Załóżmy, że jeden komputer został zainfekowany.
EDR wykrywa:
Suspicious Process
Suricata:
C2 Communication Detected
Zeek:
Host 192.168.10.25
|
+--> DNS query
|
+--> C2 IP
|
+--> 5 periodic connections
|
+--> File transfer
SIEM koreluje wszystkie informacje.
Dzięki temu analityk nie patrzy tylko na jeden alert.
Najczęstsze błędy
❌ traktowanie Zeeka jako firewalla
❌ podłączenie sensora bez właściwego SPAN/TAP
❌ brak synchronizacji czasu
❌ zbieranie ogromnej ilości logów bez retencji
❌ brak centralnego systemu analizy
❌ brak tuningu
❌ brak ochrony samych sensorów
Najlepsze praktyki
1. Umieść Zeeka w strategicznym miejscu
Najlepiej tam, gdzie ruch jest najbardziej wartościowy.
2. Użyj SPAN lub TAP
Zapewnij kompletny i wiarygodny obraz ruchu.
3. Centralizuj logi
Zeek → SIEM
4. Synchronizuj czas
NTP jest niezwykle ważny podczas korelacji zdarzeń.
5. Ustal retencję
Nie każdy log musi być przechowywany przez lata.
6. Twórz własne detekcje
Dopasuj Zeeka do infrastruktury.
Podsumowanie
Zeek to przede wszystkim platforma Network Security Monitoring, a nie klasyczny firewall czy IPS.
Jego największą wartością jest możliwość odpowiedzi na pytania:
- kto z kim się komunikował?
- kiedy?
- jak długo?
- jakim protokołem?
- ile danych przesłano?
- jakie DNS zostało wykonane?
- jakie pliki przesłano?
- czy zachowanie hosta było nietypowe?
Najbardziej wartościowy zestaw wygląda więc tak:
INTERNET
|
Firewall
|
+---------+---------+
| |
Snort 3 / Zeek
Suricata |
| |
IPS Network Logs
| |
+---------+---------+
|
SIEM
|
SOC
Snort/Suricata zatrzymują zagrożenia, a Zeek daje analitykowi widoczność tego, co naprawdę wydarzyło się w sieci. To właśnie dlatego Zeek jest tak wartościowym elementem nowoczesnego Network Security Monitoring i threat huntingu.





