3. Mitigasi Logging & Monitoring (Mini SIEM)
Deskripsi singkat
Kegagalan pencatatan log membuat admin tidak dapat mendeteksi atau menginvestigasi insiden. Solusi: sistem logging terpusat dan dashboard monitoring realtime (mini SIEM).
Strategi Perbaikan
- Catat setiap aktivitas krusial ke tabel
security_logs. - Simpan metadata penting: username, event type, IP, user agent, timestamp.
- Buat API dan dashboard yang memvisualisasikan log dan menandai alert.
Contoh: lib/Logger.php
public function logEvent($type, $message, $username = null) {
// Pada mode 'vuln', fungsi ini return (Blind Spot)
if ($this->mode === 'vuln') return;
$ip = $_SERVER['REMOTE_ADDR'];
$ua = $_SERVER['HTTP_USER_AGENT'] ?? 'Unknown';
$stmt = $this->pdo->prepare("INSERT INTO security_logs (event_type, message, username, ip_address, user_agent) VALUES (?, ?, ?, ?, ?)");
$stmt->execute([$type, $message, $username, $ip, $ua]);
}
Dashboard Monitoring (monitor.php)
function fetchLogs() {
// Mengambil data JSON dari api_logs.php
fetch('api_logs.php')
.then(response => response.json())
.then(data => {
// Render tabel log secara dinamis
// Menampilkan OS dan Browser icon dari User Agent
// Highlight warna merah untuk alert keamanan
});
}
// Update otomatis setiap 2 detik
setInterval(fetchLogs, 2000);
Parsing User Agent (api_logs.php)
api_logs.phpbertugas memprosesUser-Agentmenjadi OS, browser, device type agar dashboard lebih mudah dibaca.
Dampak
Dengan implementasi ini, administrator dapat memantau serangan (mis. Brute Force, IDOR attempts) secara real-time lewat monitor.php dan merespons insiden lebih cepat.