Playbook dan Aturan
Pendahuluan
Logika inti dari Ansible Service berada pada playbook dan file aturan yang dikelolanya. Dokumen ini menjelaskan tujuan dari playbook utama dan bagaimana aturan deteksi ancaman diatur.
Playbook Standar
Playbook terletak di direktori playbooks/. Layanan secara dinamis menghasilkan file inventaris dan menyuntikkan variabel ekstra ke dalam playbook ini selama eksekusi.
1. sensor-setup.yml
Playbook ini digunakan untuk persiapan awal host sensor.
- Tugas Utama:
- Menginstal paket sistem yang diperlukan (Docker, git, curl).
- Mengonfigurasi jaringan host.
- Memastikan Docker berjalan dan dikonfigurasi dengan benar.
- Menyiapkan struktur direktori Ravenxcope pada host.
2. sensor-activate.yml
Playbook ini menyebarkan dan menjalankan mesin deteksi pada host yang sudah disiapkan.
- Tugas Utama:
- Menarik (pull) image Docker yang diperlukan (Suricata/Snort).
- Menyebarkan kontainer Sensor Agent.
- Mengonfigurasi antarmuka pengambilan paket (packet capture).
- Menyuntikkan konfigurasi khusus sensor (UUID, URL Backend).
3. sensor-initial-setup.yml
Playbook gabungan yang digunakan untuk instalasi baru yang melakukan persiapan host dan penyebaran awal agen.
Manajemen Aturan
Layanan ini mengelola repositori aturan deteksi di direktori rules-default/.
Tipe File Aturan
- Aturan Suricata (
.rules): Tanda tangan (signatures) untuk mesin IDS/IPS Suricata. - Aturan Snort (
.conf/.rules): Konfigurasi dan tanda tangan untuk Snort. - Konfigurasi Generik: Templat konfigurasi standar untuk mesin deteksi.
Alur Kerja Penyebaran
- Unggah: Aturan diunggah melalui titik akhir
/api/rules/upload. - Penyimpanan: File disimpan di folder
rules-default/beserta metadatanya. - Distribusi: Selama proses
sensor-activate, backend atau layanan ansible dapat menarik aturan ini dan mendorongnya ke host sensor.
Logika Eksekusi
Saat sebuah playbook dipicu:
- Pembuatan Inventaris: File
.inisementara dibuat berisi IP host target, kredensial SSH, dan kata sandi sudo. - Injeksi Variabel: Variabel tambahan (misalnya,
sensor_uuid,sensor_interface) diteruskan menggunakan bendera-e. - Eksekusi: Layanan menjalankan
ansible-playbooksebagai proses anak (child process). - Penangkapan Log: Output standar (STDOUT) dan error standar (STDERR) ditangkap dan disimpan dalam rekaman eksekusi.
- Pembersihan: File inventaris sementara dihapus segera setelah proses selesai.