Episode ini membahas Wazuh API beserta keamanannya. Kita menjelajahi endpoint utama, Swagger UI, dan SDK Python. Kemudian kita memperkuat akses dengan RBAC, single sign-on SAML dan OpenID Connect, TLS antar komponen, serta hardening password.

Di episode 14, kita membangun arsitektur distribusi Wazuh: cluster indexer, cluster manager, dan dashboard. Arsitektur yang besar membawa konsekuensi: semakin banyak pintu masuk, semakin banyak yang harus diamankan. Salah satu pintu masuk yang paling sering dilupakan adalah API.
Wazuh API adalah gerbang otomasi. Dashboard berbicara ke API, tooling berbicara ke API, dan integrasi SOAR berbicara ke API. Jika API terbuka tanpa autentikasi yang benar, seluruh stack kita bisa dikuasai orang lain.
Di episode 15 ini, kita akan membahas Wazuh API dari dua sisi. Pertama, fungsinya: endpoint utama, Swagger UI, dan SDK Python. Kedua, pengamannya: RBAC, single sign-on, TLS, dan hardening password.
Wazuh API adalah antarmuka RESTful yang berjalan di port 55000 dengan HTTPS. Semua operasi manajemen bisa dilakukan lewat API: melihat daftar agent, menjalankan active response, memicu scan SCA, hingga mengelola aturan.
Setiap permintaan membutuhkan token JWT. Token didapat dengan memanggil endpoint login menggunakan credential user. Contoh paling sederhana memakai curl.
TOKEN=$(curl -s -u wazuh-wui:SecretWUI \
-k https://10.0.1.11:55000/security/user/authenticate)Beberapa endpoint yang paling sering dipakai dalam otomasi:
/agents: daftar agent, status, dan detail./security: manajemen user, role, dan policy RBAC./vulnerability: hasil scan kerentanan per agent./syscheck: hasil file integrity monitoring./sca: hasil security configuration assessment./active-response: memicu aksi pencegahan pada agent.Untuk menambah agent baru lewat API, kita bisa memanggil endpoint enrollment. Ini yang dipakai dashboard saat menampilkan perintah install untuk agent baru.
{
"data": {
"id": "014",
"key": "MDE1NmViOWQxMW...",
"name": "web-server-01"
}
}Setiap instalasi Wazuh menyertakan dokumentasi interaktif API berupa Swagger UI. Buka https://10.0.1.11:55000 di browser, lalu login dengan user API. Kalian akan melihat seluruh endpoint, parameter, dan contoh respons yang bisa dicoba langsung.
Swagger UI sangat membantu saat belajar. Kalian bisa melihat bentuk request yang benar untuk sebuah endpoint, lalu meniru bentuk tersebut di skrip otomasi. Ini mempercepat pengembangan integrasi secara signifikan.
Untuk bahasa pemrograman, Wazuh menyediakan SDK resmi untuk Python. Paket bernama wazuh SDK ini membungkus API sehingga kita tidak perlu menulis curl berulang kali.
pip install wazuhSDK ini memakai API yang sama, jadi apa pun yang bisa dilakukan lewat dashboard bisa dilakukan lewat kode. Inilah fondasi integrasi dengan SOAR dan automation.
Wazuh API menerapkan RBAC. User tidak langsung mendapat akses penuh, melainkan melalui role yang berisi policy. Setiap policy mendefinisikan resource dan aksi yang diizinkan.
Secara default ada dua role bawaan: administrator dengan akses penuh, dan read-only. Untuk kebutuhan khusus, buat role baru dengan policy yang ketat. Contoh policy untuk user yang hanya boleh membaca status agent:
{
"actions": ["agent:read"],
"resources": ["agent:id:*"]
}Terapkan prinsip least privilege: beri akses seminimal mungkin sesuai tugas. Account service untuk otomasi sebaiknya juga terbatas, bukan memakai akun administrator.
Password user lokal sulit dikelola saat tim membesar. Solusinya single sign-on. Dashboard Wazuh mendukung SAML dan OpenID Connect, sehingga login bisa dialihkan ke penyedia identitas seperti Keycloak atau Authelia.
Dengan SSO, pengelolaan user tersentralisasi di satu tempat. User yang keluar dari tim bisa langsung dicabut aksesnya, dan kebijakan seperti MFA bisa diterapkan seragam. Integrasi dengan Keycloak atau Authelia di Wazuh dilakukan dengan mengisi metadata penyedia di konfigurasi dashboard.
Info
SSO mengamankan dashboard, tapi API tetap memakai user dan password. Jika otomasi memakai akun API, pastikan akun itu dirotasi berkala dan tidak berbagi credential dengan manusia.
Semua komunikasi internal Wazuh harus melewati TLS. Ada beberapa jalur yang wajib diamankan.
Sertifikat internal biasanya self-signed dari CA Wazuh. Yang penting bukan siapa penerbitnya, tapi konsistensinya: satu CA yang sama dipercaya oleh semua komponen.
Password adalah pertahanan terakhir yang paling sering diabaikan. Beberapa langkah yang kami terapkan:
curl -k -u wazuh-wui:SecretWUI \
-X PUT https://10.0.1.11:55000/security/users/1/password \
-H "Content-Type: application/json" \
-d '{"password":"NewStr0ngP@ss!"}'API dan SDK membuka pintu integrasi dengan SOAR seperti TheHive atau Shuffle. Alur khasnya: alert Wazuh memicu webhook, SOAR membuat tiket, lalu menjalankan playbook yang memanggil balik API Wazuh untuk mengambil konteks atau menjalankan active response.
Contoh sederhana memakai webhook bawaan Wazuh untuk meneruskan alert ke Shuffle:
<integration>
<name>shuffle</name>
<hook_url>https://shuffle.example.com/api/v1/webhooks/...</hook_url>
<alert_format>json</alert_format>
</integration>Dengan pola ini, incident response tidak lagi manual. Playbook bisa menonaktifkan agent, memicu scan, atau memanggil threat intel secara otomatis.
Di episode 15 ini, kita membahas Wazuh API dan pengamanannya. Kita mengenal endpoint utama, Swagger UI untuk dokumentasi interaktif, dan SDK Python wazuh untuk otomasi. Lalu kita memperkuat akses dengan RBAC, single sign-on lewat SAML dan OpenID Connect, TLS antar komponen, serta hardening password.
Inti yang harus dibawa pulang:
wazuh membungkus API untuk otomasi dan SOAR.API sudah aman, tapi ada satu jalur komunikasi yang paling sering diremehkan: agent ke manager. Di episode 16, kita akan membahas enkripsi, sertifikat X.509, dan secure agent communication secara mendalam. Sampai jumpa!