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:
-
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. -
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. -
Deteksi Perubahan
Setiap ada perubahan pada file, agen Wazuh langsung:- Menghitung hash terbaru,
- Mengumpulkan metadata terbaru,
- Mengirimkan informasi tersebut ke server Wazuh.
-
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
- contoh :
FILEPATH_OF_MONITORED_DIRECTORY
: lokasi direktori/ folder yang dimonitor.- contoh :
- /var/www/html/
- /home/user/
- **
- contoh :
Rekomendasi direktori dan file untuk dimonitor
Pengaturan Dasar FIMβ
Real-time Monitoringβ
Real-time memungkinkan pemantauan secara real-time/ berkelanjutan terhadap direktori pada endpoint Windows dan Linux saja.
<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.
Attribute | Default values | Allowed values | Description |
---|---|---|---|
check_all | yes | yes, no | Records 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 |
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 :
<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.
Modul FIM menjalankan pemindaian setiap 12 jam (43200 detik) secara default.
Mengubah jadwal pemindaian setiap 900 detik (15 menit).
<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.
Attribute | Default values | Allowed values | Description |
---|---|---|---|
scan_day | n/a | Day of the week. | Day of the week to run the scans, one entry per line. ex: thrusday |
scan_time | n/a | Time of day. | Time to runs the scans. ex: 9pm or 8:30 |
Mengubah jadwal pemindaian setiap jam 10 malam di hari Sabtu.
<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.
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\
Cek menggunakan semua konfigurasi FIM dan laporkan konten yang berubah pada direktori /var/www/html/
<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.
<syscheck>
<directories check_all="yes" report_changes="yes"><FILEPATH_OF_MONITORED_DIRECTORY></directories>
<nodiff><FILEPATH_OF_MONITORED_DIRECTORY>/private.txt</nodiff>
</syscheck>
Cek menggunakan semua konfigurasi FIM dan laporkan konten yang berubah pada direktori /var/www/html/
, kecuali file wp-config.php
.
<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.
<syscheck>
<ignore><FILEPATH_OF_MONITORED_FILE></ignore>
<ignore type="sregex">.log$|.tmp$</ignore>
</syscheck>
Cek menggunakan semua konfigurasi FIM dan laporkan konten yang berubah pada direktori /var/www/html/
, kecuali file wp-config.php
.
<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
-
Ubah pengaturan pada
ossec.conf
$ sudo su
# nano /var/ossec/etc/ossec.conf -
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> -
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
Sumber :
- Wazuh Documentation - File Integrity
- Top 9 file integrity monitoring (FIM) best practices
- Microsoft Ignite - File integrity monitoring
- Wazuh Documentation - syscheck