AIDE (Advanced Intrusion Detection Environment) adalah alat file integrity monitoring (FIM) open source yang membangun basis data kriptografis dari atribut dan hash file sistem Linux, lalu memverifikasinya secara berkala untuk mendeteksi perubahan tidak sah, termasuk rootkit yang memodifikasi biner sistem seperti /bin/ls atau /usr/sbin/sshd. Panduan ini membahas AIDE versi 0.18.7 (rilis Juni 2024, masih terbaru per September 2026) di Debian 12, Ubuntu 24.04 LTS, dan RHEL 9.4. Kita mulai dari instalasi, penyusunan aide.conf berlapis, automasi via systemd timer, hingga pemenuhan kontrol PCI-DSS 12.5.5 dan CIS Benchmark 4.1.4.
AIDE 0.18.7 adalah versi stabil terkini yang mendukung hash SHA-512, SHA-3, dan BLAKE2b, dengan opsi eksekusi paralel yang mempercepat scan pada sistem berkas besar hingga 3–4x lipat.
Basis data aide.dbharus disimpan di media read-only atau host terpisah. Menyimpannya di server yang sama tanpa proteksi membuka celah tampering yang menggagalkan seluruh model ancaman FIM.
Cron harian standar (/etc/cron.daily/aide) sudah cukup untuk kepatuhan PCI-DSS 12.5.5 dan CIS Benchmark 4.1.4, tetapi systemd timer memberi RandomizedDelaySec yang menyulitkan attacker memprediksi jadwal scan.
Kombinasi AIDE (baseline periodik), auditd (event real-time), dan immutable attribute (chattr +i) membentuk pertahanan berlapis untuk file kritis seperti /etc/passwd, /etc/shadow, dan modul kernel di /lib/modules.
Kesalahan konfigurasi paling umum adalah memasukkan direktori runtime (/var/log, /var/lib/mysql, /proc) tanpa filter yang tepat. Ini menghasilkan ribuan false positive setiap hari dan membuat tim keamanan mengabaikan laporan.
Apa itu AIDE dan bagaimana cara kerjanya?
AIDE adalah host-based intrusion detection tool yang bekerja dengan prinsip baseline comparison. Pada inisialisasi, AIDE membaca setiap file yang ditentukan pada aide.conf, menghitung serangkaian atribut kriptografis (permissions, uid/gid, inode, mtime, ctime, xattr, ACL, SELinux context, serta satu atau lebih hash kriptografis), lalu menyimpan snapshot itu ke basis data berformat compressed flat file. Pada scan berikutnya, AIDE menghitung ulang atribut dan membandingkan dengan baseline. Setiap perbedaan dilaporkan sebagai added, removed, atau changed.
Berbeda dengan IDS berbasis event seperti auditd yang menangkap syscall secara real-time, AIDE melakukan verifikasi periodik. Ini bukan kekurangan. Kedua pendekatan justru saling melengkapi. Auditd memberitahu siapa yang mengubah file dan kapan, sedangkan AIDE memberitahu apa yang berubah dibanding baseline tepercaya, bahkan jika attacker berhasil menonaktifkan atau memutar log auditd. Model ini terbukti krusial pada kasus CVE-2023-38408 (kerentanan ssh-agent), di mana teknik anti-forensik hanya bisa dideteksi oleh perbandingan baseline offline.
Jujur, saya sudah menggunakan AIDE sejak versi 0.14 di Debian 6. Versi 0.18.x membawa dukungan hash BLAKE2b yang jauh lebih cepat dari SHA-512 pada CPU tanpa akselerasi AES-NI, opsi num_workers untuk paralelisme, dan integrasi native dengan syslog RFC 5424. Untuk pembanding mandatory access control, ada baiknya baca juga panduan SELinux dan AppArmor untuk hardening Linux yang menyediakan lapisan pencegahan sebelum AIDE mendeteksi.
Instalasi AIDE di Ubuntu, Debian, dan RHEL
AIDE tersedia di semua repositori distribusi utama. Per September 2026, ini versi paket yang saya verifikasi:
Distribusi
Versi AIDE
Perintah Instalasi
Path Konfigurasi
Ubuntu 24.04 LTS
0.18.6
apt install aide aide-common
/etc/aide/aide.conf
Debian 12 Bookworm
0.18.3
apt install aide aide-common
/etc/aide/aide.conf
RHEL/AlmaLinux 9.4
0.16.2
dnf install aide
/etc/aide.conf
Fedora 40
0.18.7
dnf install aide
/etc/aide.conf
openSUSE Leap 15.6
0.18.6
zypper install aide
/etc/aide.conf
Jika Anda menjalankan RHEL 9 dan membutuhkan fitur BLAKE2b atau num_workers, kompilasi dari sumber di GitHub resmi diperlukan. RHEL masih membekukan versi 0.16.2 karena kebijakan ABI stability. Berikut langkah kompilasi ringkas:
# Kompilasi AIDE 0.18.7 dari sumber
sudo dnf install -y gcc make automake autoconf libgcrypt-devel \
libselinux-devel libacl-devel libcap-devel pcre2-devel \
audit-libs-devel curl-devel libnsl2-devel
curl -LO https://github.com/aide/aide/releases/download/v0.18.7/aide-0.18.7.tar.gz
tar xzf aide-0.18.7.tar.gz && cd aide-0.18.7
./configure \
--sysconfdir=/etc \
--with-selinux \
--with-xattr \
--with-posix-acl \
--with-audit \
--with-e2fsattrs \
--with-curl
make -j"$(nproc)"
sudo make install
Konfigurasi aide.conf: aturan, macro, dan direktori kritis
Berkas aide.conf adalah otak dari AIDE. Struktur dasarnya terdiri dari tiga bagian: configuration parameters (path database, algoritma hash, log verbosity), rule groups (kumpulan atribut yang akan dicek), dan selection lines (daftar direktori yang dipetakan ke rule group). Kesalahan konfigurasi pada bagian terakhir inilah yang menghasilkan mayoritas false positive di produksi.
Contoh konfigurasi produksi minimal yang saya gunakan pada Ubuntu 24.04 LTS:
Perhatikan penggunaan macro atribut. Kode singkat seperti p+i+n+u+g+s memetakan ke: permissions, inode, number of links, uid, gid, size. Menambahkan +sha512+blake2b menghitung dua hash kriptografis independen. Strategi hash algorithm diversity ini direkomendasikan RFC 6194 setelah kolisi SHA-1 dibuktikan (SHAttered attack, 2017). Untuk automasi kebijakan lebih luas, saya sarankan baca panduan Lynis untuk audit hardening dan CIS Benchmark yang menyediakan pemindaian konfigurasi otomatis yang saling melengkapi.
Prioritas direktori berdasarkan kernel security
Dari perspektif kernel security engineer, prioritas monitoring tidak sama untuk semua path. Ini urutan yang biasanya saya rekomendasikan:
Biner sistem: seluruh /bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin
Cron dan systemd: /etc/crontab, /etc/cron.d, /etc/cron.hourly, /etc/systemd/system, /lib/systemd/system
Aplikasi: /opt, /srv, deployment path kustom
Inisialisasi dan proteksi basis data AIDE
Setelah konfigurasi selesai, langkah selanjutnya adalah membuat baseline. Perintah aideinit (Debian/Ubuntu) atau aide --init (RHEL) menjalankan scan awal dan menyimpan basis data ke database_out. Pada server produksi dengan 500 GB filesystem, proses ini biasanya memakan waktu 8–25 menit, tergantung IOPS storage dan jumlah CPU core.
# Ubuntu/Debian
sudo aideinit --yes --force
# Output:
# Running aide --init...
# Start timestamp: 2026-09-15 08:12:33 +0000 (AIDE 0.18.6)
# AIDE initialized database at /var/lib/aide/aide.db.new
# Salin new -> live agar scan berikutnya bisa membandingkan
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db
sudo chmod 0400 /var/lib/aide/aide.db
Titik kritis yang sering diabaikan: basis data yang tersimpan di server yang sama dengan file yang dipantau adalah anti-pattern. Attacker yang mendapat root akan memodifikasi biner, kemudian menjalankan ulang aide --update untuk menulis baseline baru yang sudah tercemar. Ada tiga strategi mitigasi yang saya pakai bergantung skenario:
Media read-only fisik: mount CD-R, USB write-protected, atau block device dengan blockdev --setro. Kekurangannya, sulit di-update saat ada patch sistem yang sah.
Remote storage dengan pull model: server bastion menarik aide.db via SSH ke path /var/lib/aide/ hanya saat scan berjalan, lalu menghapusnya. Ini yang saya gunakan pada environment PCI-DSS.
Signed database + WORM storage: tanda-tangani aide.db dengan GPG, simpan di object storage dengan object lock (S3 Object Lock atau MinIO WORM). Verifikasi signature sebelum setiap scan.
# Contoh signing dan verifikasi dengan GPG
sudo gpg --detach-sign --armor \
--local-user aide@internal \
/var/lib/aide/aide.db
# Verifikasi sebelum scan (di dalam wrapper script)
if ! gpg --verify /var/lib/aide/aide.db.asc /var/lib/aide/aide.db; then
logger -p auth.crit "AIDE database signature verification FAILED"
exit 1
fi
Automasi scan dengan systemd timer
Paket Debian menyediakan /etc/cron.daily/aide otomatis, tetapi cron memiliki dua kelemahan yang relevan untuk security posture: jadwal deterministik (attacker tahu kapan scan berjalan) dan tidak ada dependency management. Systemd timer memecahkan keduanya. Konfigurasi berikut menjalankan AIDE setiap hari dengan random delay 30 menit:
sudo systemctl daemon-reload
sudo systemctl enable --now aide-check.timer
# Verifikasi jadwal berikutnya
systemctl list-timers aide-check.timer
# NEXT LEFT LAST PASSED UNIT
# Wed 2026-09-16 03:14:22 UTC 18h 42min Tue 2026-09-15 03:22:11 UTC 5h 17min aide-check.timer
# Log terakhir
journalctl -u aide-check.service --since "1 day ago" --no-pager
Perhatikan ProtectSystem=strict dan NoNewPrivileges=true. Ini adalah systemd hardening directives yang mengurangi blast radius jika biner aide memiliki vulnerability. Untuk pembahasan proses hardening yang lebih dalam, cek panduan auditd untuk forensik Linux dan kepatuhan yang menangani event stream real-time.
AIDE vs Tripwire vs Samhain: perbandingan
Pertanyaan yang sering muncul: mengapa memilih AIDE dibanding Tripwire (yang lebih dulu populer) atau Samhain (yang menawarkan client-server)? Berikut perbandingan objektif:
Fitur
AIDE 0.18
Tripwire Open Source 2.4
Samhain 4.5
Lisensi
GPLv2+
GPLv2
GPLv2
Maintenance aktif
Ya (2024)
Minim (2018 rilis terakhir)
Ya (2024)
Hash algorithm
SHA-512, SHA-3, BLAKE2b, RIPEMD
SHA-1, SHA-256, HAVAL
SHA-256, TIGER, WHIRLPOOL
SELinux/xattr support
Ya, native
Terbatas via patch
Ya
Arsitektur
Standalone
Standalone
Client-server terenkripsi
Learning curve
Menengah
Tinggi (policy language kompleks)
Tinggi
Ukuran database (1M file)
~180 MB
~240 MB
~200 MB
Kompatibilitas kepatuhan
PCI-DSS, HIPAA, CIS
PCI-DSS, HIPAA
PCI-DSS, HIPAA
Rekomendasi berdasarkan skenario: AIDE untuk mayoritas deployment (1–500 server) karena maintenance aktif dan konfigurasi yang lebih ringkas. Samhain jika Anda mengelola ratusan hingga ribuan endpoint dan membutuhkan pengumpulan hasil terpusat via yule server. Tripwire OSS hanya jika ada persyaratan legacy. Proyeknya sudah stagnan dan tidak menerima audit code baru sejak 2018.
Integrasi laporan AIDE dengan SIEM dan auditd
Laporan AIDE mentah adalah teks dengan struktur tabular sederhana. Untuk deteksi anomali yang bermanfaat, laporan harus mengalir ke SIEM dengan format terstruktur. Saya menggunakan skrip wrapper yang mengubah output AIDE menjadi CEF (Common Event Format) atau JSON, lalu mengirimnya ke syslog. Contoh implementasi:
#!/bin/bash
# /usr/local/sbin/aide-report-handler
# Post-processor yang dijalankan systemd setelah aide-check.service
set -euo pipefail
LOG_FILE="/var/log/aide/aide.log"
STATE_FILE="/var/lib/aide/last-hash"
HOST="$(hostname -f)"
# Deteksi apakah ada perubahan
if grep -q "AIDE found differences" "$LOG_FILE"; then
# Hitung jumlah per kategori
ADDED=$(grep -c "^added:" "$LOG_FILE" || true)
REMOVED=$(grep -c "^removed:" "$LOG_FILE" || true)
CHANGED=$(grep -c "^changed:" "$LOG_FILE" || true)
# Kirim ke syslog dalam format CEF untuk konsumsi SIEM
logger -p auth.warning -t aide \
"CEF:0|LinuxSecureOps|AIDE|0.18.6|100|File Integrity Changes|7|dhost=${HOST} cs1Label=added cs1=${ADDED} cs2Label=removed cs2=${REMOVED} cs3Label=changed cs3=${CHANGED}"
# Trigger alert real-time jika path kritis berubah
if grep -Eq "^(added|changed): /etc/(passwd|shadow|sudoers|ssh/sshd_config)" "$LOG_FILE"; then
logger -p auth.crit -t aide \
"CEF:0|LinuxSecureOps|AIDE|0.18.6|101|Critical File Modified|10|dhost=${HOST}"
fi
fi
Kolaborasi dengan auditd memberikan konteks temporal. Ketika AIDE melaporkan /etc/sudoers berubah, query auditd untuk mencari syscall openat/write pada file tersebut sejak baseline terakhir. Wazuh, Splunk, dan Elastic Security semuanya memiliki decoder AIDE bawaan yang mengkorelasi otomatis kedua sumber ini. Untuk pipeline SIEM Wazuh lebih spesifik, saya sarankan baca panduan Wazuh SIEM dan HIDS open source untuk Linux.
Contoh query korelasi
# Cari siapa yang menyentuh /etc/shadow sejak scan AIDE terakhir
LAST_SCAN=$(stat -c %Y /var/lib/aide/aide.db)
ausearch --start "$(date -d @${LAST_SCAN} '+%m/%d/%Y %H:%M:%S')" \
-f /etc/shadow \
--just-one \
| aureport --file --summary
Kepatuhan PCI-DSS, HIPAA, dan CIS Benchmark
File integrity monitoring adalah kontrol wajib di sebagian besar framework kepatuhan. AIDE memenuhi persyaratan berikut secara langsung:
PCI-DSS v4.0 kontrol 11.5.2: change-detection mechanism harus mendeteksi modifikasi tak sah pada file kritis mingguan minimum. AIDE dengan systemd timer harian melebihi ambang batas ini.
PCI-DSS 12.5.5: personel wajib mengevaluasi peringatan. Pastikan laporan AIDE terkirim ke SIEM yang di-monitor SOC.
HIPAA Security Rule §164.312(c)(1): integrity controls untuk PHI. AIDE mencakup file konfigurasi database, biner aplikasi, dan filesystem yang menampung PHI.
CIS Benchmark Ubuntu 24.04 kontrol 4.1.4.1: memastikan AIDE terinstal. Kontrol 4.1.4.2: memastikan filesystem integrity check terjadwal.
NIST SP 800-53 SI-7: software, firmware, and information integrity.
Untuk membuktikan kepatuhan saat audit, dokumentasi berikut biasanya diminta auditor:
Salinan aide.conf beserta rasional pemilihan atribut per rule group
Dari pengalaman shipping AIDE ke beberapa environment berskala menengah, tiga masalah paling sering muncul (dan bikin pusing kalau tidak diantisipasi):
False positive pada file yang di-rotate
Log rotate dan cache database berubah sesuai desain. Solusinya, gunakan Logs rule group yang hanya memantau atribut structural (permissions, ownership) tanpa hash isi, atau eksklusi total dengan prefix !. Jangan menggunakan rule Binlib pada /var/log.
Kegagalan pada systemd private tmp
Pada RHEL 9 dengan PrivateTmp=true, AIDE tidak bisa mengakses /tmp host. Ini fitur, bukan bug. Tetapi Anda perlu memastikan /tmp dieksklusi di aide.conf. Jika benar-benar butuh monitoring /tmp, jalankan tanpa PrivateTmp.
Scan terlalu lambat
Pada sistem 2 TB dengan HDD, saya pernah melihat scan menghabiskan 4 jam. Optimisasi yang efektif:
# Aktifkan paralelisme (AIDE 0.17+)
echo "num_workers=4" | sudo tee -a /etc/aide/aide.conf
# Gunakan hash tunggal (BLAKE2b) alih-alih SHA-512+BLAKE2b
# Trade-off: kecepatan vs defense-in-depth
# Prioritaskan direktori kritis dengan scan lebih sering
# via unit systemd terpisah dengan OnCalendar hourly
Update baseline setelah patch sistem
Setelah apt upgrade atau dnf update, ribuan biner berubah karena patch keamanan yang sah. Alur yang benar:
Jalankan aide --check untuk melihat perubahan
Verifikasi manual bahwa semua perubahan sesuai daftar paket yang di-upgrade (bandingkan dengan /var/log/apt/history.log)
Jalankan aide --update untuk membuat aide.db.new baru
Verifikasi signature pada database baru
Ganti aide.db live dengan versi baru, terapkan immutable bit
Automasi langkah 2 dengan skrip yang membandingkan daftar path yang berubah versus dpkg-query -L atau rpm -ql untuk paket-paket yang di-upgrade. Ini menghindari kesalahan "blind update" yang sering menjadi celah bagi supply chain attack.
Pertanyaan yang sering diajukan
Apa itu AIDE di Linux?
AIDE (Advanced Intrusion Detection Environment) adalah program file integrity checker open source untuk Linux yang membuat basis data hash kriptografis dari file sistem, kemudian membandingkannya secara berkala untuk mendeteksi perubahan tidak sah. AIDE mencakup pemeriksaan permissions, hash SHA-512/BLAKE2b, xattr, dan konteks SELinux. AIDE adalah penerus spiritual dari Tripwire dengan lisensi GPLv2+ dan pemeliharaan aktif.
Apa perbedaan antara AIDE dan Tripwire?
Perbedaan utamanya: AIDE menggunakan format konfigurasi yang lebih sederhana dan mendukung hash modern (BLAKE2b, SHA-3), sementara Tripwire OSS menggunakan policy language kompleks dan hash lama (SHA-1, HAVAL). AIDE aktif dikembangkan (rilis 0.18.7 pada Juni 2024), sedangkan Tripwire Open Source belum menerima rilis mayor sejak 2018. Untuk deployment baru, AIDE hampir selalu pilihan yang lebih baik.
Apakah AIDE masih aktif dipelihara di 2026?
Ya. Versi stabil terbaru AIDE adalah 0.18.7 (Juni 2024), dan proyek dikelola di GitHub dengan CVE tracking aktif. Repositori resmi menerima pull request rutin dan tim maintainer merespon issue dalam hitungan hari untuk masalah keamanan. Ubuntu 24.04, Fedora 40, dan openSUSE Leap 15.6 semuanya membekukan versi 0.18.x sebagai default.
Bagaimana cara mengotomasi pemeriksaan AIDE?
Opsi terbaik adalah systemd timer dengan OnCalendar=daily dan RandomizedDelaySec=30m untuk menghindari jadwal deterministik. Alternatifnya, paket Debian/Ubuntu menyediakan /etc/cron.daily/aide otomatis. Untuk kepatuhan PCI-DSS 11.5.2, frekuensi minimum adalah mingguan, tetapi harian sangat direkomendasikan agar deteksi lebih cepat.
Bagaimana AIDE mendeteksi perubahan file?
AIDE menghitung snapshot atribut kriptografis (permissions, uid/gid, inode, size, hash SHA-512/BLAKE2b, xattr, SELinux context) dari setiap file yang ter-monitor dan menyimpannya ke basis data pada inisialisasi. Setiap scan berikutnya menghitung ulang atribut untuk file yang sama dan melaporkan perbedaan sebagai added, removed, atau changed. Model ini offline, artinya AIDE tidak menghook syscall real-time seperti auditd.
Di mana saya harus menyimpan basis data AIDE?
Jangan simpan aide.db di server yang sama tanpa proteksi tambahan, karena attacker root bisa menulis ulang. Strategi yang direkomendasikan: media read-only fisik, remote storage yang di-pull hanya saat scan (via SSH dari bastion), atau object storage dengan WORM/Object Lock. Selalu tanda-tangani database dengan GPG dan verifikasi signature sebelum setiap scan.
Wazuh 4.10 adalah platform SIEM dan HIDS open source untuk Linux. Panduan ini mencakup instalasi, konfigurasi rule, FIM, deteksi CVE, integrasi MITRE ATT&CK, dan hardening produksi.
Panduan lengkap Cosign dan Sigstore untuk menandatangani container image tanpa mengelola kunci, plus SBOM attestation dan enforcement Kubernetes di 2026.
Panduan lengkap Falco 0.39 untuk runtime security container Linux dan Kubernetes 2026. Meliputi instalasi Ubuntu/RHEL, aturan YAML kustom, deploy Helm chart, dan integrasi Falcosidekick.