Tips en Trucs 2024

Zeek Network Security Monitoring

Zeek is een open-source en wereldwijd toonaangevend beveiligingsmonitoringprogramma dat wordt gebruikt als netwerkintrusiedetectiesysteem en netwerkverkeeranalyser. Beveiligingsprofessionals gebruiken het om verdachte handtekeningen te detecteren en DNS-, HTTP- en FTP-activiteit te volgen. Zeek registreert netwerkactiviteiten in aparte bestanden. Deze bestanden bevatten alle belangrijke informatie zoals MIME types, server responses, DNS requests, HTTP sessies, aangevraagde URI's, SSL certificaten en meer.

Zeek installeren

Eerst moet je alle systeempakketten bijwerken naar de meest recent beschikbare versie. Je kunt ze allemaal bijwerken door de volgende opdracht uit te voeren.

dany@pindabook:~$ sudo apt update && sudo apt upgrade -y
[sudo] wachtwoord voor root: 
Geraakt:1 http://deb.debian.org/debian bookworm InRelease
Ophalen:2 http://deb.debian.org/debian bookworm-updates InRelease [55,4 kB]       
Ophalen:3 http://security.debian.org/debian-security bookworm-security InRelease [48,0 kB]
Ophalen:4 http://download.opensuse.org/repositories/security:/zeek/Debian_12  InRelease [1.552 B]                  
Ophalen:5 http://security.debian.org/debian-security bookworm-security/main Sources [97,9 kB]
Ophalen:6 http://security.debian.org/debian-security bookworm-security/main amd64 Packages [158 kB]
Ophalen:7 http://security.debian.org/debian-security bookworm-security/main Translation-en [95,2 kB]
Ophalen:8 http://download.opensuse.org/repositories/security:/zeek/Debian_12  Packages [30,7 kB]
487 kB opgehaald in 1s (617 kB/s)   
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
1 pakket kan opgewaardeerd worden. Voer 'apt list --upgradable' uit om het te zien.
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
Opwaardering wordt doorgerekend... Klaar
De volgende pakketten zullen opgewaardeerd worden:
  libarchive13
