Analisis & Mitigasi: Malware Mirai / Kaiten / Gafgyt — Deteksi, Forensik, dan Pencegahan

Analisis & Mitigasi: Malware Mirai / Kaiten / Gafgyt — Deteksi, Forensik, dan Pencegahan

Malware berbasis Linux seperti Mirai, Kaiten, dan Gafgyt telah menjadi ancaman besar untuk server yang tidak terproteksi—terutama perangkat IoT, router, dan server Linux yang masih menjalankan layanan dengan kredensial lemah. Artikel ini membahas secara mendalam bagaimana malware ini bekerja, bagaimana mendeteksinya, langkah forensik yang bisa dilakukan, serta strategi pencegahan dan hardening untuk memulihkan dan mengamankan server Ubuntu Anda.

Daftar Isi
  1. Gambaran singkat Mirai / Kaiten / Gafgyt
  2. Indikator Kompromi (IoC)
  3. Langkah cepat deteksi
  4. Forensik & pengumpulan bukti
  5. Pembersihan dan opsi pemulihan
  6. Hardening & pencegahan (focus pada /tmp, SSH, dan network)
  7. Kesimpulan & rekomendasi praktis

1. Gambaran singkat — bagaimana Mirai, Kaiten, dan Gafgyt bekerja

Secara ringkas, ketiga keluarga malware ini memiliki pola operasi serupa meski berbeda kode dan modul:

  • Mirai: memindai port umum (23/2323 untuk Telnet, 22 untuk SSH), mencoba kombinasi username/password umum pada perangkat IoT; setelah kompromi, perangkat menjadi bagian botnet untuk melancarkan serangan DDoS.
  • Kaiten: sering berbasis IRC untuk menerima perintah; memanfaatkan eksploit dan brute-force untuk menginfeksi host Linux.
  • Gafgyt (juga dikenal sebagai BASHLITE): memanfaatkan berbagai vektor (brute-force, default creds) dan menanamkan loader yang persist pada sistem.

2. Indikator Kompromi (IoC) yang perlu diwaspadai

Beberapa IoC umum saat server terinfeksi malware jenis ini:

  • Proses aneh bernama acak atau menyamar (mis. `.X11-unix`, `kthreadd` palsu) berjalan di `/tmp` atau `/dev/shm`.
  • Koneksi keluar ke IP/port yang tidak dikenal atau banyak koneksi keluar sekaligus (scan activity).
  • SSH login failed/accepted berulang dari IP yang sama; user baru muncul tanpa izin.
  • File executable baru di `/tmp`, `/var/tmp`, atau `/dev/shm` dengan permission exec.
  • Cron job tak dikenal atau entry di `/etc/rc.local`, systemd unit baru yang memulai backdoor.
  • Peningkatan penggunaan CPU/ram tanpa alasan, trafik jaringan abnormal.

3. Langkah cepat deteksi — perintah yang harus dijalankan segera

Jalankan perintah-perintah berikut (salin & tempel di terminal, jalankan sebagai root atau sudo):

# proses & resource
ps auxf | head -n 60
top -b -n1 | head -n 30

# koneksi jaringan
ss -tulwnp
lsof -i -n -P | head -n 80

# cek /tmp, /dev/shm, var/tmp
ls -alh /tmp | head -n 40
ls -alh /dev/shm | head -n 40
ls -alh /var/tmp | head -n 40

# log auth & sys
grep -i "failed password" /var/log/auth.log | tail -n 50
grep -i "accepted password" /var/log/auth.log | tail -n 50

# cari file executable baru
find /tmp /dev/shm /var/tmp -type f -executable -mtime -7 -ls

4. Forensik & pengumpulan bukti

Sebelum menghapus apa pun (jika memungkinkan), lakukan snapshot dan kumpulkan bukti:

  1. Backup log & metadata:
    mkdir -p /root/incident-logs
    cp -a /var/log /root/incident-logs/
    cp /etc/passwd /etc/shadow /etc/ssh/sshd_config /root/incident-logs/
  2. Ambil daftar proses dan koneksi:
    ps auxf > /root/incident-logs/ps_auxf.txt
    ss -tunap > /root/incident-logs/ss.txt
  3. Hash file mencurigakan:
    sha256sum /tmp/suspicious_binary > /root/incident-logs/hashes.txt
  4. Capture memory (opsional dan kompleks) jika tersedia tools (volatility, liME) — untuk analis forensik tingkat lanjut.

5. Pembersihan & opsi pemulihan

Ada dua pendekatan bergantung pada tingkat kerusakan:

Opsi A — Rekomendasi terbaik: Reinstall bersih (clean rebuild)

