Pemantauan integritas menjawab pertanyaan yang tidak dijawab antivirus maupun firewall: apa yang berubah di server ini sejak pekan lalu. Pemindai tanda tangan mencari hal-hal yang sudah dikenal buruk; AIDE tidak tahu apa-apa soal keburukan, ia tahu bahwa berkas ini kemarin berbeda. Untuk menemukan pintu belakang yang ditambahkan ke ujung berkas yang sudah ada, itulah satu-satunya pendekatan yang bekerja.
AIDE terpasang dalam dua perintah. Menyetelnya agar laporannya dibaca adalah bagian yang lebih sulit — dan itulah yang biasanya membunuhnya: laporan pertama datang dengan sepuluh ribu baris, yang kedua tidak ada yang membuka, dan sebulan kemudian tugasnya dihapus.
Pemasangan dan basis data pertama
sudo apt install aide aide-common
sudo aideinit
Inisialisasi memakan waktu dari beberapa menit sampai setengah jam: hash dihitung untuk setiap berkas. Hasilnya diletakkan di sebelah basis data kerja dengan akhiran .new, dan harus dijadikan yang aktif:
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Selanjutnya pemeriksaan dijalankan dengan:
sudo aide --check
Apa yang perlu dikecualikan agar laporannya terbaca
Pengaturannya ada di /etc/aide/aide.conf dan di direktori /etc/aide/aide.conf.d/. Konfigurasi standar Debian memeriksa terlalu banyak, dan hal pertama yang perlu dilakukan adalah membuang yang berubah sendiri terus-menerus:
/var/log— berubah tiap detik;- seluruh
/var/lib— basis data, status paket, status layanan; /var/cache,/tmp,/proc,/sys,/run;- direktori unggahan dan cache situs — isinya diubah oleh pengunjung.
Yang layak diperiksa dengan pengaturan paling ketat adalah daftar yang sempit:
/bin,/sbin,/usr/bin,/usr/sbin— berkas eksekusi sistem;/lib,/usr/lib— pustaka;/etc— konfigurasi;/root/.sshdan direktori.sshmilik pengguna Anda;- kode situs, tetapi tanpa direktori unggahan dan cache.
Tolok ukurnya: laporan harian yang normal harus muat dalam satu layar. Kalau lebih panjang berarti pengecualiannya belum cukup dan ia akan berhenti dibaca.
Di mana menyimpan basis data
Satu hal penting yang sering terlewat. Kalau orang lain punya root maka mengganti sebuah berkas lalu langsung memperbarui basis data AIDE tidak ada susahnya baginya — dan pemeriksaan sesudahnya akan melaporkan semuanya beres. Basis data yang ada di mesin yang sama dan bisa ditulisi hanya melindungi dari kecelakaan.
Minimum yang masuk akal untuk satu server:
- salin basis data ke mesin lain setelah setiap pembaruan, lalu jalankan pemeriksaan dengan salinan itu diletakkan kembali di tempatnya;
- atau setidaknya simpan checksum basis data secara terpisah dan cocokkan sebelum memeriksa:
sha256sum /var/lib/aide/aide.db
Bahkan tindakan sesederhana itu mengubah penggantian yang senyap menjadi peristiwa yang kentara.
Memperbarui basis data adalah tindakan yang disengaja
Setelah perubahan yang sah — pembaruan sistem, penggelaran versi baru situs — basis data dibangun ulang:
sudo aide --update
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
Kapan itu dilakukan sangat penting. Cara yang benar: baca laporannya, yakinkan diri bahwa setiap perubahan bisa dijelaskan, baru perbarui. Cara yang salah dan sangat umum: menjalankan aide --update terjadwal supaya laporannya keluar bersih. Pada kasus kedua sistem berjalan, laporan tetap datang, dan perubahan tercatat sebagai normal persis pada saat ia terjadi — artinya seluruh maknanya sudah hilang.
Jadwal dan beban
Paket aide-common memasang tugas harian dengan sendirinya. Pemeriksaannya membebani disk dan prosesor selama beberapa menit, jadi layak dijalankan pada jam yang sepi dan dengan prioritas yang diturunkan:
0 4 * * * ionice -c3 nice -n19 /usr/bin/aide --check
Cara membaca laporannya
Tiga bagian: berkas yang ditambahkan, dihapus dan diubah. Untuk setiap perubahan ia menunjukkan apa persisnya yang berbeda: isi, hak akses, pemilik, waktu.
Apa yang perlu ditanggapi lebih dulu:
- perubahan pada berkas mana pun di
/bin,/sbin,/usr/bindi luar jendela pembaruan; - berkas baru di direktori sistem;
- perubahan pada
authorized_keys,/etc/passwd,/etc/sudoers,/etc/crontabdan/etc/cron.d; - berkas
/etc/ld.so.preloadyang muncul — ia tidak pernah muncul dengan sendirinya.
Seratus berkas yang berubah persis setelah apt upgrade itu normal, dan cap waktu laporannya mengonfirmasi hal itu. Tiga berkas yang berubah di /usr/bin pada hari Rabu tanpa pembaruan apa pun adalah alasan untuk berhenti dan menelusurinya.
AIDE dan debsums
Kedua perkakas menyelesaikan persoalan yang bertetangga, tetapi acuan pembandingnya berbeda. AIDE membandingkan dengan snapshot Anda sendiri — sehingga ia melihat perubahan pada berkas apa pun, termasuk kode situs. debsums membandingkan dengan checksum di dalam paket distribusi — sehingga ia melihat berkas sistem yang diganti tanpa persiapan apa pun sebelumnya, tetapi tidak tahu apa-apa soal yang Anda pasang di luar paket. Menyimpan keduanya itu masuk akal; dalam praktiknya debsums biasanya dipasang lebih dulu, karena ia tidak memerlukan konfigurasi maupun basis data.
Keduanya juga berbagi satu kelemahan: laporannya datang lewat surat, dan surat itu hilang. Jadi yang penting bukan bahwa pemeriksaannya berjalan melainkan adanya tempat di mana hasil terakhirnya terlihat. Bagaimana tampilannya — lihat di halaman demo di bawah.