1 opgewaardeerd, 0 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 343 kB aan archieven opgehaald worden.
Na deze bewerking zal er 0 B extra schijfruimte gebruikt worden.
Ophalen:1 http://security.debian.org/debian-security bookworm-security/main amd64 libarchive13 amd64 3.6.2-1+deb12u1 [343 kB]
343 kB opgehaald in 0s (5.341 kB/s)
apt-listchanges: De changelogs worden ingelezen...
(Database wordt ingelezen ... 186640 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../libarchive13_3.6.2-1+deb12u1_amd64.deb wordt voorbereid...
Bezig met uitpakken van libarchive13:amd64 (3.6.2-1+deb12u1) over (3.6.2-1) ...
Instellen van libarchive13:amd64 (3.6.2-1+deb12u1) ...
Bezig met afhandelen van triggers voor libc-bin (2.36-9+deb12u7) ...

Installeer na het bijwerken van alle systeempakketten enkele vereiste pakketten met de volgende opdracht.

dany@pindabook:~$ sudo apt install curl gnupg2 wget
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
curl is reeds de nieuwste versie (7.88.1-10+deb12u5).
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  gnupg2 wget
0 opgewaardeerd, 2 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 1.429 kB aan archieven opgehaald worden.
Na deze bewerking zal er 4.155 kB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n] 
Ophalen:1 http://deb.debian.org/debian bookworm/main amd64 wget amd64 1.21.3-1+b2 [984 kB]
Ophalen:2 http://deb.debian.org/debian bookworm/main amd64 gnupg2 all 2.2.40-1.1 [445 kB]
1.429 kB opgehaald in 0s (8.107 kB/s)
Voorheen niet geselecteerd pakket wget wordt geselecteerd.
(Database wordt ingelezen ... 186542 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../wget_1.21.3-1+b2_amd64.deb wordt voorbereid...
Bezig met uitpakken van wget (1.21.3-1+b2) ...
Voorheen niet geselecteerd pakket gnupg2 wordt geselecteerd.
Uitpakken van .../gnupg2_2.2.40-1.1_all.deb wordt voorbereid...
Bezig met uitpakken van gnupg2 (2.2.40-1.1) ...
Instellen van gnupg2 (2.2.40-1.1) ...
Instellen van wget (1.21.3-1+b2) ...
Bezig met afhandelen van triggers voor install-info (6.8-6+b1) ...
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...

Het Zeek pakket is standaard niet opgenomen in de Debian standaard softwarebronnen. Je moet dus eerst de Zeek softwarebron toevoegen aan APT.

Voeg eerst de Zeek softwarebron toe met de volgende opdracht.

dany@pindabook:~$ echo 'deb http://download.opensuse.org/repositories/security:/zeek/Debian_12/ /' | sudo tee /etc/apt/sources.list.d/security:zeek.list
[sudo] wachtwoord voor root: 
deb http://download.opensuse.org/repositories/security:/zeek/Debian_12/ /

Download vervolgens de Zeek GPG-sleutel en voeg deze toe met de volgende opdracht.

dany@pindabook:~$ curl -fsSL https://download.opensuse.org/repositories/security:zeek/Debian_12/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/security_zeek.gpg > /dev/null

Werk vervolgens de cache van de softwarebron bij met de volgende opdracht.

dany@pindabook:~$ sudo apt update
Geraakt:1 http://security.debian.org/debian-security bookworm-security InRelease
Geraakt:2 http://deb.debian.org/debian bookworm InRelease
Geraakt:3 http://deb.debian.org/debian bookworm-updates InRelease
Ophalen:4 http://download.opensuse.org/repositories/security:/zeek/Debian_12  InRelease [1.552 B]
Ophalen:5 http://download.opensuse.org/repositories/security:/zeek/Debian_12  Packages [30,7 kB]
32,2 kB opgehaald in 1s (40,5 kB/s) 
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
Alle pakketten zijn up-to-date.

Je kunt nu Zeek installeren door de volgende opdracht uit te voeren.

dany@pindabook:~$ sudo apt install zeek
Pakketlijsten worden ingelezen... Klaar
Boom van vereisten wordt opgebouwd... Klaar
De statusinformatie wordt gelezen... Klaar 
De volgende extra pakketten zullen geïnstalleerd worden:
  libbroker-dev libc-ares2 libdbus-1-dev liblockfile1 libmaxminddb-dev libpcap-dev libpcap0.8-dev libpkgconf3 libssl-dev lockfile-progs m4
  pkg-config pkgconf pkgconf-bin postfix-mta-sts-resolver python3-aiodns python3-aiohttp python3-aioredis python3-aiosignal python3-aiosqlite
  python3-async-timeout python3-attr python3-charset-normalizer python3-deprecated python3-frozenlist python3-git python3-gitdb
  python3-hiredis python3-idna python3-multidict python3-packaging python3-pycares python3-redis python3-semantic-version python3-smmap
  python3-typing-extensions python3-uvloop python3-wrapt python3-yarl sendmail-base sendmail-bin sendmail-cf zeek-btest zeek-btest-data
  zeek-client zeek-core zeek-core-dev zeek-spicy-dev zeek-zkg zeekctl zlib1g-dev
Voorgestelde pakketten:
  libssl-doc m4-doc python-aiosqlite-doc python-attr-doc python-git-doc redis-server python-pycares-doc python-semantic-version-doc
  python3-nose sendmail-doc logcheck resolvconf sasl2-bin
De volgende NIEUWE pakketten zullen geïnstalleerd worden:
  libbroker-dev libc-ares2 libdbus-1-dev liblockfile1 libmaxminddb-dev libpcap-dev libpcap0.8-dev libpkgconf3 libssl-dev lockfile-progs m4
  pkg-config pkgconf pkgconf-bin postfix-mta-sts-resolver python3-aiodns python3-aiohttp python3-aioredis python3-aiosignal python3-aiosqlite
  python3-async-timeout python3-attr python3-charset-normalizer python3-deprecated python3-frozenlist python3-git python3-gitdb
  python3-hiredis python3-idna python3-multidict python3-packaging python3-pycares python3-redis python3-semantic-version python3-smmap
  python3-typing-extensions python3-uvloop python3-wrapt python3-yarl sendmail-base sendmail-bin sendmail-cf zeek zeek-btest zeek-btest-data
  zeek-client zeek-core zeek-core-dev zeek-spicy-dev zeek-zkg zeekctl zlib1g-dev
0 opgewaardeerd, 52 nieuw geïnstalleerd, 0 te verwijderen en 0 niet opgewaardeerd.
Er moeten 90,7 MB/90,8 MB aan archieven opgehaald worden.
Na deze bewerking zal er 607 MB extra schijfruimte gebruikt worden.
Wilt u doorgaan? [J/n] 
Ophalen:1 http://deb.debian.org/debian bookworm/main amd64 python3-idna all 3.3-1 [39,4 kB]
Ophalen:2 http://deb.debian.org/debian bookworm/main amd64 libc-ares2 amd64 1.18.1-3 [102 kB]
Ophalen:3 http://deb.debian.org/debian bookworm/main amd64 python3-pycares amd64 4.3.0-2 [30,5 kB]
...
Ophalen:48 http://ftp.gwdg.de/pub/opensuse/repositories/security%3A/zeek/Debian_12  zeek-zkg 6.2.1-0 [518 kB]                                 
Ophalen:49 http://ftp.gwdg.de/pub/opensuse/repositories/security%3A/zeek/Debian_12  zeek-client 6.2.1-0 [488 kB]                              
Ophalen:50 http://ftp.gwdg.de/pub/opensuse/repositories/security%3A/zeek/Debian_12  zeek 6.2.1-0 [461 kB]                                     
90,7 MB opgehaald in 14s (6.710 kB/s)                                                                                                         
Extraheren van sjablonen uit pakketten: 100%
Voorheen niet geselecteerd pakket python3-idna wordt geselecteerd.
(Database wordt ingelezen ... 181702 bestanden en mappen momenteel geïnstalleerd.)
Uitpakken van .../00-python3-idna_3.3-1_all.deb wordt voorbereid...
Bezig met uitpakken van python3-idna (3.3-1) ...
...
Voorheen niet geselecteerd pakket zeek wordt geselecteerd.
Uitpakken van .../51-zeek_6.2.1-0_amd64.deb wordt voorbereid...
Bezig met uitpakken van zeek (6.2.1-0) ...
Instellen van python3-attr (22.2.0-1) ...
Instellen van python3-charset-normalizer (3.0.1-2) ...
Instellen van libmaxminddb-dev:amd64 (1.7.1-1) ...
...
Instellen van pkg-config:amd64 (1.8.1-1) ...
Instellen van python3-redis (4.3.4-3) ...
Instellen van sendmail-base (8.17.1.9-2) ...
adduser: Waarschuwing: de persoonlijke map `/var/lib/sendmail' is niet van de gebruiker die u aan het aanmaken bent.
update-inetd: warning: cannot add service, /etc/inetd.conf does not exist
update-inetd: warning: cannot add service, /etc/inetd.conf does not exist
update-inetd: warning: cannot add service, /etc/inetd.conf does not exist
Instellen van postfix-mta-sts-resolver (1.1.2-1.1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/postfix-mta-sts-resolver.service → /lib/systemd/system/postfix-mta-sts-resolver.service.
Instellen van sendmail-bin (8.17.1.9-2) ...
update-alternatives: /usr/libexec/sendmail/sendmail wordt gebruikt om in de automatische modus in /usr/sbin/sendmail-mta (sendmail-mta) te voorzien
update-alternatives: /usr/libexec/sendmail/sendmail wordt gebruikt om in de automatische modus in /usr/sbin/sendmail-msp (sendmail-msp) te voorzien

You are doing a new install, or have erased /etc/mail/sendmail.mc.
If you've accidentaly erased /etc/mail/sendmail.mc, check /var/backups.

I am creating a safe, default sendmail.mc for you and you can
run sendmailconfig later if you need to change the defaults.

Updating sendmail environment ...
Validating configuration.
Writing configuration to /etc/mail/sendmail.conf.
Writing /etc/cron.d/sendmail.
Could not open /etc/mail/databases(No such file or directory), creating it.
Could not open /etc/mail/sendmail.mc(No such file or directory)
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Writing configuration to /etc/mail/sendmail.conf.
Writing /etc/cron.d/sendmail.
Turning off Host Status collection
Could not open /etc/mail/databases(No such file or directory), creating it.
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/databases...

Checking filesystem, this may take some time - it will not hang!
  ...   Done.
 
Checking for installed MDAs...
Adding link for newly extant program (mail.local)
sasl2-bin not installed, not configuring sendmail support.

To enable sendmail SASL2 support at a later date, invoke "/usr/share/sendmail/update_auth"

 
Creating/Updating SSL(for TLS) information
Creating /etc/mail/tls/starttls.m4...
Creating SSL certificates for sendmail.

*** *** *** WARNING *** WARNING *** WARNING *** WARNING *** *** ***

Everything you need to support STARTTLS (encrypted mail transmission
and user authentication via certificates) is installed and configured
but is *NOT* being used.

To enable sendmail to use STARTTLS, you need to:
1) Add this line to /etc/mail/sendmail.mc and optionally
   to /etc/mail/submit.mc:
  include(`/etc/mail/tls/starttls.m4')dnl
2) Run sendmailconfig
3) Restart sendmail


