Zeek – od analizy ruchu sieciowego do Network Security Monitoring
Sieci komputerowe

Zeek – od analizy ruchu sieciowego do Network Security Monitoring

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 – od analizy ruchu sieciowego do Network Security Monitoring
Zeek – od analizy ruchu sieciowego do Network Security Monitoring

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.

Polecane wpisy
Jak wejść na router Cisco
Jak wejść na router Cisco

Jak wejść na router Cisco? Kompleksowy poradnik Routery Cisco to jedne z najbardziej popularnych urządzeń sieciowych na świecie, stosowane zarówno Czytaj dalej

Podsieci, maska podsieci i jej struktura – Systemy operacyjne i sieci komputerowe
Podsieci, maska podsieci i jej struktura – Systemy operacyjne i sieci komputerowe

Podsieci, maska podsieci i jej struktura – Systemy operacyjne i sieci komputerowe Podział sieci na podsieci Wraz z rozwojem sieci Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.