Skip to main content

File Integirty Monitoring

File Integrity Monitoring (FIM) pada Wazuh bisa diibaratkan sebagai sistem keamanan digital yang terus mengawasi file-file penting dalam organisasi Anda. Setiap kali ada file yang diubah, dihapus, atau ditambahkan di lokasi yang sudah ditentukan, Wazuh akan langsung mendeteksi, mencatat, dan mengirimkan peringatan kepada administrator sistem.

FIM ini sangat krusial untuk:

  • Mendeteksi aktivitas yang tidak sah atau mencurigakan secara cepat.
  • Mengidentifikasi potensi pelanggaran keamanan data.
  • Memastikan organisasi tetap patuh pada regulasi seperti PCI DSS, HIPAA, atau GDPR yang memang mewajibkan pemantauan integritas file.

Bagaimana cara kerjanya? Berikut penjelasan singkatnya:

  1. Pembuatan Baseline
    Ketika FIM diaktifkan pada direktori tertentu, Wazuh melakukan pemindaian awal dan mencatat kondisi dasar semua file. Informasi yang disimpan termasuk hash kriptografi (seperti SHA-1 atau MD5), serta metadata file seperti izin akses, kepemilikan, dan ukuran.

  2. Pemantauan Real-time
    Wazuh memanfaatkan sistem audit pada kernel Linux (inotify) atau layanan auditing pada Windows untuk memantau perubahan file secara real-time, sehingga proses pemantauan jauh lebih efisien.

  3. Deteksi Perubahan
    Setiap ada perubahan pada file, agen Wazuh langsung:

    • Menghitung hash terbaru,
    • Mengumpulkan metadata terbaru,
    • Mengirimkan informasi tersebut ke server Wazuh.
  4. Analisis dan Peringatan
    Server Wazuh akan membandingkan data terbaru dengan baseline yang sudah ada. Bila ditemukan perbedaan, sistem secara otomatis mengirimkan alert dan menampilkannya di dashboard web UI.

Dengan implementasi FIM pada Wazuh, organisasi dapat memastikan bahwa integritas data tetap terjaga, risiko kebocoran atau manipulasi data bisa diminimalisir, serta kepatuhan terhadap standar regulasi tetap terjaga.

Pengaturan FIM​

FIM dapat dikonfigurasi terpusat pada Wazuh Server maupun secara individual pada Wazuh Agent.

Pengaturan FIM dilakukan pada file konfigurasi ossec.conf,

  • Linux: /var/ossec/etc/ossec.conf
  • Windows: C:\Program Files (x86)\ossec-agent\ossec.conf
  • macOS: /Library/Ossec/etc/ossec.conf

Standar konfigurasi FIM sebagai berikut:

<syscheck>
<directories><FILEPATH_OF_MONITORED_FILE></directories>
<directories><FILEPATH_OF_MONITORED_DIRECTORY></directories>
</syscheck>
  • FILEPATH_OF_MONITORED_FILE : lokasi file (spesifik) yang dimonitor.
    • contoh :
      • /etc/passwd
      • C:\Windows\System32\drivers\etc\hosts
  • FILEPATH_OF_MONITORED_DIRECTORY : lokasi direktori/ folder yang dimonitor.
    • contoh :
      • /var/www/html/
      • /home/user/
      • **

Pengaturan Dasar FIM​

Real-time Monitoring​

Real-time memungkinkan pemantauan secara real-time/ berkelanjutan terhadap direktori pada endpoint Windows dan Linux saja.

/var/ossec/etc/ossec.conf
<syscheck>
<directories realtime="yes"><FILEPATH_OF_MONITORED_DIRECTORY></directories>
</syscheck>

Record File Attributes​

Ketika melakukan konfigurasi modul FIM untuk memantau file dan direktori tertentu, modul ini akan mencatat metadata file dan memantaunya. Kita dapat menggunakan opsi direktori untuk menetapkan metadata file tertentu yang harus dikumpulkan dan diabaikan oleh modul FIM. Opsi direktori mendukung beberapa atribut.

AttributeDefault valuesAllowed valuesDescription
check_allyesyes, noRecords the value of all attributes: check_sum, check_sha1sum, check_md5sum, check_sha256sum, check_size, check_owner, check_group, check_perm, check_attrs, check_mtime, check_inode
note

Jika terjadi konflik antara opsi yang memodifikasi atribut yang sama, opsi yang terakhir dikonfigurasi akan diutamakan.

  • <directories check_all="no" check_mtime="yes">/etc</directories> : tidak merekam perubahan semua atribut, kecuali waktu modifikasi.
  • <directories check_mtime="yes" check_all="no">/etc</directories> : tidak merekam perubahan semua atribut, termasuk waktu modifikasi.

Contoh :

/var/ossec/etc/ossec.conf
<syscheck>
<directories check_sha1sum="no"><FILEPATH_OF_MONITORED_FILE></directories>
</syscheck>

Scheduled scans​

Untuk mengubah jadwal pemindaian modul FIM, kita dapat mengonfigurasi opsi <frequency> pada modul FIM Wazuh.

info

Modul FIM menjalankan pemindaian setiap 12 jam (43200 detik) secara default.

Contoh Konfigurasi 1

Mengubah jadwal pemindaian setiap 900 detik (15 menit).

/var/ossec/etc/ossec.conf
<syscheck>
<frequency>900</frequency>
</syscheck>