Updating /etc/hosts.allow, adding "sendmail: all".

Please edit /etc/hosts.allow and check the rules location to
make sure your security measures have not been overridden -
it is common to move the sendmail:all line to the *end* of
the file, so your more selective rules take precedence.
Checking {sendmail,submit}.mc and related databases...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/databases...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/databases...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/Makefile...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Writing configuration to /etc/mail/sendmail.conf.
Writing /etc/cron.d/sendmail.
Disabling HOST statistics file(/var/lib/sendmail/host_status).
Creating /etc/mail/sendmail.cf...
Creating /etc/mail/submit.cf...
Informational: confCR_FILE file empty: /etc/mail/relay-domains
Warning: confCT_FILE source file not found: /etc/mail/trusted-users
 it was created
Informational: confCT_FILE file empty: /etc/mail/trusted-users
Warning: confCW_FILE source file not found: /etc/mail/local-host-names
 it was created
Warning: access_db source file not found: /etc/mail/access
 it was created
Updating /etc/mail/access...
Linking /etc/aliases to /etc/mail/aliases
Informational: ALIAS_FILE file empty: /etc/mail/aliases
Updating /etc/mail/aliases...
/etc/mail/aliases: 0 aliases, longest 0 bytes, 0 bytes total
 
Warning: 3 database(s) sources
        were not found, (but were created)
        please investigate.
