Belajar Wazuh - File Integrity Monitoring (FIM)
Episode 7 of 23

Belajar Wazuh - File Integrity Monitoring (FIM)

Mendalami File Integrity Monitoring Wazuh: modul syscheck untuk mengawasi file penting, perbandingan monitoring realtime dan scheduled, whitelist direktori dan registry Windows, serta konfigurasi interval, checksum, dan laporan perubahan file added, modified, dan deleted.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Pendahuluan

Di episode 6 kalian belajar merangkai decoder dan rule, memahami bahwa semua alert lahir dari log yang dinormalisasi lalu dinilai. Namun ada satu kelas deteksi yang tidak bergantung pada log sama sekali: memantau kondisi file itu sendiri. Perubahan kecil pada file penting sering menjadi tanda awal kompromi, sebelum penyerang sempat menulis log mencurigakan.

Episode 7 membawa kalian ke File Integrity Monitoring (FIM) Wazuh. Kita akan membedah modul syscheck, membandingkan monitoring realtime dan scheduled, mempelajari whitelist serta registry Windows, lalu menyusun konfigurasi interval dan checksum untuk kebutuhan yang beragam.

Pada akhir episode kalian bisa menjawab pertanyaan sederhana namun krusial: apakah file penting di server kalian masih sama seperti kemarin?

Apa Itu File Integrity Monitoring

FIM bekerja dengan menghitung checksum dari file, lalu membandingkannya dengan basis data kondisi terakhir yang disimpan. Ketika checksum berubah, Wazuh tahu file telah dimodifikasi dan menghasilkan alert. Modul yang bertanggung jawab di Wazuh adalah syscheck, berjalan di agent dan aktif secara default pada banyak sistem operasi.

Cakupan syscheck tidak berhenti di isi file. Ia juga memantau metadata seperti permission, owner, group, ukuran, dan waktu modifikasi. Perubahan permission misalnya bisa saja terjadi tanpa menyentuh isi file, tetapi tetap berbahaya jika mengubah file rahasia menjadi bisa dibaca publik.

Info

FIM bukan pengganti log monitoring, melainkan pelengkap. Log menceritakan apa yang terjadi pada sistem, sedangkan FIM menceritakan apa yang berubah pada aset. Penyerang yang cerdas bisa mematikan log, tetapi sulit menghapus jejak perubahan file tanpa memicu FIM.

Realtime vs Scheduled Monitoring

syscheck punya dua mode dasar: realtime dan scheduled. Mode realtime memanfaatkan pemberitahuan kernel, seperti inotify di Linux, sehingga perubahan file dilaporkan dalam hitungan detik. Mode scheduled memindai direktori dalam interval tetap dan membandingkan checksum terhadap catatan sebelumnya.

Masing-masing punya kompromi yang jelas. Realtime responsif tetapi memakan lebih banyak sumber daya, karena kernel harus mengawasi setiap file dalam direktori. Scheduled lebih ringan dan cocok untuk direktori besar, tetapi ada jendela waktu di mana perubahan belum terdeteksi. Keputusan terbaik biasanya campuran keduanya.

<syscheck>
  <directories check_all="yes" realtime="yes">/etc</directories>
</syscheck>

Pada blok pertama, direktori /etc dipantau realtime sehingga perubahan sekecil apa pun langsung menjadi event. Blok kedua tidak mencantumkan atribut realtime, sehingga /var/www ikut jadwal scan default dari syscheck. Direktori kecil yang berisi konfigurasi kritis layak realtime, sementara direktori besar yang berubah perlahan cukup terjadwal.

Konfigurasi Dasar syscheck di agent.conf

Konfigurasi syscheck bisa ditulis langsung di ossec.conf agent, atau diatur terpusat lewat agent.conf di manager untuk banyak agent sekaligus. Pendekatan terpusat jauh lebih rapi di lingkungan besar, karena kalian bisa menerapkan kebijakan FIM yang sama untuk seluruh armada server.

Blok syscheck di agent.conf
<agent_config>
  <syscheck>
    <directories check_all="yes">/etc,/usr/bin</directories>
    <frequency>3600</frequency>
    <scan_on_start>yes</scan_on_start>
  </syscheck>
</agent_config>

Elemen directories menentukan lokasi yang dipantau, dengan banyak path dipisahkan koma. frequency mengatur interval scan dalam detik, dan scan_on_start memastikan pemindaian pertama berjalan segera setelah agent menyala. Konfigurasi ini disinkronkan otomatis ke agent saat agent menghubungi manager berikutnya.

Info

Simpan file baseline sebelum menambahkan direktori ke syscheck. Jika tidak, scan pertama bisa menghasilkan banyak alert false positive karena Wazuh menganggap semua file yang belum pernah dicatat sebagai baru. Sebaiknya beri waktu observasi sebelum memutuskan direktori mana yang benar-benar penting.

Membaca Laporan Perubahan

Saat file berubah, Wazuh mengeluarkan alert FIM yang dikategorikan dalam tiga tipe utama: added, modified, dan deleted. Atribut event di dalam detail alert memberi tahu tipe perubahan tersebut, dan level alert berada di sekitar angka 550 untuk ketiga kategori itu.

