Widget HTML #1


A01:2025 Broken Access Control – OWASP Top 10 2025

Ketika Sistem Keamanan Membiarkan Pintu Terbuka

Dalam dunia keamanan aplikasi, ada satu pertanyaan sederhana namun sangat menentukan: siapa boleh mengakses apa?
Ketika pertanyaan ini gagal dijawab dengan benar oleh sebuah aplikasi, maka lahirlah risiko bernama Broken Access Control—peringkat pertama dalam OWASP Top 10 tahun 2025.

Risiko ini bukan hal baru. Bahkan, Broken Access Control sudah beberapa kali menduduki posisi teratas sejak edisi-edisi sebelumnya. Alasannya sederhana: kesalahan ini masih sangat sering terjadi, dampaknya sangat besar, dan sering kali tidak disadari oleh organisasi sampai semuanya terlambat .

Memahami Broken Access Control dengan Bahasa Sederhana

Secara sederhana, Broken Access Control terjadi ketika aplikasi gagal membatasi apa yang boleh dilihat atau dilakukan oleh seorang pengguna. Sistem seolah berkata “akses ditolak”, tetapi pada kenyataannya masih membiarkan pengguna masuk dan melakukan sesuatu yang seharusnya tidak diizinkan.

Dalam praktiknya, ini bisa berarti:

  • Pengguna biasa bisa melihat data sensitif milik orang lain
  • Pengguna non-admin bisa menjalankan fungsi administrator
  • Seseorang bisa mengubah identitasnya hanya dengan mengganti parameter di URL

Pembicara dalam sesi ini menggambarkannya dengan analogi yang sangat mudah dipahami: access control ibarat penjaga pintu klub malam. Saat sistem berjalan normal, penjaga memastikan hanya orang yang berhak yang boleh masuk. Namun pada Broken Access Control, penjaga itu sedang “istirahat minum kopi”, sehingga siapa pun bisa naik ke panggung dan mengambil alih DJ.

Semua Jadi Admin: Pelanggaran Prinsip Least Privilege

Salah satu akar masalah utama Broken Access Control adalah pelanggaran prinsip least privilege—prinsip yang menyatakan bahwa setiap pengguna hanya boleh memiliki akses minimum yang benar-benar dibutuhkan.

Dalam banyak aplikasi yang bermasalah, semua orang secara tidak sadar diperlakukan seperti administrator. Meskipun sistem memiliki mekanisme login atau autentikasi, pembatasan hak aksesnya tidak dijalankan dengan benar di sisi server.

Akibatnya, pengguna bisa:

  • Mengubah peran dirinya sendiri
  • Mengakses fitur tersembunyi
  • Melihat atau mengubah data yang seharusnya bersifat rahasia

Forced Browsing dan Manipulasi Parameter: Masalah Lama yang Masih Terjadi

Salah satu bentuk klasik Broken Access Control adalah forced browsing, yaitu ketika pengguna dapat mengakses halaman atau fungsi tersembunyi hanya dengan menebak atau memodifikasi URL.

Meski teknik ini sudah dikenal sejak lama, kenyataannya masih banyak aplikasi modern yang rentan. Pengguna cukup mengganti parameter tertentu—misalnya ID pengguna atau ID transaksi—untuk berpindah dari akun biasa menjadi admin, atau dari data miliknya ke data orang lain .

Dalam satu kasus nyata yang diceritakan, sistem penggajian (salary system) memungkinkan pengguna biasa melihat data gaji karyawan lain hanya dengan mengubah parameter tertentu di permintaan aplikasi. Dampaknya bukan hanya teknis, tetapi juga sangat sensitif secara organisasi, khususnya bagi fungsi HR.

Studi Kasus Nyata: Serangan Reset Password Vimeo

Salah satu contoh klasik Broken Access Control adalah insiden Vimeo tahun 2015. Dalam kasus ini, penyerang menemukan bahwa sistem reset password menggunakan public user ID yang dapat ditebak.