Bezig met afhandelen van triggers voor libc-bin (2.36-9+deb12u7) ...
Bezig met afhandelen van triggers voor man-db (2.11.2-2) ...
Bezig met afhandelen van triggers voor sgml-base (1.31) ...
Bezig met afhandelen van triggers voor install-info (6.8-6+b1) ...
Instellen van libpcap0.8-dev:amd64 (1.10.3-1) ...
Instellen van libpcap-dev:amd64 (1.10.3-1) ...
Instellen van zeek-core-dev (6.2.1-0) ...
Instellen van zeek-spicy-dev (6.2.1-0) ...
Instellen van zeek-zkg (6.2.1-0) ...
Instellen van zeek (6.2.1-0) ...

Vervolgens moet je het Zeek installatiepad toevoegen aan je systeemvariabele. Je kunt het met de volgende opdracht toevoegen.

dany@pindabook:~$ echo "export PATH=$PATH:/opt/zeek/bin" >> ~/.bashrc

Activeer vervolgens de systeemvariabele met de volgende opdracht.

dany@pindabook:~$ source ~/.bashrc

Je kunt nu de Zeek-versie verifiëren met de volgende opdracht:

dany@pindabook:~$ zeek --version
zeek version 6.2.1

Zeek instellen

Eerst bepalen we welke netwerkkaarten actief zijn:

dany@pindabook:~$ ip a
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host noprefixroute 
       valid_lft forever preferred_lft forever
2: wlp4s0:  mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether ac:7b:a1:42:e0:5f brd ff:ff:ff:ff:ff:ff
    inet 192.168.129.29/23 brd 192.168.129.255 scope global dynamic noprefixroute wlp4s0
       valid_lft 5597sec preferred_lft 5597sec
    inet6 2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f/64 scope global dynamic noprefixroute 
       valid_lft 86327sec preferred_lft 71927sec
    inet6 fe80::6865:fb5:500c:e2cd/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

Op deze computer is enkel wlp4s0 als actieve fysieke netwerkkaart actief. Dit gegeven stellen we in met de opdracht:

dany@pindabook:~$ sudo nano /opt/zeek/etc/node.cfg

En passen we de volgende instelling aan van

interface=eth0

naar

interface=wlp4s0

Sla het bestand op en controleer dan de Zeek configuratie met de volgende opdracht.

dany@pindabook:~$ sudo /opt/zeek/bin/zeekctl check
[sudo] wachtwoord voor root:
Hint: Run the zeekctl "deploy" command to get started.
zeek scripts are ok.

Je kunt Zeek nu inzetten met de volgende opdracht.

dany@pindabook:~$ sudo /opt/zeek/bin/zeekctl deploy
checking configurations ...
installing ...
creating policy directories ...
installing site policies ...
generating standalone-layout.zeek ...
generating local-networks.zeek ...
generating zeekctl-config.zeek ...
generating zeekctl-config.sh ...
stopping ...
stopping zeek ...
starting ...
starting zeek ...

Op dit punt is Zeek geïnstalleerd en geconfigureerd. Je kunt nu de status van Zeek controleren met de volgende opdracht.

dany@pindabook:~$ sudo /opt/zeek/bin/zeekctl status
Name         Type       Host          Status    Pid    Started
zeek         standalone localhost     running   2980   03 Jun 18:43:18

Zeek logboeken

Zeek slaat zijn logbestanden op in de map /opt/zeek/logs/current/. Je kunt alle logbestanden controleren met de volgende opdracht.

