Broken Access Control merupakan salah satu celah keamanan paling umum yang sangat membahayakan aplikasi website. Dalam Owasp top 10 threats, Broken Access Control ini menduduki peringkat pertama, mengalahkan kerentanan-kerentanan lain seperti injection sql inject, xss dan security misconfiguration. Dengan adanya artikel ini, kami akan mengupas kerentanan Broken Access Control yang umum terjadi pada website.
Apa itu Broken Access Control
Seperti dalam judul di atas, Access control adalah mekanisme yang mengatur atau yang memiliki izin dapat mengakses sistem. Ketika kontrol itu tidak bisa diterapkan dengan benar atau dapat di bypass maka terjadilah kerentanan Broken Access Control, jadi semua pengguna dapat mengaturnya tanpa memiliki hak ases admin.
Dalam kerentanan ini, si attacker atau hacker dapat melihat data pengguna lain, dapat melakukan penggantian password dan dapat mengganti ID pada parameter. Broken Access Control juga memiliki berbagai macam jenis, seperti.
Insecure direct object references (IDOR) – aplikasi memperbolehkan akses langsung ke objek dengan hanya mengganti ID tanpa validasi.
Privilege Escalation – pengguna biasa bisa mendapatkan akses dan bertindak seperti admin.
Forced Browsing – attacker dapat mengakses endpoint tersembunyi hanya dengan menebak url parameter.
Vertical & Horizontal access control issue – (Vertical) terjadi jika perbedaan peran tidak diterapkan dengan benar, sedangkan (Horizontal) user bisa mengakses data user lain.
Parameter tampering – attacker mengakses data dengan mengedit parameter di url atau cookie yang seharusnya tidak bisa diakses.
Referer Bypass – beberapa aplikasi hanya mengandalkan header referer, padahal sangat mudah dimanipulasi.
Dampak kerentanan Broken Access Control
Broken Access Control bisa mengakibatkan kebocoran data, pencurian akun, eskalasi hak akses, bahkan manipulasi sistem. Dampak nyatanya bisa sampai ke masalah hukum dan reputasi. Misalnya, user bisa melihat saldo rekening orang lain atau transfer uang hanya karena kontrol akses tidak diterapkan dengan benar.
Praktik Menguji Broken Access Control dengan Burp Suite
Kita bisa latihan menggunakan lab legal dari PortSwigger Web Security Academy.
// Contoh request asli
GET /api/user/1001/profile HTTP/1.1
Host: vulnerable-app.com
// Setelah dimodifikasi
GET /api/user/1002/profile HTTP/1.1
Host: vulnerable-app.com
Jika response berubah dan menampilkan data user lain, artinya aplikasi rentan terhadap Broken Access Control (IDOR).
Langkah Praktik
- Buka Burp Suite dan aktifkan proxy di browser
- Login sebagai user biasa
- Perhatikan parameter (user_id, account_id, file_id)
- Ubah ID dan kirim ulang request
- Gunakan Burp Intruder untuk brute force ID secara otomatis
- Coba akses endpoint admin seperti
/adminatau/config - Pakai OWASP ZAP untuk passive scan endpoint terbuka
Pencegahan dan Mitigasi
- Validasi akses di server, jangan hanya di client
- Terapkan prinsip least privilege
- Lakukan audit & logging untuk semua request penting
- Lakukan penetration testing rutin
- Gunakan library otorisasi terpercaya (OAuth2, JWT, middleware)
- Implementasi Role-Based Access Control (RBAC)
- Gunakan rate limiting & alerting untuk mendeteksi brute force
Studi Kasus Nyata
Pada tahun 2021, sebuah perusahaan ride-sharing terkenal terkena Broken Access Control. API mereka memungkinkan pergantian driver_id di URL sehingga siapa pun bisa melihat detail pribadi driver lain. Akibatnya, ribuan data pribadi bocor ke publik.
Tools untuk Deteksi BAC
- Kiterunner & Gobuster → brute force endpoint API
- ffuf → eksplorasi parameter ID
- Postman → testing manual berbagai kombinasi request
- JWT.io → analisis & modifikasi token JWT
Checklist Developer
- [ ] Apakah setiap request dicek berdasarkan role user?
- [ ] Apakah validasi dilakukan di server, bukan hanya di client?
- [ ] Apakah ownership object diverifikasi?
- [ ] Apakah ID/token tidak mudah ditebak?
- [ ] Apakah logging mencatat semua akses penting?
Kesimpulan
Broken Access Control adalah kerentanan serius yang sering diabaikan developer. Dengan latihan di lab PortSwigger, TryHackMe, atau HackTheBox, kita bisa memahami cara exploit sekaligus cara mitigasinya. Jangan pernah mengandalkan validasi client-side, selalu pastikan kontrol akses ada di sisi server, dengan logging dan role management yang benar.