Sebagai alternatif, kita dapat menjadwalkan pemindaian menggunakan opsi scan_time dan scan_day. Konfigurasi FIM menggunakan opsi-opsi ini membantu mengatur pemindaian FIM di luar jam kerja.

AttributeDefault valuesAllowed valuesDescription
scan_dayn/aDay of the week.Day of the week to run the scans, one entry per line. ex: thrusday
scan_timen/aTime of day.Time to runs the scans. ex: 9pm or 8:30
Contoh Konfigurasi 2

Mengubah jadwal pemindaian setiap jam 10 malam di hari Sabtu.

/var/ossec/etc/ossec.conf
<syscheck>
<scan_time>10pm</scan_time>
<scan_day>saturday</scan_day>
</syscheck>

Report changes​

Atribut report_changes memungkinkan modul FIM untuk melaporkan konten yang diubah. fitur ini mencatat teks yang ditambahkan atau dihapus dari berkas yang dipantau. Kita dapat mengkonfigurasi fungsi ini dengan mengaktifkan atribut report_changes pada opsi directories. Nilai yang diizinkan untuk atribut ini adalah yes dan no. Fitur ini berfungsi baik pada direktori maupun berkas individu di endpoint Windows, macOS, dan Linux.

warning

Kita harus menggunakan atribut report_changes dengan hati-hati saat mengaktifkan opsi ini. Wazuh menyalin setiap berkas yang dipantau ke private location, yang dapat meningkatkan penggunaan penyimpanan.

Private location :

  • Linus : /var/ossec/queue/diff/local/
  • macOS : Library/Ossec/queue/diff/local/
  • Windows : C:\Program Files (x86)\ossec-agent\queue\diff\local\
Contoh Konfigurasi

Cek menggunakan semua konfigurasi FIM dan laporkan konten yang berubah pada direktori /var/www/html/

/var/ossec/etc/ossec.conf
<syscheck>
<directories check_all="yes" report_changes="yes">/var/www/html</directories>
</syscheck>

Report changes - nodiff​

Daftar file yang tidak perlu dihitung perbedaannya (satu entri per baris). Daftar ini dapat digunakan untuk file sensitif seperti private key, kredensial yang disimpan dalam file, atau konfigurasi database, untuk menghindari kebocoran data dengan mengirimkan perubahan konten file melalui alert.

/var/ossec/etc/ossec.conf
<syscheck>
<directories check_all="yes" report_changes="yes"><FILEPATH_OF_MONITORED_DIRECTORY></directories>
<nodiff><FILEPATH_OF_MONITORED_DIRECTORY>/private.txt</nodiff>
</syscheck>
Contoh Konfigurasi - nodiff

Cek menggunakan semua konfigurasi FIM dan laporkan konten yang berubah pada direktori /var/www/html/, kecuali file wp-config.php.

/var/ossec/etc/ossec.conf
<syscheck>
<directories check_all="yes" report_changes="yes">/var/www/html/</directories>
<nodiff>/var/www/html/wp-config.php</nodiff>
</syscheck>

Adding exclusion​

Kita dapat menggunakan opsi ignore untuk mengabaikan suatu path untuk dimonitor.

/var/ossec/etc/ossec.conf
<syscheck>
<ignore><FILEPATH_OF_MONITORED_FILE></ignore>
<ignore type="sregex">.log$|.tmp$</ignore>
</syscheck>
Contoh Konfigurasi - ignore

Cek menggunakan semua konfigurasi FIM dan laporkan konten yang berubah pada direktori /var/www/html/, kecuali file wp-config.php.

/var/ossec/etc/ossec.conf
<syscheck>
<ignore>/path/to/your/laravel/storage/logs/*</ignore>
<ignore>/path/to/your/laravel/bootstrap/cache/*</ignore>
<ignore>/path/to/your/laravel/vendor/*</ignore>
<ignore>/path/to/your/laravel/.env</ignore>
<ignore>/path/to/your/laravel/public/mix-manifest.json</ignore>
<!-- Add more ignore paths as needed for your specific Laravel setup -->

<ignore type="sregex">.json$</ignore>
</syscheck>

Best Practice FIM Agent​

Wazuh agent : Linux

  1. Ubah pengaturan pada ossec.conf

    $ sudo su
    # nano /var/ossec/etc/ossec.conf
  2. Tambahkan kode berikut (highlighted)

    /var/ossec/etc/ossec.conf
       <!-- File integrity monitoring -->
    <syscheck>
    <!-- Directories to check (perform all possible verifications) -->
    <directories check_all="yes" report_changes="yes" realtime="yes">/home</directories>
    <directories check_all="yes" report_changes="yes" realtime="yes">/var/www/html</directories>
    <directories check_all="yes" report_changes="yes" realtime="yes">/etc/passwd</directories>
    </syscheck>
  3. Restart wazuh agent

    systemctl restart wazuh-agent

PoC FIM​

Wazuh agent

$ cd /home/kaito
$ touch exploit.c
$ echo β€œhello” >> exploit.c
$ cp exploit.c exploit2.c
$ rm exploit.c

Wazuh Dashboard | FIM

Proof of Concept (PoC) File Integrity Monitoring Wazuh


Sumber :

Jika informasi ini bermanfaat bagi Anda
saya sangat mengapresiasi jika ditraktir kopi β˜•
πŸ”»

buy me a coffee