Lewati ke konten utama

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

  1. Unggah: Aturan diunggah melalui titik akhir /api/rules/upload.
  2. Penyimpanan: File disimpan di folder rules-default/ beserta metadatanya.
  3. Distribusi: Selama proses sensor-activate, backend atau layanan ansible dapat menarik aturan ini dan mendorongnya ke host sensor.

Logika Eksekusi

Saat sebuah playbook dipicu:

  1. Pembuatan Inventaris: File .ini sementara dibuat berisi IP host target, kredensial SSH, dan kata sandi sudo.
  2. Injeksi Variabel: Variabel tambahan (misalnya, sensor_uuid, sensor_interface) diteruskan menggunakan bendera -e.
  3. Eksekusi: Layanan menjalankan ansible-playbook sebagai proses anak (child process).
  4. Penangkapan Log: Output standar (STDOUT) dan error standar (STDERR) ditangkap dan disimpan dalam rekaman eksekusi.
  5. Pembersihan: File inventaris sementara dihapus segera setelah proses selesai.