dany@pindabook:~$ sudo ls -l /opt/zeek/logs/current/
totaal 192
-rw-r--r-- 1 root zeek   250  3 jun 18:44 capture_loss.log
-rw-r--r-- 1 root zeek  6995  3 jun 18:53 conn.log
-rw-r--r-- 1 root zeek  2367  3 jun 18:51 dns.log
-rw-r--r-- 1 root zeek  7316  3 jun 18:53 files.log
-rw-r--r-- 1 root zeek  6439  3 jun 18:53 http.log
-rw-r--r-- 1 root zeek   211  3 jun 18:44 known_hosts.log
-rw-r--r-- 1 root zeek   243  3 jun 18:44 known_services.log
-rw-r--r-- 1 root zeek 33012  3 jun 18:43 loaded_scripts.log
-rw-r--r-- 1 root zeek   753  3 jun 18:44 notice.log
-rw-r--r-- 1 root zeek   837  3 jun 18:45 ntp.log
-rw-r--r-- 1 root zeek   251  3 jun 18:43 packet_filter.log
-rw-r--r-- 1 root zeek   487  3 jun 18:44 software.log
-rw-r--r-- 1 root zeek   917  3 jun 18:53 stats.log
-rw-r--r-- 1 root zeek    21  3 jun 18:43 stderr.log
-rw-r--r-- 1 root zeek   204  3 jun 18:43 stdout.log
-rw-r--r-- 1 root zeek 83820  3 jun 18:53 telemetry.log

Om het DNS logboek van Zeek te controleren, voer je de volgende opdracht uit.

dany@pindabook:~$ sudo tail /opt/zeek/logs/current/dns.log
1717433473.720941       CMf5dq4rmX27y7J3zf      192.168.129.2   5353    224.0.0.251     5353    udp     0       -       pindadomo.local-       -       -       -       0       NOERROR T       F       F       F       0       192.168.129.2   120.000000      F
1717433473.720941       CiciwFvWGhtftRTD8       192.168.129.55  5353    224.0.0.251     5353    udp     0       -       pindadomo.local1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433473.720941       C9b9k81gDzdDfdsYTg      2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353    ff02::fb        5353    udp     0     -pindadomo.local 1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433655.073790       Ckto9G3u1l3yLHPGZ1      192.168.129.2   5353    224.0.0.251     5353    udp     0       -       pindadomo.local-       -       -       -       0       NOERROR T       F       F       F       0       192.168.129.2   120.000000      F
1717433655.073790       CA8OYf2rUXtVwkhxF2      192.168.129.55  5353    224.0.0.251     5353    udp     0       -       pindadomo.local1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433655.073790       CScUkwLRF8uRjFdgk       2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353    ff02::fb        5353    udp     0     -pindadomo.local 1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433665.672072       CS5Zr22brsy1JkYK49      2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f  5353    ff02::fb        5353    udp     0     -_ipps._tcp.local        1       C_INTERNET      12      PTR     -       -       F       F       F       F       0       -       -     F
1717433665.672138       CoG5E930PQnCOKiFC2      192.168.129.29  5353    224.0.0.251     5353    udp     0       -       _ipps._tcp.local       1       C_INTERNET      12      PTR     -       -       F       F       F       F       0       -       -       F
1717433683.846790       C8ON7I2o5Vo9v52S79      2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353    ff02::fb        5353    udp     0     -_ipp._tcp.local 1       C_INTERNET      12      PTR     -       -       F       F       F       F       0       -       -       F
1717433683.846791       ClxBza4fTvIEflRgn7      192.168.129.55  5353    224.0.0.251     5353    udp     0       -       _ipp._tcp.local1       C_INTERNET      12      PTR     -       -       F       F       F       F       0       -       -       F
Zeek

Om het logboek met verbindingen van Zeek te controleren, voer je de volgende opdracht uit.

