Perilaku & Bot
Behavior engine menangani bot yang menghindari signature statis — memakai counter berbasis waktu.
Sinyal perilaku & skor
Section titled “Sinyal perilaku & skor”| Sinyal | Kondisi | Skor |
|---|---|---|
unique_uri_burst |
≥ unique_uri_limit URI dalam window |
+12 |
not_found_enumeration |
≥ not_found_limit 404 dalam window |
+10 |
sensitive_path_burst |
≥ sensitive_path_rate_limit request ke path auth |
+10 |
path_rate_burst |
≥ path_rate_limit request ke path sama |
+8 |
method_anomaly |
PUT/DELETE/PATCH ke path publik | +4 |
missing_headers |
tanpa User-Agent | +2 |
scanner_tool_ua |
marker tool scanner (sqlmap/nikto/…) | +4 |
suspicious_user_agent |
klien generic / Mozilla/5.0 polos |
+2 |
missing_referer |
POST tanpa Referer | +2 |
oversized_request |
URI melebihi max_uri_length |
+2 |
known_crawler |
crawler dikenal | — |
verified_crawler |
crawler terverifikasi IP | — |
unverified_crawler_claim |
klaim crawler gagal verifikasi | +4 |
Rate limiting login (brute-force)
Section titled “Rate limiting login (brute-force)”Middleware menghitung request per path + IP dalam window. Endpoint auth (behavior.sensitive_paths)
memakai ambang lebih rendah (sensitive_path_rate_limit, default 8).
Klasifikasi crawler (bots.mode)
Section titled “Klasifikasi crawler (bots.mode)”| Mode | Perilaku |
|---|---|
off |
Tidak ada efek — semua bot dianggap traffic biasa. |
observe |
Crawler diverifikasi & sinyal tercatat, tidak diblok. |
challenge (default) |
Crawler terverifikasi diizinkan; klaim tak terverifikasi di-challenge. |
Verifikasi identitas crawler (anti-spoof)
Section titled “Verifikasi identitas crawler (anti-spoof)”User-Agent bisa dipalsukan, jadi klaim User-Agent: Googlebot belum cukup. Crawler hanya dipercaya jika
IP-nya terverifikasi (bots.verification):
- CIDR allowlist (
bots.verification.ip_ranges) — cepat, tanpa DNS. - Reverse-DNS + forward-confirm —
gethostbyaddr(ip)harus menghasilkan hostname dengan suffix domain crawler (mis.*.googlebot.com), lalu hostname itu harus resolve balik ke IP yang sama. - Hasil di-cache per IP selama
bots.verification.ttl_hours(default 24 jam).
Suffix bawaan: googlebot (.googlebot.com, .google.com), bingbot (.search.msn.com), yandexbot
(.yandex.ru, .yandex.net), baiduspider (.baidu.com, .baidu.jp), duckduckbot (.duckduckgo.com),
ahrefsbot (.ahrefs.com), semrushbot (.semrush.com), dotbot (.moz.com), ccbot (.cc).
Crawler terverifikasi → behavior delta di-nol-kan: crawl deras Googlebot tidak pernah men-challenge/ban. Signature critical tetap selalu diblok.
SEO: dengan verifikasi aktif, Googlebot/Bing/Yandex/Baidu + crawler SEO utama dibiarkan lewat penuh. Path SEO (
robots.txt,sitemap.xml, feed, konten) dijamin tak diblok (ada regresifixtures/seo-corpus.json).
Heuristik User-Agent
Section titled “Heuristik User-Agent”Dua tingkatan sinyal:
- Tool scanner (
behavior.scanner_user_agents: sqlmap, nikto, metasploit, wpscan, gobuster, dirbuster, masscan, nmap, nessus, acunetix, zgrab, httpx, …) →scanner_tool_ua+4. - Klien generic (curl/, wget, python-requests, node-fetch, axios, java/, powershell, …) + override
behavior.suspicious_user_agents→suspicious_user_agent+2.
UA Mozilla/5.0 polos dianggap mencurigakan. Sinyal UA tidak pernah memblokir sendirian.
Inspeksi body & rule pack injection
Section titled “Inspeksi body & rule pack injection”rules.packs.injection (default aktif) + inspection.body.enabled (default aktif) membuat body POST/JSON
ikut diperiksa (maks 64KB, multipart/* di-skip, body tidak pernah di-log) — menutup celah single-shot
probe & sqlmap. Sebagian besar rule injection ber-skor medium (band challenge) untuk menghindari FP.
Eskalasi
Section titled “Eskalasi”Eskalasi offense tidak dipicu sinyal lemah (+2); butuh signature match atau sinyal perilaku ≥ 10
(RiskScorer::MIN_ESCALATION_BEHAVIOR_SCORE).
Tuning false-positive
Section titled “Tuning false-positive”- Mulai
observe, pantaushield:report. - Naikkan threshold bila aplikasi memang menerima burst sah.
- Matikan
missing_referer_signalbila POST tanpa Referer memang normal. - Matikan
rules.packs.injection/inspection.body.enabledbila aplikasi sah mengirim teks mirip payload. - Pantau manual release & challenge pass rate sebagai sinyal FP.
Powered by PT Ganadev Multi Solusi