Detail alert syscheck untuk file dimodifikasi
{
  "syscheck": {
    "event": "modified",
    "path": "/etc/passwd",
    "attributes": {
      "type": "file",
      "uid": "0",
      "gid": "0"
    },
    "previous_attributes": {
      "checksum": "abc123"
    }
  }
}

Alert semacam ini menyimpan dua sisi kondisi: atribut saat ini dan atribut sebelumnya. Dengan membandingkan keduanya, analis bisa langsung tahu apa yang berubah, apakah hanya metadata atau juga isi file. Dashboard FIM Wazuh mengumpulkan semua perubahan ini dalam satu tabel yang bisa difilter per agent, per direktori, dan per tipe event.

Saat meninjau laporan, ingat bahwa tidak semua perubahan itu serangan. Update paket, deploy aplikasi, dan job backup rutin juga memodifikasi file. Kuncinya adalah membangun baseline aktivitas normal, lalu memperlakukan perubahan yang tidak ada dalam daftar sebagai sinyal untuk diselidiki.

Whitelist dan Registry Windows

Tidak semua file layak dipantau, dan tidak semua perubahan layak dilaporkan. Elemen ignore di dalam syscheck mengecualikan file atau direktori tertentu dari pemantauan. Ini sangat membantu untuk file yang berubah setiap saat, seperti cache atau file lock yang akan selalu menghasilkan noise.

Di sisi lain, Wazuh juga memantau registry Windows melalui elemen windows_registry. Registry menyimpan banyak konfigurasi kritis, termasuk key yang dieksekusi saat startup. Penyerang sering menambahkan nilai registry di key Run agar malware ikut berjalan setiap mesin menyala, sehingga memantau area ini sangat bernilai di lingkungan Windows.

Ignore file dan pantau registry Windows
<syscheck>
  <ignore>/var/cache/apt/archives</ignore>
  <ignore>/tmp</ignore>
  <windows_registry>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run</windows_registry>
  <windows_registry>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce</windows_registry>
</syscheck>

Perhatikan bahwa atribut realtime dan check_all juga bisa diterapkan pada windows_registry. Bila sumber daya memungkinkan, pantau key Run dan RunOnce secara realtime karena keduanya sering menjadi titik masuk persistensi malware. Elemen ignore juga berlaku untuk registry, misalnya mengecualikan key yang berubah terus-menerus karena telemetri.

Custom Interval dan Checksum

Satu direktori belum tentu cocok untuk semua kebutuhan. Wazuh memungkinkan interval berbeda per direktori, serta memilih atribut checksum mana yang dihitung. Semakin banyak atribut yang dihitung, semakin akurat deteksi, tetapi semakin berat beban CPU dan I/O agent.

Interval dan checksum khusus per direktori
<syscheck>
  <directories check_sha256="yes" frequency="300">/etc/ssh</directories>
  <directories check_md5="yes" frequency="43200">/var/log</directories>
  <directories check_size="no" check_owner="no">/srv/app</directories>
  <recursion_level>3</recursion_level>
</syscheck>

Pada contoh ini, konfigurasi SSH dipantau setiap 5 menit dengan checksum SHA-256 yang kuat, sementara direktori log dipindai setiap 12 jam dengan MD5 yang lebih ringan. Direktori aplikasi tetap diperiksa tapi tanpa atribut size dan owner yang tidak relevan. recursion_level membatasi kedalaman subdirektori yang dijelajahi agar scan tidak menyentuh pohon direktori tanpa batas.

Kombinasi interval dan checksum inilah yang menentukan biaya FIM di produksi. Mulai dari interval konservatif, amati penggunaan CPU agent, lalu turunkan interval hanya untuk direktori yang benar-benar kritis. Prinsip ini jauh lebih baik daripada memantau semua file dengan interval super ketat.

Penutup

FIM melengkapi deteksi berbasis log dengan lensa yang berbeda: bukan apa yang terjadi, melainkan apa yang berubah. Kalian sekarang memahami cara kerja syscheck, kapan memakai mode realtime dan scheduled, cara membaca laporan added, modified, dan deleted, serta cara mengecualikan file yang tidak penting dan memantau registry Windows.

Inti yang harus dibawa pulang:

  • syscheck menghitung checksum dan metadata file, lalu melaporkan setiap perubahan terhadap baseline.
  • Mode realtime responsif tapi boros; mode scheduled hemat namun punya jendela deteksi.
  • agent.conf memungkinkan kebijakan FIM yang sama diterapkan ke banyak agent sekaligus.
  • Alert FIM dikategorikan sebagai added, modified, dan deleted dengan detail atribut sebelum dan sesudah.
  • Gunakan ignore untuk menekan noise dan windows_registry untuk memantau area persistensi Windows.
  • Atur interval dan checksum per direktori agar deteksi akurat tanpa membebani agent.

Di episode 8 kita berhenti hanya melaporkan dan mulai bertindak: active response untuk memblokir IP, menghentikan proses, dan mengkarantina file, ditambah deteksi malware lewat rootcheck, YARA, dan modul malware scan terbaru. Sampai jumpa!