Cara Cek Rootkit di VPS dengan rkhunter dan chkrootkit
Perbandingan rkhunter dan chkrootkit untuk mendeteksi rootkit di VPS Linux, cara memasang, menjalankan, membaca peringatan, dan memilah false positive.
Jawaban singkat
Pasang rkhunter dan chkrootkit dari repositori distro, buat baseline rkhunter dengan rkhunter --propupd saat server masih bersih, lalu jalankan rkhunter --check --sk dan chkrootkit secara berkala. Peringatan perlu diperiksa manual karena keduanya cukup sering memberi false positive.
Daftar isi
Rootkit adalah program jahat yang dirancang untuk bersembunyi setelah penyerang berhasil masuk ke server. Ia bisa mengganti perintah sistem seperti ps, ls, atau netstat dengan versi palsu, sehingga proses dan file milik penyerang tidak terlihat saat kamu memeriksanya. Dua alat klasik untuk mendeteksinya di Linux adalah rkhunter (Rootkit Hunter) dan chkrootkit.
Taruhannya cukup besar. Kalau rootkit tidak terdeteksi, penyerang bisa bertahan berbulan-bulan di VPS-mu, memakai sumber dayanya, dan mengintip data pelanggan. Sebaliknya, kalau kamu panik karena peringatan yang ternyata false positive, kamu bisa membuang waktu atau bahkan menginstal ulang server tanpa perlu.
Apa bedanya rkhunter dan chkrootkit?
Cara kerja rkhunter
rkhunter membandingkan kondisi sistem dengan baseline yang kamu buat sendiri. Ia mencatat hash dan properti file sistem penting, lalu memberi peringatan bila ada yang berubah. Selain itu, rkhunter memeriksa tanda rootkit yang dikenal, file dan folder tersembunyi yang mencurigakan, port backdoor, serta beberapa pengaturan seperti izin login root lewat SSH.
Cara kerja chkrootkit
chkrootkit tidak butuh baseline. Ia mencari tanda-tanda rootkit yang sudah dikenal dengan memeriksa biner sistem, berkas log seperti wtmp dan lastlog, antarmuka jaringan yang berada dalam mode promiscuous (tanda adanya sniffer), serta modul kernel yang mencurigakan. Karena tanpa baseline, ia bisa langsung dipakai pada server yang sudah lama berjalan.
| rkhunter | chkrootkit | |
|---|---|---|
| Pendekatan | Baseline file + tanda rootkit dikenal | Tanda rootkit dikenal, tanpa baseline |
| Persiapan | Wajib --propupd saat sistem bersih | Langsung jalan |
| Cek perubahan file sistem | Ya, berdasarkan hash | Tidak |
| Cek pengaturan keamanan (misalnya SSH root) | Ya | Tidak |
| Deteksi sniffer di antarmuka jaringan | Terbatas | Ya |
| Log | /var/log/rkhunter.log | Keluaran layar (bisa diarahkan ke file) |
| Kecenderungan false positive | Muncul setelah update paket bila baseline tidak diperbarui | Muncul pada nama file atau proses yang mirip pola rootkit |
Bagaimana memasang dan menjalankan keduanya?
Di Ubuntu atau Debian, keduanya tersedia di repositori resmi:
sudo apt update
sudo apt install rkhunter chkrootkit
Menyiapkan rkhunter
Di paket Ubuntu dan Debian, pembaruan data online rkhunter dimatikan secara bawaan. Kalau ingin mengaktifkannya, ubah tiga baris ini di /etc/rkhunter.conf:
UPDATE_MIRRORS=1
MIRRORS_MODE=0
WEB_CMD=""
Lalu jalankan pembaruan dan buat baseline:
sudo rkhunter --update
sudo rkhunter --propupd
Langkah --propupd ini yang paling penting. Jalankan hanya saat kamu yakin sistem masih bersih, idealnya sesaat setelah server baru selesai dipasang. Baseline yang dibuat di server yang sudah terinfeksi justru akan menganggap file jahat sebagai normal.
Untuk menjalankan pemeriksaan:
sudo rkhunter --check --sk
Opsi --sk (skip keypress) membuat pemeriksaan berjalan tanpa berhenti menunggu Enter. Tambahkan --rwo (report warnings only) bila hanya ingin melihat peringatan. Rincian setiap peringatan ada di /var/log/rkhunter.log.
Supaya baseline tidak usang setelah update paket, isi APT_AUTOGEN="true" di /etc/default/rkhunter. Dengan begitu --propupd dijalankan otomatis setiap kali apt selesai memasang atau memperbarui paket.
Menjalankan chkrootkit
sudo chkrootkit
Atau versi ringkas yang hanya menampilkan temuan:
sudo chkrootkit -q
Perhatikan baris yang bertuliskan INFECTED atau Warning. Baris not infected dan nothing found berarti pemeriksaan itu bersih.
Bagaimana memilah peringatan dan false positive?
Peringatan bukan vonis. Beberapa pola yang umum muncul padahal tidak berbahaya:
- rkhunter melaporkan file sistem berubah tepat setelah kamu menjalankan
apt upgrade. Penyebabnya baseline belum diperbarui. Cek riwayat paket di/var/log/apt/history.log, dan bila waktunya cocok, jalankansudo rkhunter --propupd. - rkhunter memperingatkan login root SSH diizinkan. Ini sebenarnya temuan konfigurasi, bukan rootkit, dan layak diperbaiki.
- File atau folder tersembunyi milik aplikasi yang sah, misalnya di
/etcatau/dev. Cek paket pemiliknya dengandpkg -S /path/file. - chkrootkit menandai antarmuka jaringan sebagai sniffer padahal ada program sah yang membaca paket mentah, misalnya klien DHCP atau alat pemantau jaringan.
Untuk memastikan sebuah biner sistem masih asli, bandingkan dengan checksum paket resminya:
sudo apt install debsums
sudo debsums -s
Perintah debsums -s hanya menampilkan file paket yang isinya tidak cocok dengan checksum aslinya. Kalau perintah inti seperti ls, ps, atau sshd muncul di sini tanpa alasan yang jelas, itu tanda serius. Petunjuk lain bisa dicari di log sistem; panduannya ada di lokasi log penting di Linux.
Kapan memakai rkhunter, kapan chkrootkit?
Pakai rkhunter sebagai pemeriksa utama di server yang kamu kelola sejak awal. Baseline-nya membuat perubahan sekecil apa pun pada file sistem terlihat, dan pemeriksaan konfigurasinya memberi masukan pengamanan sekaligus. Ini cocok untuk VPS baru yang baru selesai di-setup.
Pakai chkrootkit sebagai pendapat kedua, atau sebagai pemeriksaan cepat di server yang baru kamu ambil alih dan tidak jelas riwayatnya. Karena tidak bergantung pada baseline, hasilnya tidak terpengaruh kondisi server saat alat itu dipasang.
Paling ideal, jalankan keduanya terjadwal lewat cron, misalnya seminggu sekali, dan kirim hasilnya ke email admin. Lengkapi dengan scan malware level file memakai ClamAV dan maldet, serta audit konfigurasi menyeluruh dengan Lynis.
Perlu dicatat, keduanya alat lama. Rilis terakhir rkhunter adalah versi 1.4.6, dan basis tanda tangan kedua alat ini tidak mengikuti setiap rootkit baru. Anggap keduanya sebagai jaring pengaman tambahan, bukan satu-satunya pertahanan.
Pertanyaan yang sering diajukan
Apakah rkhunter dan chkrootkit bisa dipakai bersamaan?
Bisa dan malah dianjurkan. Pendekatannya berbeda, jadi temuan yang luput dari satu alat bisa tertangkap oleh alat lainnya.
Apakah perlu menjalankan rkhunter --propupd setelah setiap update?
Ya, setelah kamu memastikan perubahan itu berasal dari update resmi. Cara praktisnya, aktifkan APT_AUTOGEN di /etc/default/rkhunter agar baseline diperbarui otomatis setelah apt.
Apakah alat ini bisa mendeteksi rootkit di dalam container Docker?
Keduanya memeriksa sistem host. Rootkit yang menyerang kernel tetap berdampak ke host, tetapi file jahat di dalam image container lebih tepat diperiksa dengan scanner image container.
Bisakah rootkit memalsukan hasil pemeriksaan?
Bisa, terutama rootkit level kernel. Untuk kepastian yang lebih tinggi, periksa disk dari sistem lain, misalnya lewat mode rescue penyedia VPS, sehingga program yang dipakai bukan milik sistem yang dicurigai.


