Keamanan Siber

Normalisasi Format Log: Kunci Efisiensi Deteksi Ancaman di Era Multi-Sumber Data

Ringkasan

  • Pengembang TriageLens berbagi pengalaman membangun alat triage SOC yang menormalkan empat format log heterogen ke satu struktur kanonik, membebaskan aturan deteksi dari kompleksitas per-format dan mempercepat pengembangan serta pengujian.

Pengembangan alat triage Security Operations Center (SOC) modern menghadapi tantangan fundamental yang sering terlewatkan: heterogenitas format log. TriageLens, proyek open-source yang dikembangkan oleh pengembang dengan nama samaran TiltedLunar123, mengungkap bagaimana normalisasi empat format log yang berbeda — Windows Security Event 4688, Sysmon Event ID 1, Linux SSH auth.log, dan JSON generik — menjadi fondasi arsitektur yang skalabel untuk deteksi ancaman berbasis aturan.

Masalah inti muncul ketika aturan deteksi harus mengakses data mentah dari berbagai sumber. Sebuah kejadian "proses dimulai" tereksistensi dalam tiga dari empat format tersebut, namun representasinya bervariasi drastis. Windows Security 4688 menyimpan nama proses baru dan proses pembuat dalam field terstruktur, sementara Sysmon Event ID 1 menempatkan field serupa di lokasi berbeda dengan nama yang tidak sama, sekaligus menyediakan command line dan hash yang tidak tersedia di Windows Security. Di sisi lain, auth.log Linux tidak memiliki event ID sama sekali — hanya teks polos seperti "Failed password for root from 203.0.113.9 port 41822 ssh2" yang memerlukan parsing regex kompleks.

Pendekatan awal yang memungkinkan aturan deteksi menjangkau langsung ke log terparsing menciptakan ketergantungan berantai. Setiap aturan baru mewarisi kerumitan percabangan per-format: "jika dari Sysmon cari di sini, jika dari Windows Security cari di sana." Penambahan format keempat memaksa pengeditan setiap aturan yang ada — pola yang tidak skalabel dan sulit diuji. Solusi yang dipilih adalah mendefinisikan satu bentuk kanonik: interface NormalizedEvent yang mengabstraksi perbedaan sumber sejak lapisan parsing.

Empat parser khusus (windowsSecurity.ts, sysmon.ts, auth.ts, genericJson.ts) masing-masing bertugas mengonversi format aslinya ke struktur seragam. Field commandLine Sysmon, nama proses baru Windows 4688, dan IP sumber dari regex auth.log semuanya terpetakan ke field yang sama di NormalizedEvent. Kunci keberhasilan abstraksi ini adalah disiplin ketat: field raw menyimpan objek asli untuk keperluan pelaporan, namun aturan deteksi dilarang keras membacanya. Saat sebuah aturan mulai mengakses raw, abstraksi bocor dan percabangan per-format kembali menghantui arsitektur.

Dampak terasa langsung pada lapisan deteksi. Aturan untuk mendeteksi PowerShell terenkode (dipetakan ke MITRE ATT&CK T1059.001 dan T1027) kini hanya memfilter event berdasarkan e.commandLine tanpa peduli apakah data berasal dari Sysmon atau Windows Security. Kode deteksi menjadi deklaratif, ringkas, dan — yang paling penting — buta terhadap sumber. Pengujian pun terbagi bersih: pengujian parser memvalidasi transformasi dari sampel mentah ke NormalizedEvent, sedangkan pengujian aturan membangun event sintetis normalisasi secara manual tanpa pernah memuat log asli.

Tantangan terbesar tetap pada auth.log. Berbeda dengan tiga format terstruktur lainnya, auth.log menyerahkan kalimat bahasa alami yang harus diekstrak dengan regex untuk mendapatkan user, IP sumber, dan status login. Masalah tambahan: timestamp syslog tidak membawa tahun. Baris yang dimulai "Jul 12 08:22:01" memaksa parser menebak tahun, menciptakan ketidakpastian urutan jika log melintasi pergantian tahun. Pengembang memilih mengakui keterbatasan ini sebagai known limitation daripada berpura-pura parser dapat menemukan tahun yang hilang — keputusan jujur yang mencegah kepercayaan palsu pada urutan waktu.

Beberapa kasarnya masih tersisa. Parser auth.log berbasis regex rentan terhadap variasi format antar distribusi Linux, saat ini hanya disetel untuk format OpenSSH umum. Parser JSON generik bertindak sebagai safety net yang mempercayai field bernama "user" benar-benar berisi user — garbage in, confidently-parsed garbage out. Pengembang juga mengakui kebutuhan flag eksplisit "tahun tidak diketahui" pada timestamp SSH daripada tanggal diam-diam salah, namun belum diimplementasikan. Proyek ini tidak berpura-pura sebagai SIEM produksi, melainkan alat bantu analis dan proyek pembelajaran.

Namun, keputusan desain normalize-first adalah satu keputusan yang akan dipertahankan jika proyek ditulis ulang besok. Tulis parser sekali, dan setiap aturan yang ditambahkan setelahnya tetap buta format. Pola ini mencerminkan prinsip fundamental rekayasa keamanan: pisahkan kekhawatiran parsing dari logika deteksi. Di lingkungan enterprise Indonesia yang semakin mengadopsi SIEM dan SOAR, pendekatan ini menawarkan jalur praktis untuk mengurangi beban operasional tim keamanan, mempercepat pengembangan aturan deteksi baru, dan mengurangi risiko false negative akibat ketidaksesuaian format log yang tidak terduga.

Mengapa Ini Penting

Bagi industri keamanan siber Indonesia yang menghadapi kelangkaan analis SOC, pendekatan normalize-first ini menawarkan pengurangan beban operasional signifikan: tim tidak lagi perlu menulis dan memelihara cabang logika per-format untuk setiap aturan deteksi baru. Pola arsitektur ini juga mempercepat onboarding sumber log baru — cukup tambahkan parser, tidak perlu menyentuh ratusan aturan yang ada. Implikasi jangka panjang, adopsi pola ini di platform SIEM/SOAR lokal dapat mempercepat matangnya posture deteksi organisasi tanpa proporsional penambahan tenaga ahli.

Sumber Asli
dev.to
Tanggal
12 Juli 2026
Waktu Baca
5 menit