Mempelajari hipotesis-driven hunting, IOCs vs baselines, hunt hypothesis development, dan menjalankan threat hunting exercise yang realistis

Setelah di episode 7 kita mempelajari EDR/XDR dan hunting on endpoint, pada episode ini kita dalami threat hunting secara menyeluruh — disiplin proaktif mencari ancaman yang belum terdeteksi oleh rules otomatis. Threat hunting adalah transformasi dari "menunggu alert" menjadi "mencari attacker".
Mengapa threat hunting penting? Karena setiap organisasi sudah terkompromasi — pertanyaannya bukan "apakah" tapi "kapan" dan "di mana". Rules otomatis menangkap serangan yang sudah dikenal; threat hunting menangkap yang belum dikenal.
| Level | Karakteristik |
|---|---|
| L0 | Tidak ada hunting — hanya menunggu alert |
| L1 | Hunting ad-hoc — sesekali tanpa prosedur |
| L2 | Hunting terstruktur — hipotesis, prosedur, dokumentasi |
| L3 | Hunting data-driven — analytics, machine learning |
| L4 | Hunting otomatis — AI-assisted, continuous |
Threat hunting dimulai dari hipotesis — dugaan yang bisa diuji dengan data.
| Hipotesis | Data yang Dibutuhkan |
|---|---|
| "Attacker menggunakan DNS untuk C2" | DNS query logs, anomali query pattern |
| "Ada lateral movement via RDP" | Windows Event 4624 (Type 10), network flows |
| "Malware persistence via scheduled task" | Event ID 4698, task creation logs |
| "Data exfiltration via DNS tunneling" | DNS query length, volume analysis |
IOC adalah artefak spesifik dari serangan: IP addresses, file hashes, domain names, URL patterns.
| Tipe IOC | Contoh | Kekuatan |
|---|---|---|
| Network IOC | IP 192.168.1.100 | Spesifik, mudah dideteksi |
| Host IOC | Hash abc123... | Identifikasi malware spesifik |
| Behavioral IOC | PowerShell encoded execution | Deteksi teknik, bukan sample |
Baseline adalah pemahaman tentang apa yang normal di environment kalian. Tanpa baseline, anomali tidak terlihat.
# Baseline: proses normal di server web
ps aux | sort -k3 -rn | head -20
# Baseline: koneksi normal
ss -tlnp | awk '{print $4}' | sort
# Baseline: login hours
last -F | awk '{print $4, $5, $6}' | sort | uniq -cTip
Baseline harus dibuat sebelum hunting. Jika kalian tidak tahu apa yang normal, semua akan terlihat mencurigakan — atau sebaliknya, semua akan terlihat normal. Investasikan waktu untuk memahami environment kalian.
Hipotesis: "Ada attacker yang bergerak lateral menggunakan RDP dari workstation ke server."
Data yang dibutuhkan:
Query hunting:
DeviceLogonEvents
| where Timestamp > ago(7d)
| where LogonType == "Network" and RemoteIPType == "Public"
| where AccountName != "SYSTEM"
| summarize RDPCount = count() by DeviceName, AccountName, RemoteIP
| where RDPCount > 3
| sort by RDPCount descEvaluasi temuan:
| Kategori | Tindakan |
|---|---|
| True Positive | Escalate ke IR, buat detection rule |
| False Positive | Dokumentasi, tuning rules |
| Benign Anomaly | Tambah ke baseline, monitor |
| Insufficient Data | Kumpulkan data lebih banyak |
Note
Tidak semua hunting menghasilkan temuan — dan itu normal. Tujuan hunting bukan selalu menemukan attacker, tapi membangun kepercayaan bahwa environment kalian bersih atau memahami di mana gap visibility berada.
Inti yang harus dibawa pulang:
Di episode 9 selanjutnya kita akan membahas malware analysis dasar — triage sampel, sandbox analysis, dan static analysis. Ketika hunting menemukan file mencurigakan, malware analysis memberitahu kita apa yang dilakukannya.