Sebagian ancaman hanya terlihat saat aplikasi sudah melayani traffic nyata; di episode ini kalian membangun lapisan shift-right: security observability produksi, WAF dan rate limiting, kill switch & feature flag untuk containment cepat, serta feedback loop yang mengalirkan temuan production kembali memperkuat pipeline

Sepanjang series ini kita menekan risiko sedini mungkin — shift-left. Namun ada kelas ancaman yang mustahil dideteksi sebelum production: credential stuffing memakai password asli user, business logic abuse (bot checkout), zero-day di framework, dan perilaku abnormal yang hanya tampak pada skala trafik nyata.
Shift-right adalah pendampingnya: menanamkan kemampuan deteksi dan respons ke lingkungan hidup. Bukan pengakuan kalah dari shift-left, melainkan pelengkapnya — shift-left menyusutkan permukaan serangan, shift-right memastikan yang lolos tertangkap dalam hitungan menit, bukan bulan. Episode 11 sudah menyentuh runtime detection di level host/container; episode ini memperluasnya ke level aplikasi, edge, dan organisasi.
Peta pertahanan di sisi kanan pipeline:
| Lapisan | Fungsi | Contoh |
|---|---|---|
| Edge/WAF | Filter request berbahaya | OWASP CRS rules, bot management |
| Rate limiting | Cegah abuse & DoS | Token bucket per-IP/per-user |
| App-level detection | Anomali logika bisnis | Login gagal anomali per akun |
| Runtime detection | Perilaku host/container | Falco (episode 11) |
| Kill switch | Containment cepat | Feature flag matikan fitur |
Urutannya penting: WAF menyaring noise umum sehingga deteksi aplikasi bisa fokus pada anomali spesifik domain — tanpa lapisan awal, sinyal nyata tenggelam di banjir scanner-bot internet.
WAF modern (ModSecurity+CRS, AWS WAF, Cloudflare) bekerja dengan ruleset + machine learning. Dua prinsip agar WAF tidak menjadi pajak latency tanpa nilai:
Contoh aturan rate limit kritis di level edge:
scope : POST /api/login
limit : 5 attempt / menit / IP DAN / username
action : block 15 menit + log event auth_brute_forcePerhatikan dimension-nya: batas per-IP saja mudah dilewati distributed attack; kombinasi per-account memberi perlindungan credential stuffing yang lebih tahan.
Log keamanan yang layak dikumpulkan dari aplikasi:
{
"event": "login_failed",
"user": "u_8231",
"ip": "203.0.113.7",
"user_agent": "curl/8.4",
"attempt_count": 4,
"geo": "ID",
"ts": "2026-08-16T09:41:22Z"
}Syarat supaya bisa dianalisis:
Dari sini, query deteksi sederhana langsung bermakna:
SELECT ip, COUNT(DISTINCT user_id) AS targets, COUNT(*) AS attempts
FROM login_failed
WHERE ts > NOW() - INTERVAL '10 minutes'
GROUP BY ip
HAVING targets > 20;Satu IP yang mencoba puluhan akun dalam 10 menit = pola stuffing klasik. Query seperti ini adalah bahan mentah alert SIEM — integrasi penuhnya dibahas episode 24.
Deteksi tanpa kemampuan bertindak cepat setengah jalan. Prasyarat containment:
Important
Uji kill switch secara berkala di staging — bahkan game day di production untuk fitur non-kritis. Switch yang belum pernah ditekan biasanya macet tepat saat dibutuhkan.
Nilai terbesar shift-right adalah datanya: tiap insiden/near-miss produksi harus menghasilkan penguatan pipeline:
Contoh konkret: WAF mendeteksi serangan path traversal → tambahkan rule Semgrep untuk pattern path.join(userInput) → PR berikutnya yang memuat pola serupa ditolak otomatis. Insiden yang sama tidak akan lolos dua kali — itulah definisi pembelajaran sistemik dalam DevSecOps.
Inti yang harus dibawa pulang:
Di episode 18 selanjutnya kita masuk Fase 4: Network Policies & Segmentation — default-deny yang benar di Kubernetes, egress control yang membatasi koneksi keluar, dan mTLS service mesh yang membuat setiap percakapan antar-service terautentikasi dan terenkripsi end-to-end. Sampai jumpa!