dany@pindabook:~$ sudo tail /opt/zeek/logs/current/conn.log
1717433255.244116       CFcqal2qxffjGfkwHl      192.168.129.29  41548   192.168.129.2   80      tcp     http    0.006154        88    222      SF      T       T       0       ShADadFf        6       408     4       438     -
1717433255.261152       CARnVD3t6O3GqLnli5      192.168.129.29  41558   192.168.129.2   80      tcp     http    0.004974        91    213      SF      T       T       0       ShADadFf        6       411     4       429     -
1717433255.277067       CxwaZsct3fhOmjr48       192.168.129.29  41560   192.168.129.2   80      tcp     http    0.004240        91    204      SF      T       T       0       ShADadFf        6       411     4       420     -
1717433292.471349       CR3Bgl1nyhzJnURpik      192.168.129.55  5353    224.0.0.251     5353    udp     dns     -       -       -     S0       T       F       0       D       1       61      0       0       -
1717433292.471349       CNFPTZ1q340CNlelt2      192.168.129.2   5353    224.0.0.251     5353    udp     dns     -       -       -     S0       T       F       0       D       1       71      0       0       -
1717433292.471349       CMOD0b46c5qtpdxAwi      2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353    ff02::fb        5353    udp     dns   --       -       S0      F       F       0       D       1       81      0       0       -
1717433316.309043       CaKMje4SRUXDZScQE5      192.168.129.29  41550   192.168.129.2   80      tcp     http    0.012225        88    210      SF      T       T       0       ShADadFf        6       408     4       426     -
1717433316.330983       CIjYvi1KtAWFCMLlT3      192.168.129.29  41556   192.168.129.2   80      tcp     http    0.007987        91    213      SF      T       T       0       ShADadFf        6       411     4       429     -
1717433316.348028       C8clggPH2BiaA6C8i       192.168.129.29  41570   192.168.129.2   80      tcp     http    0.025199        91    204      SF      T       T       0       ShADadFf        6       411     4       420     -
1717433266.128516       COScHh0OGmo47avAb       fe80::f24d:d4ff:fe0a:b6d2       130     ff02::1 131     icmp    -       -       -     -OTH     T       F       0       -       1       76      0       0       -

Een zeer traditionele manier van interactie met Zeek logs is het gebruik van Unix-achtige tekstverwerkingsprogramma's zoals awk. Awk vereist het specificeren van de interessante velden als posities in het logbestand. Kijk nog eens naar het dns.log bestand hierboven en overweeg de parameters die nodig zijn om alleen het bron IP adres, de query en het antwoord te bekijken. Deze waarden verschijnen in het 3e, 10e en 22e veld in de Zeek TSV (Tab Separated Values) logboekvermeldingen. Daarom kunnen we awk aanroepen met de volgende syntaxis:

dany@pindabook:~$ sudo awk '/^[^#]/ {print $3, $10, $22}' /opt/zeek/logs/current/dns.log
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 pindadomo.local -
192.168.129.2 pindadomo.local 192.168.129.2
192.168.129.55 pindadomo.local -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f _ipps._tcp.local -
192.168.129.29 _ipps._tcp.local -
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 _ipp._tcp.local -
192.168.129.55 _ipp._tcp.local -
192.168.129.55 pindadomo.local -
192.168.129.2 pindadomo.local 192.168.129.2
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 pindadomo.local -
192.168.129.2 pindadomo.local 192.168.129.2
192.168.129.55 pindadomo.local -
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 pindadomo.local -
192.168.129.2 pindadomo.local 192.168.129.2
192.168.129.55 pindadomo.local -
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 pindadomo.local -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f _ipps._tcp.local -
192.168.129.29 _ipps._tcp.local -
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 _ipp._tcp.local -
192.168.129.55 _ipp._tcp.local -
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 pindadomo.local -
192.168.129.55 pindadomo.local -
192.168.129.2 pindadomo.local 192.168.129.2

Nu hebben we een veel compactere weergave, met alleen de velden die we willen. Helaas vereist dit het specificeren van velden per locatie. Als we de loguitvoer zouden wijzigen, of als het Zeek project de loguitvoer zou wijzigen, zouden alle scripts die we gebouwd hebben met awk en veldlocaties aangepast moeten worden. Om deze reden beveelt het Zeek project alternatieven zoals het volgende aan.

Zeek-cut

Het Zeek project biedt een hulpmiddel genaamd zeek-cut om het voor analisten makkelijker te maken om te werken met Zeek logs in TSV formaat. Het verwerkt de header in elk bestand en stelt de gebruiker in staat om te verwijzen naar de specifieke kolomgegevens die beschikbaar zijn. Dit in tegenstelling tot gereedschappen als awk die de gebruiker vragen om te verwijzen naar velden waarnaar verwezen wordt door hun positie.

Bekijk opnieuw het eerder gebruikte dns.log bestand. Als we het verwerken met zeek-cut, zonder aanpassingen, is dit het resultaat:

