Materi
Pola brute force terlihat di log sebagai banyak login gagal dari satu sumber. OWASP menjelaskan brute force sebagai mencoba banyak nilai dan menganalisis responsnya; dari sisi bertahan, yang kita lihat hanya deretan 'gagal'. GROUP BY mengelompokkan baris yang punya nilai sama, dan COUNT(*) menghitung tiap kelompok. Mengelompokkan per kolom ip lalu menghitung memberi jumlah login gagal per sumber; menambah ORDER BY DESC menaruh yang terbanyak di atas. Contoh berikut mengelompokkan per PENGGUNA sebagai latihan bentuknya:
SELECT pengguna, COUNT(*) AS gagal
FROM log_masuk
WHERE hasil = 'gagal'
GROUP BY pengguna
HAVING gagal >= 8;HAVING menyaring kelompok setelah dihitung, seperti WHERE untuk hasil agregat. Klausa di atas menyisakan IP dengan sepuluh login gagal atau lebih (ambang kebijakan contoh kelas ini). Untuk mengenali penyemprotan kata sandi (password spraying) — satu kata sandi diuji ke banyak akun — hitung akun berbeda per IP dengan COUNT(DISTINCT pengguna): IP yang mencoba banyak nama pengguna berbeda patut dicurigai.