Menggunakan AI untuk Menemukan Bug Otorisasi
Program bug bounty sedang berubah. Beberapa program berhenti memberikan imbalan. Yang lain memotong pembayaran hingga 80%. Alasannya bukan karena AI menemukan terlalu banyak bug. Alasannya adalah karena AI menemukan terlalu banyak bug yang salah. Tim triase tenggelam dalam laporan berkualitas rendah.
Dalam lingkungan seperti ini, keterampilan yang paling penting bukanlah menemukan bug. Melainkan membuktikan bahwa sebuah bug tidak ada. Anda harus menemukan hasil negatif yang benar.
Saya menggunakan metode dua tahap untuk target dengan kode yang tersedia (source-available).
Tahap 1: Fan-out Gunakan model AI murah untuk membaca kode. Bagi target menjadi potongan-potongan kecil. Minta model untuk menemukan invariant yang rusak. Cari tempat di mana sebuah objek dimuat tanpa pemeriksaan pemilik atau di mana gerbang keamanan dilewati. Targetkan recall yang tinggi. Harapkan banyak kesalahan.
Tahap 2: Adversarial Verification Gunakan model dengan penalaran tinggi yang mahal untuk menggugurkan kandidat. Asumsikan setiap kandidat terbantahkan. Sebuah kandidat hanya akan bertahan jika Anda dapat mengutip baris kode tertentu. Anda harus membuktikan bahwa jalur tersebut dapat dijangkau dan tidak ada pemeriksaan lain yang menghambatnya.
Output yang paling berharga adalah daftar bantahan (refutations). Daftar ini membangun kepercayaan dengan tim triase.
Saya menguji Ory Kratos, sebuah server identitas sumber terbuka (open-source). Saya memeriksa alur pengaturan. Area ini menangani perubahan kata sandi dan pembaruan email. Satu kesalahan di sini dapat menyebabkan pengambilalihan akun (account takeover).
Tahap pertama menemukan bug yang menggoda. Dalam strategi OIDC, sebuah kontainer tertentu kekurangan pengikatan identitas (identity binding). Jika Anda hanya mencari pemeriksaan yang hilang, Anda akan melaporkan ini sebagai bug dengan tingkat keparahan tinggi.
Itu akan menjadi sebuah kesalahan.
Pengikatan yang hilang tersebut tidak dapat dieksploitasi. Sistem mendapatkan identitas target dari cookie sesi aktif atau token yang ditandatangani. Atribut kontainer tidak pernah diterapkan pada target penulisan yang sebenarnya. Desainnya tetap aman.
Melaporkan hal ini akan membuang-buang waktu dan merusak kredibilitas Anda. Nilai yang saya berikan adalah keyakinan untuk tidak mengajukan laporan.
Ketika saya menggunakan metode yang sama pada target yang berbeda, saya menemukan bug yang nyata. Sebuah titik masuk alternatif melewatkan pemeriksaan otorisasi yang diterapkan pada jalur utama. Pengguna yang telah dicabut aksesnya masih bisa masuk melalui pintu samping. Bug ini berdampak tinggi dan tidak terlihat oleh pemindai standar.
Para penjaga (gatekeepers) sedang membangun dinding untuk menahan lonjakan volume laporan. Untuk berhasil, pekerjaan AI Anda harus teliti. Gunakan AI untuk membaca lebih banyak kode daripada yang bisa dilakukan manusia. Kemudian gunakan AI untuk membuktikan bahwa Anda salah sebelum Anda menekan tombol kirim.
Fokuslah pada sinyal, bukan volume.
