Container Security: Monitoring Docker Events dan Activity dengan Wazuh
Wazuh SIEM dapat digunakan untuk me-monitoring Docker container, mendeteksi aktivitas mencurigakan dan serangan web secara real-time.
- Pendahuluan
- Apa itu Wazuh?
- Prerequisites
- Langkah-langkah Konfigurasi
- Use Case 1: Monitoring User Interaction dengan Docker Container
- Use Case 2: Monitoring Container Runtime untuk Deteksi Web Attacks
- Referensi

Pendahuluan
Docker telah menjadi teknologi containerization yang sangat populer di kalangan developer dan DevOps engineer. Namun, dengan semakin luasnya penggunaan Docker dalam production environment, kebutuhan akan monitoring dan keamanan container juga semakin meningkat. Di sinilah Wazuh dapat digunakan untuk melakukan monitoring pada Docker.
Dalam artikel ini, kita akan membahas bagaimana menggunakan Wazuh untuk monitoring Docker events dan activities secara real-time, serta implementasinya.
Apa itu Wazuh?
Wazuh adalah platform keamanan open-source yang menyatukan kemampuan XDR (Extended Detection and Response) dan SIEM (Security Information and Event Management) yang menyediakan berbagai capabilities untuk container security, termasuk:
- Centralized logging - Mengumpulkan log dari berbagai sumber
- Real-time monitoring - Monitoring aktivitas secara real-time
- Vulnerability scanning - Scan kerentanan security
- Incident response automation - Otomasi respons terhadap insiden keamanan
Prerequisites
Sebelum memulai, pastikan sudah memiliki:
- Docker Server - Server yang menjalankan Docker engine
- Wazuh Agent - Agent Wazuh terinstall pada Docker server
- Wazuh Server - Wazuh agent sudah terdaftar ke Wazuh server
Langkah-langkah Konfigurasi
Step 1: Install Python Docker Library
Sebelum menginstall library, sebaiknya kita melakukan setup virtual environment terlebih dahulu supaya tidak mengganggu package global system.
1
2
3
cd /var/ossec/wodles/docker
python3 -m venv venv
source venv/bin/activate
Instal library Docker untuk Python yang diperlukan Wazuh Docker listener.
1
2
3
4
5
# Untuk Python 3.8–3.10
(venv) pip3 install docker==7.1.0 urllib3==1.26.20 requests==2.32.2
# Untuk Python 3.11–3.12
(venv) pip3 install docker==7.1.0 urllib3==1.26.20 requests==2.32.2
Info
Penggunaan virtual environment sangat direkomendasikan untuk mengisolasi dependencies dan menghindari konflik dengan package system.
Update Shebang pada Script DockerListener
Edit file /var/ossec/wodles/docker/DockerListener:
1
nano /var/ossec/wodles/docker/DockerListener
Ubah baris pertama dari:
1
#!/usr/bin/env python3
Menjadi path ke venv:
1
#!/var/ossec/wodles/docker/venv/bin/python3
Uji Coba DockerListener

Uji coba jalankan binary DockerListener, pastikan terhubung ke Docker service.
1
sudo /var/ossec/wodles/docker/DockerListener

Step 2: Konfigurasi Wazuh Agent
Tambahkan konfigurasi berikut ke file /var/ossec/etc/ossec.conf pada Docker server:
1
2
3
<wodle name="docker-listener">
<disabled>no</disabled>
</wodle>
Restart Wazuh agent untuk menerapkan perubahan:
1
systemctl restart wazuh-agent
Step 3: Konfigurasi Advanced (Optional)
Untuk konfigurasi yang lebih advanced, Anda dapat menggunakan berbagai opsi scheduling:
1
2
3
4
5
6
<wodle name="docker-listener">
<interval>10m</interval>
<attempts>5</attempts>
<run_on_start>no</run_on_start>
<disabled>no</disabled>
</wodle>
Penjelasan konfigurasi:
interval: Waktu tunggu untuk rerun listener jika gagalattempts: Jumlah percobaan eksekusi listener jika gagalrun_on_start: Jalankan listener segera saat Wazuh agent startdisabled: Enable/disable Docker listener
Use Case 1: Monitoring User Interaction dengan Docker Container
Mari kita test monitoring Docker events dengan melakukan berbagai operasi container.
1. Jalankan Container
Jalankan container sederhana menggunakan image httpd:
1
docker run -d --name test-container httpd

Hasil monitoring dapat kita lihat pada Wazuh dashboard di module Threat Hunting atau Docker listener dashboard.

2. Pause, Resume, Stop Container
Lakukan operasi pause, unpause, dan stop pada container:
1
2
3
docker pause test-container
docker unpause test-container
docker stop test-container

Setiap operasi ini akan tercatat di Wazuh dashboard dengan detail event yang lengkap.

3. Remove Container dan Hapus Image
Hapus container dan image yang sudah tidak digunakan:
1
2
docker rm test-container
docker rmi httpd

Event removal juga akan terekam di Wazuh.

Use Case 2: Monitoring Container Runtime untuk Deteksi Web Attacks
Use case ini menunjukkan bagaimana Wazuh dapat monitoring runtime logs container web untuk mendeteksi serangan web, seperti SQL Injection.
Konfigurasi Wazuh Agent
Tambahkan konfigurasi berikut ke /var/ossec/etc/ossec.conf pada Docker server:
1
2
3
4
<localfile>
<log_format>syslog</log_format>
<location>/var/lib/docker/containers/*/*-json.log</location>
</localfile>
Restart Wazuh agent:
1
systemctl restart wazuh-agent
Konfigurasi Wazuh Server
Tambahkan decoder berikut ke /var/ossec/etc/decoders/local_decoder.xml pada Wazuh server:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<decoder name="web-accesslog-docker">
<parent>json</parent>
<type>web-log</type>
<use_own_name>true</use_own_name>
<prematch offset="after_parent">^log":"\S+ \S+ \S+ \.*[\S+ \S\d+] \.*"\w+ \S+</prematch>
<regex offset="after_parent">^log":"(\S+) \S+ \S+ \.*[\S+ \S\d+] \.*"(\w+) (\S+)</regex>
<order>srcip,protocol,url,id</order>
</decoder>
<decoder name="json">
<parent>json</parent>
<use_own_name>true</use_own_name>
<plugin_decoder>JSON_Decoder</plugin_decoder>
</decoder>
Restart Wazuh manager:
1
systemctl restart wazuh-manager
Info
Decoder berfungsi untuk mem-parsing log dari format JSON Docker menjadi field-field yang dapat dianalisis oleh Wazuh.
Testing SQL Injection Detection
Jalankan web container dengan nginx:
1
docker run --name test-container -p 80:80 -d nginx

Simulasi SQL injection attack:
1
curl -XGET "http://<WEB_IP_ADDRESS>/users/?id=SELECT+*+FROM+users"

Hasil Deteksi
Alert akan muncul pada Wazuh Dashboard dengan detail lengkap mengenai serangan SQL Injection yang terdeteksi:

Detail alert akan menampilkan informasi seperti:
- Source IP attacker
- URL yang diserang
- Payload SQL Injection
- Timestamp serangan
- Rule ID dan severity level