dany@pindabook:~$ sudo cat /opt/zeek/logs/current/dns.log | zeek-cut
1717433111.222640       Ckxx6d1VUIO82kzsH4      2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353    ff02::fb        5353    udp     0     -pindadomo.local 1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433111.222641       CLEMLA1Au53RzA7nH3      192.168.129.2   5353    224.0.0.251     5353    udp     0       -       pindadomo.local-       -       -       -       0       NOERROR T       F       F       F       0       192.168.129.2   120.000000      F
1717433111.222641       CyAE2N1VBTc7OyVM2i      192.168.129.55  5353    224.0.0.251     5353    udp     0       -       pindadomo.local1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433153.661363       CR7mmW3Hmf9157tAT4      2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f  5353    ff02::fb        5353    udp     0     -_ipps._tcp.local        1       C_INTERNET      12      PTR     -       -       F       F       F       F       0       -       -     F
1717433153.661430       C67WdDYigEcTH8DN7       192.168.129.29  5353    224.0.0.251     5353    udp     0       -       _ipps._tcp.local       1       C_INTERNET      12      PTR     -       -       F       F       F       F       0       -       -       F
1717433171.842578       Cpnzs9zWvWaq1H1k4       2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353    ff02::fb        5353    udp     0     -_ipp._tcp.local 1       C_INTERNET      12      PTR     -       -       F       F       F       F       0       -       -       F
1717433171.843064       C89Sy4wdmWhGJXBr9       192.168.129.55  5353    224.0.0.251     5353    udp     0       -       _ipp._tcp.local1       C_INTERNET      12      PTR     -       -       F       F       F       F       0       -       -       F
1717433292.471349       CR3Bgl1nyhzJnURpik      192.168.129.55  5353    224.0.0.251     5353    udp     0       -       pindadomo.local1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433292.471349       CNFPTZ1q340CNlelt2      192.168.129.2   5353    224.0.0.251     5353    udp     0       -       pindadomo.local-       -       -       -       0       NOERROR T       F       F       F       0       192.168.129.2   120.000000      F
1717433292.471349       CMOD0b46c5qtpdxAwi      2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353    ff02::fb        5353    udp     0     -pindadomo.local 1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433473.720941       CMf5dq4rmX27y7J3zf      192.168.129.2   5353    224.0.0.251     5353    udp     0       -       pindadomo.local-       -       -       -       0       NOERROR T       F       F       F       0       192.168.129.2   120.000000      F
1717433473.720941       CiciwFvWGhtftRTD8       192.168.129.55  5353    224.0.0.251     5353    udp     0       -       pindadomo.local1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433473.720941       C9b9k81gDzdDfdsYTg      2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353    ff02::fb        5353    udp     0     -pindadomo.local 1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433655.073790       Ckto9G3u1l3yLHPGZ1      192.168.129.2   5353    224.0.0.251     5353    udp     0       -       pindadomo.local-       -       -       -       0       NOERROR T       F       F       F       0       192.168.129.2   120.000000      F
1717433655.073790       CA8OYf2rUXtVwkhxF2      192.168.129.55  5353    224.0.0.251     5353    udp     0       -       pindadomo.local1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433655.073790       CScUkwLRF8uRjFdgk       2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353    ff02::fb        5353    udp     0     -pindadomo.local 1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433665.672072       CS5Zr22brsy1JkYK49      2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f  5353    ff02::fb        5353    udp     0     -_ipps._tcp.local        1       C_INTERNET      12      PTR     -       -       F       F       F       F       0       -       -     F
1717433665.672138       CoG5E930PQnCOKiFC2      192.168.129.29  5353    224.0.0.251     5353    udp     0       -       _ipps._tcp.local       1       C_INTERNET      12      PTR     -       -       F       F       F       F       0       -       -       F
1717433683.846790       C8ON7I2o5Vo9v52S79      2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353    ff02::fb        5353    udp     0     -_ipp._tcp.local 1       C_INTERNET      12      PTR     -       -       F       F       F       F       0       -       -       F
1717433683.846791       ClxBza4fTvIEflRgn7      192.168.129.55  5353    224.0.0.251     5353    udp     0       -       _ipp._tcp.local1       C_INTERNET      12      PTR     -       -       F       F       F       F       0       -       -       F
1717433776.008802       C2TdVs4RGV9SDxoGF5      2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353    ff02::fb        5353    udp     0     -pindadomo.local 1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433776.008803       CXqEEg2KKgqqxUOsC4      192.168.129.55  5353    224.0.0.251     5353    udp     0       -       pindadomo.local1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433776.009226       CHsptQ294fDDoB2tNe      192.168.129.2   5353    224.0.0.251     5353    udp     0       -       pindadomo.local-       -       -       -       0       NOERROR T       F       F       F       0       192.168.129.2   120.000000      F
1717433896.843253       CJBLS3Re6Tg1JAXUi       192.168.129.55  5353    224.0.0.251     5353    udp     0       -       pindadomo.local1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433896.843253       CrqAPc1ohffhg9HkY8      2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 5353    ff02::fb        5353    udp     0     -pindadomo.local 1       C_INTERNET      1       A       -       -       F       F       F       F       0       -       -       F
1717433896.843253       Cf1ndg1TqY0PsHwloe      192.168.129.2   5353    224.0.0.251     5353    udp     0       -       pindadomo.local-       -       -       -       0       NOERROR T       F       F       F       0       192.168.129.2   120.000000      F

