Menjalankan dan men-triage program bug bounty: memilih model private/public, menyusun policy dan scope yang jelas, proses triase laporan dari validasi hingga severity, seni komunikasi dengan researcher, dan coordinated disclosure yang melindungi pengguna tanpa merusak reputasi organisasi

Sejauh ini semua temuan datang dari dalam: scanner kalian, review kalian. Episode ini membuka pintu ke ribuan peneliti keamanan eksternal lewat bug bounty — dan sekaligus membawa masalah baru: laporan berdatangan dengan kualitas bervariasi, researcher yang menunggu respons cepat, media yang mengintai insiden. AppSec engineer sering menjadi orang pertama yang menyentuh semua itu.
Mengapa topik ini penting bahkan jika organisasi kalian belum punya program? Karena pemahaman sisi program membuat kalian lebih baik sebagai kontributor bounty (jalur karir umum menuju AppSec), dan karena bug bounty adalah sensor kerentanan paling murah yang bisa direkomendasikan ke manajemen setelah fondasi internal siap.
Empat tingkatan keterbukaan, naik bertahap:
| Model | Karakteristik | Cocok Saat |
|---|---|---|
| VDP (Vulnerability Disclosure Policy) | Lapor boleh, tanpa reward | Fondasi awal; wajib minimal |
| Private bounty | Researcher terkurasi diundang | Tim triase terbatas |
| Public bounty | Siapa pun boleh lapor + reward | Proses & budget matang |
| Platform (HackerOne/Bugcrowd) | Infrastruktur + crowd terkurasi | Skalabilitas & dispute handling |
Urutan adopsi yang sehat: VDP dulu — cukup satu halaman policy + email security.txt — lalu private bounty untuk menguji proses triase, baru public ketika SLA triase kalian terbukti konsisten. Melompat langsung ke public bounty tanpa proses = banjir laporan duplikat dan researcher frustrasi = reputasi buruk di komunitas.
Policy adalah kontrak sosial kalian dengan researcher. Elemen wajib:
*.example.com terlalu luas kalau ada sistem legacy tak terawat — daftar aset spesifik.Contact: mailto:security@example.com
Expires: 2027-01-01T00:00:00.000Z
Preferred-Languages: id, en
Policy: https://example.com/security/policy
CSAF: https://example.com/.well-known/csaf/provider-metadata.jsonFile kecil di /.well-known/security.txt — peneliti profesional mencarinya sebelum menyentuh apa pun. Kehadirannya sendiri sudah sinyal kematangan.
Alur triase yang saya pakai, lima gerbang:
1. Relevansi scope? Out-of-scope ditutup sopan dengan arahan — bukan dihapus; reputasi program hidup di forum researcher.
2. Reproduksi mandiri. Jangan pernah triase dari screenshot semata — ikuti langkahnya di environment kalian. Temuan yang tak bisa direproduksi masuk "need more info", bukan langsung invalid.
3. Tentukan dampak nyata. Reflected XSS di halaman marketing ≠ stored XSS di dashboard admin. Severity mengikuti dampak bisnis, bukan kata "XSS" saja.
4. Skoring & reward. Gunakan CVSS + konteks, atau skala bawaan platform (P1–P4). Konsistensi antar-triase lebih penting daripada angka sempurna — researcher membandingkan perlakuan antar laporan.
5. Komunikasi status. Setiap perubahan status dikabarkan dengan estimasi waktu fix. Researcher yang diinformasikan menjadi mitra; yang diabaikan jadi kritikus publik.
Note
Duplikat adalah realitas program matang — kadang 40% laporan. Sistem dedup (URL + tipe bug) dan aturan "first blood" yang transparan menyelamatkan puluhan jam triase per minggu.
Ketika fix siap, jalur rilisnya harus tertata:
Skenario sulit yang perlu disiapkan playbook-nya: researcher mengancam full disclosure sebelum fix (eskalasi manajemen, tetap profesional, percepat patch); laporan bocor ke media (siapkan statement yang mengakui, memberi timeline, tanpa meyalahkan); exploit aktif di alam liar sebelum patch (incident response path — episode runtime detection).
Latihan dengan laporan fiktif — tentukan keputusan kalian sebelum membaca analisis:
TITLE : Account takeover via password reset race
ASSET : app.example.com
STEPS :
1. Minta reset password untuk email korban
2. Submit form reset dua kali paralel dengan token sama
tapi password berbeda
RESULT:
Kedua request sukses; token tidak invalidate setelah pakai;
korban menerima 2 link aktif selama 15 menit window.
IMPACT: Token reuse — jika link bocor, attacker retry password
berbeda sampai match.Analisis triase:
markUsed atomik pada konsumsi token); reward sesuai tabel medium-low; apresiasi metodologi rapi researcher.Inilah inti pekerjaan: bukan sekadar menilai benar/salah, tapi menjaga kalibrasi dan kepercayaan sekaligus.
Inti yang harus dibawa pulang:
security.txt.Di episode 18 kita kembali ke kontrol teknis di edge: Web Application Firewall (WAF) — cara kerja rule engine, ModSecurity/Core Rule Set vs WAF cloud, mode detection vs blocking, bot management, dan pentingnya memahami bypass agar tidak percaya buta pada WAF. Sampai jumpa di episode 18!