Jika ada indikasi persistent backdoor, rootkit, atau akses kredensial bocor → lakukan instalasi ulang OS. Sebelum itu, dump data penting (database, konfigurasi aplikasi) setelah discan untuk memastikan tidak ikut mengambil binary berbahaya.

Opsi B — Pembersihan jika reinstall tidak mungkin segera

  • Stop proses mencurigakan, hapus file di `/tmp`, `/dev/shm`, `/var/tmp` setelah didokumentasikan.
  • Hapus cron tak dikenal, unit systemd tak dikenal, dan akun user mencurigakan.
  • Reinstall paket inti dan openssh: sudo apt install --reinstall openssh-server bash coreutils.
  • Reset semua password, revoke kunci SSH, implement key-based auth.

6. Hardening & pencegahan — fokus praktis

Langkah-langkah praktis untuk mengurangi risiko reinfeksi:

A. Lindungi /tmp, /var/tmp, /dev/shm

Gunakan mount options noexec,nosuid,nodev. Tambahkan ke /etc/fstab:

tmpfs /tmp tmpfs defaults,noexec,nosuid,nodev 0 0
tmpfs /dev/shm tmpfs defaults,noexec,nosuid,nodev 0 0
tmpfs /var/tmp tmpfs defaults,noexec,nosuid,nodev 0 0

B. Amankan SSH

  • Nonaktifkan PermitRootLogin dan PasswordAuthentication di /etc/ssh/sshd_config.
  • Gunakan key-based auth, batasi user yang boleh SSH, ubah port jika perlu.
  • Instal fail2ban atau crowdsec untuk memblokir bruteforce otomatis.

C. Network & Firewall

Gunakan ufw atau iptables untuk membatasi akses keluar/in sesuai kebutuhan aplikasi. Ketatkan egress policy untuk mencegah bot melakukan komunikasi C2.

D. Monitoring & IDS

Pasang monitoring log (ELK/Graylog), auditd, dan IDS/agent seperti OSSEC atau CrowdSec untuk alert otomatis.

7. Studi Kasus singkat (narasi)

Contoh singkat: pada sebuah server Ubuntu 14.04, admin menemukan beban CPU tinggi dan direktori /tmp berisi file .X11-unix yang dieksekusi oleh proses anak — setelah penelusuran, binary tersebut memiliki hash yang cocok dengan sample Mirai. Langkah yang diambil: isolasi jaringan, ambil bukti (ps, ss, logs), lalu snapshot filesystem. Karena rootkit terdeteksi, tim melakukan reinstall dan restore dari backup bersih 3 hari sebelum kejadian. Setelah restore, seluruh password direset, SSH di-hardening, dan aturan noexec di /tmp diterapkan. Hasil: tidak ada reinfeksi setelah 30 hari pemantauan intensif.

8. Checklist cepat — Apa yang harus dilakukan saat menemukan infeksi

  1. Isolasi server dari jaringan publik (putus atau atur firewall).
  2. Ambil bukti: logs, proses, koneksi, hashes.
  3. Identifikasi IoC dan scope kompromi (apakah ada lateral movement?).
  4. Putuskan strategi pemulihan (reinstall vs pembersihan).
  5. Reset credentials & revoke keys.
  6. Hardening: /tmp noexec, SSH key-only, firewall, IDS.
  7. Monitoring berkelanjutan & audit berkala.

Kesimpulan

Malware seperti Mirai/Kaiten/Gafgyt mengeksploitasi kelemahan operasional (default creds, service ekspos, /tmp dieksekusi) lebih daripada kelemahan kompleks. Pencegahan efektif adalah kombinasi kebijakan akses (credential hygiene), kontrol eksekusi pada direktori sementara (noexec), dan sistem monitoring yang memadai. Jika kompromi sudah terjadi, dokumentasikan semuanya lalu pilih opsi pemulihan yang paling aman—seringkali itu berarti *reinstall bersih*.

Catatan penting: tindakan pembersihan manual bisa berisiko jika ada rootkit yang menyembunyikan bukti. Untuk insiden serius, libatkan tim forensik yang berpengalaman.
Ingin saya buatkan skrip otomatis hardening /tmp + konfigurasi fail2ban yang bisa langsung dijalankan di Ubuntu Anda? Balas saja "skrip hardening" — saya akan sediakan file shell lengkap siap pakai.

Disclaimer: Panduan ini bersifat teknis. Petunjuk yang melibatkan perubahan sistem harus dilakukan oleh orang yang mengerti resiko; backup lengkap disarankan sebelum melakukan perubahan.