Dit is de dns.log, zonder de eerder genoemde headervelden. Merk op dat we de opdracht cat in een pijplijn moeten aanroepen om bestanden met zeek-cut te verwerken.

Als we zeek-cut de velden doorgeven die we willen zien, ziet de uitvoer er als volgt uit:

dany@pindabook:~$ sudo cat /opt/zeek/logs/current/dns.log | zeek-cut id.orig_h query answers
192.168.129.29  29.129.168.192.in-addr.arpa     -
192.168.129.29  2.129.168.192.in-addr.arpa      -
192.168.129.29  pindabook.home  -
192.168.129.29  pindabook       -
192.168.129.29  251.0.0.224.in-addr.arpa        mdns.mcast.net
192.168.129.29  55.129.168.192.in-addr.arpa     -
192.168.129.29  b.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.f.f.ip6.arpa        -
192.168.129.29  5.e.9.7.c.8.d.2.4.8.1.6.1.4.3.d.1.0.9.8.a.2.0.e.f.3.0.a.2.0.a.2.ip6.arpa        -
192.168.129.29  f.7.9.0.2.c.3.a.2.0.9.2.a.f.8.a.1.0.9.8.a.2.0.e.f.3.0.a.2.0.a.2.ip6.arpa        -
192.168.129.29  b.4.f.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.1.c.4.8.7.5.0.2.0.a.2.ip6.arpa        -
192.168.129.29  pindabook.home  -
192.168.129.29  pindabook       -
192.168.129.29  2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -
192.168.129.29  2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -
192.168.129.29  2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -
192.168.129.29  d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -
192.168.129.29  d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -
192.168.129.29  d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f  2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f  2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f  2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f  d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f  d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -
2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f  d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -
192.168.129.2   pindadomo.local 192.168.129.2
2a02:a03f:e02a:8901:d341:6184:2d8c:79e5 pindadomo.local -
192.168.129.55  pindadomo.local -

De volgorde van veldnamen doorgegeven aan zeek-cut bepaalt de uitvoervolgorde. Dit betekent dat je zeek-cut ook kunt gebruiken om velden te herschikken. Bijvoorbeeld:

dany@pindabook:~$ sudo cat /opt/zeek/logs/current/dns.log | zeek-cut query answers id.orig_h
29.129.168.192.in-addr.arpa     -       192.168.129.29
2.129.168.192.in-addr.arpa      -       192.168.129.29
pindabook.home  -       192.168.129.29
pindabook       -       192.168.129.29
251.0.0.224.in-addr.arpa        mdns.mcast.net  192.168.129.29
55.129.168.192.in-addr.arpa     -       192.168.129.29
b.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.f.f.ip6.arpa        -       192.168.129.29
5.e.9.7.c.8.d.2.4.8.1.6.1.4.3.d.1.0.9.8.a.2.0.e.f.3.0.a.2.0.a.2.ip6.arpa        -       192.168.129.29
f.7.9.0.2.c.3.a.2.0.9.2.a.f.8.a.1.0.9.8.a.2.0.e.f.3.0.a.2.0.a.2.ip6.arpa        -       192.168.129.29
b.4.f.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.1.c.4.8.7.5.0.2.0.a.2.ip6.arpa        -       192.168.129.29
pindabook.home  -       192.168.129.29
pindabook       -       192.168.129.29
2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -       192.168.129.29
2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -       192.168.129.29
2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -       192.168.129.29
d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -       192.168.129.29
d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -       192.168.129.29
d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -       192.168.129.29
2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -       2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f
2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -       2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f
2.d.6.b.a.0.e.f.f.f.4.d.d.4.2.f.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -       2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f
d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -       2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f
d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -       2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f
d.c.2.e.c.0.0.5.5.b.f.0.5.6.8.6.0.0.0.0.0.0.0.0.0.0.0.0.0.8.e.f.ip6.arpa        -       2a02:a03f:e02a:8901:a8fa:2902:a3c2:97f
pindadomo.local 192.168.129.2   192.168.129.2
pindadomo.local -       2a02:a03f:e02a:8901:d341:6184:2d8c:79e5
pindadomo.local -       192.168.129.55

Tot slot

Dit was maar een korte voorstelling van Zeek. Om alle mogelijkheden van Zeek te leren kennen, raadpleeg je best de uitstekende online documentatie.

Zeek verwijderen