Analis Siber Purwakarta - Admin. Broken Access Controls (BAC) merupakan kegagalan sistem dalam membatasi akses ke sumber daya atau fungsionalitas berdasarkan profil pengguna. Celah ini memungkinkan peluang bagi threat actors untuk mengakses, memodifikasi, atau menghapus data sensitif yang berada di luar hak akses mereka. Dalam lanskap keamanan siber saat ini, BAC menjadi ancaman paling kritis karena menyerang langsung pada logika otorisasi aplikasi.
Berkenalan dengan Akses Kontrol
Akses kontrol dapat diterapkan dengan berbagai macam cara. Penerapan akses kontrol tergantung berdasarkan sumber tipe yang diproteksi, dan security requirements yang diterapkan pada sistem. Akses kontrol yang umumnya digunakan diantaranya:
- Discretionary Access Control (DAC). Merupakan sebuah akses kontrol dimana seorang administrator akan menentukan siapa saja yang diizinkan mengakses resources dan tindakan apa saja yang pengguna izinkan untuk mengakses resources tersebut. DAC umumnya digunakan dalam sebuah sistem operasi atau sistem file.
- Mandatory Access Control (MAC). Merupakan sebuah akses kontrol dimana akses ke sebuah resources ditentukan oleh serangkaian aturan atau kebijakan (policies) yang sudah ditetapkan sebelumnya, dan diterapkan pada sistem. MAC sering dapat dijumpai pada pemerintahan, ataupun basis militer.
- Role-Based Access Control (RBAC. Pada tipe akses kontrol ini, akses ke sebuah resources ditentukan oleh sebuah peran yang ditentukan juga berdasarkan hierarkis level-level tertentu yang ditentukan dari tanggung-jawab yang sudah diberikan sebelumnya.
- Attribute-Based Access Control (ABAC). Tipe akes kontrol ini ditentukan oleh berbagai macam atribut pengguna seperti user role, waktu, lokasi, ataupun jenis perangkat yang digunakan.
Metode Eksploitasi Broken Access Control (BAC)
Terdapat berbagai cara yang digunakan peretas untuk mengeksploitasi kerentanan BAC, yang secara garis besar dapat dikategorikan sebagai berikut:
- Horizontal Privilege Escalation (Eskalasi Hak Akses Horizontal): Penyerang mengakses sumber daya atau data milik pengguna lain yang berada pada level otoritas yang sama. Contoh klasiknya adalah memodifikasi parameter ID pada URL—misalnya mengubah user/profile/123 menjadi user/profile/124—untuk mengintip informasi pribadi pengguna lain.
- Vertical Privilege Escalation (Eskalasi Hak Akses Vertikal): Terjadi ketika penyerang berhasil mengakses fungsi atau data milik pengguna dengan level hierarki yang lebih tinggi (misalnya admin). Dalam skenario ini, pengguna biasa mungkin mencoba mengakses URL administratif seperti /admin/dashboard yang seharusnya terproteksi namun gagal divalidasi oleh sistem.
- Insecure Direct Object References (IDOR): Ini adalah teknik spesifik di mana aplikasi menyediakan referensi langsung ke objek internal (seperti kunci basis data atau nama file) melalui input pengguna. Tanpa pemeriksaan akses yang memadai, peretas dapat memanipulasi referensi ini untuk mengambil data apa pun yang tersimpan di dalam sistem.
- Insufficient Access Control Checks: Kerentanan ini muncul akibat inkonsistensi dalam implementasi keamanan. Misalnya, sebuah fungsi mungkin diproteksi ketat pada antarmuka pengguna (UI), namun endpoint API yang sama justru tidak memiliki verifikasi otorisasi, sehingga memungkinkan peretas untuk melakukan bypass secara langsung.
Mempraktikan Eksploitasi Broken Access Control
Kita akan mempraktikan eksploitasi kerentanan Broken Access Control ini pada room yang disediakan oleh TryHackMe. Perangkat lunak yang disiapkan adalah Web Proxy seperti Burp Suite, OWASP ZAP, ataupun Caido. Penulis disini akan menggunakan Caido sebagai Web Proxy.
| Gambar 1: Tampilan awal room BAC Sumber: Dokumentasi Penulis |
Aplikasi ini menyediakan fitur berupa dashboard pengguna, dashboard admin, halaman registrasi, dan halaman login. Kita terlebih dahulu membuat akun testing untuk melakukan asesmen pertama pada aplikasi ini.
![]() |
| Gambar 2. Request, dan Response endpoint functions Sumber: Dokumentasi Penulis |
Diketahui berdasarkan asesmen sebelumnya, pada response function setelah login dilakukan, aplikasi ini menggunakan sistem operasi Debian, Web-Server Apache, dan bahasa pemrograman PHP 8.0.19. Diketahui juga pada endpoint ini, tidak ada security headers sebagai langkah preventif bila terjadi peretasan. Selain itu, terdapat Json parameter redirect_link pada body Response bernilai Boolean yang apabila kita rubah maka kita dapat melakukan vertical privileged escalation yakni merubah akun testing kita menjadi akun admin.
![]() |
| Gambar 3. Halaman Dashboard Admin yang diperoleh dengan merubah otorisasi menjadi fungsi admin Sumber: Dokumentasi Penulis |
Mitigasi Kerentanan Broken Access Control
Terdapat beberapa langkah untuk melakukan mitigasi kerentanan BAC ini. Diantaranya adalah:
- Menerapkan Role Based Access Control
- Menggunakan Parametrized Queries
- Menerapkan Manajemen Sesi (Management Session) pengguna yang proper
- Menerapkan Secure Coding


Komentar
Posting Komentar