Dengan menangkap permintaan HTTP reset password dan mengganti user ID miliknya dengan user ID korban, penyerang berhasil:

  • Mereset password akun orang lain
  • Mengambil alih akun korban sepenuhnya

Serangan ini bukan menggunakan teknik canggih, melainkan parameter tampering sederhana—mengganti nilai dalam permintaan HTTP tanpa verifikasi yang memadai di sisi server .

Insecure Direct Object Reference (IDOR): Celah yang Sangat Umum

Broken Access Control juga sering muncul dalam bentuk Insecure Direct Object Reference (IDOR). Contohnya:

  • Nomor invoice di URL dapat diganti untuk melihat invoice milik orang lain
  • ID rekening bank bisa dimodifikasi untuk mengakses data yang bukan milik pengguna
  • Dokumen internal bisa dibuka hanya dengan mengganti angka di URL

Masalahnya bukan pada URL atau ID itu sendiri, tetapi pada tidak adanya pengecekan hak akses di sisi server.

JWT dan Access Control: Tidak Selalu Aman

Banyak pengembang merasa aman karena sudah menggunakan JWT (JSON Web Token). Namun, JWT bukan jaminan keamanan jika:

  • Token dapat dimodifikasi
  • Klaim peran (role) di dalam token dipercaya begitu saja
  • Tidak ada validasi ulang di server

JWT tampering, penyalahgunaan hidden fields, dan manipulasi token tetap dapat menyebabkan Broken Access Control jika desain keamanannya lemah .

Broken Access Control Bukan Satu Celah, Tapi Banyak

Satu kesalahan besar dalam memahami Broken Access Control adalah menganggapnya sebagai satu jenis kerentanan. Padahal, di balik kategori ini terdapat banyak CWE dan berbagai skenario serangan.

Karena itu, OWASP mendorong komunitas untuk terus:

  • Mengusulkan use case baru
  • Menyumbangkan temuan di GitHub OWASP
  • Berkontribusi langsung dalam penyempurnaan Top 10

Cara Bertahan: Dari Zero Trust hingga Role-Based Access

Untuk mencegah Broken Access Control, pendekatannya harus sistemik, bukan tambal sulam. Beberapa prinsip penting yang ditekankan antara lain:

  1. Deny by Default (Zero Trust)
    Tidak ada akses yang diberikan kecuali secara eksplisit diizinkan. Never trust, always verify.

  2. Context-Aware Access
    Sistem memperhatikan konteks akses: lokasi, waktu, perangkat, dan kebiasaan pengguna.

  3. Token Berumur Pendek
    JWT dan token autentikasi sebaiknya memiliki masa berlaku singkat dan rutin diperbarui.

  4. Least Privilege & Role-Based Access Control (RBAC)
    Hak akses harus sesuai peran dan dicabut segera ketika peran berubah.

  5. Manajemen Akses yang Disiplin
    Akses lama tidak boleh “dibawa” saat seseorang pindah tim atau peran.

Sebuah kisah nyata dalam sesi ini menggambarkan betapa berbahayanya akses yang tidak dicabut. Seorang anggota tim yang berpindah dari tim firewall masih membawa akses lamanya dan dapat mengubah konfigurasi kritis tanpa prosedur yang semestinya. Secara teknis memang “memudahkan”, tetapi secara etika dan keamanan, hal ini sangat berbahaya .

Penutup: Masalah Lama, Dampak Selalu Baru

Broken Access Control adalah contoh nyata bahwa masalah keamanan terbesar sering kali bukan yang paling rumit, tetapi yang paling diabaikan. Ia tidak selalu membutuhkan eksploit canggih—cukup satu parameter yang dipercaya tanpa verifikasi.

OWASP Top 10 2025 kembali menempatkan Broken Access Control di posisi teratas sebagai pengingat keras:
keamanan bukan hanya soal login, tetapi soal memastikan setiap aksi benar-benar dilakukan oleh orang yang berhak.

#owasptop10

#owasptop102025