Broken Access Control: Difference between revisions
No edit summary |
No edit summary |
||
Line 8: | Line 8: | ||
Kerentanan ''Broken Access Control'' terjadi ketika aplikasi gagal memverifikasi izin pengguna sebelum mengizinkan akses ke sumber daya tertentu. Berikut ini adalah contoh skenario bagaimana kerentanan ini dapat dieksploitasi: | Kerentanan ''Broken Access Control'' terjadi ketika aplikasi gagal memverifikasi izin pengguna sebelum mengizinkan akses ke sumber daya tertentu. Berikut ini adalah contoh skenario bagaimana kerentanan ini dapat dieksploitasi: | ||
'''Contoh Permintaan HTTP''' | |||
Misalkan ada aplikasi web dengan endpoint untuk mengakses profil pengguna: | Misalkan ada aplikasi web dengan endpoint untuk mengakses profil pengguna: | ||
Latest revision as of 05:23, 1 September 2024

Broken Access Control adalah kerentanan keamanan yang terjadi ketika aplikasi gagal membatasi hak akses pengguna sesuai dengan peran dan izin mereka. Kerentanan ini memungkinkan pengguna yang tidak sah untuk mengakses data atau fungsi yang seharusnya dibatasi.
Sejarah
Sejak awal perkembangan aplikasi web, kontrol akses telah menjadi komponen penting dalam menjaga keamanan sistem. Namun, seiring dengan meningkatnya kompleksitas aplikasi, pengelolaan kontrol akses menjadi lebih menantang, menyebabkan peningkatan insiden Broken Access Control. Kerentanan ini menjadi salah satu dari sepuluh ancaman teratas menurut OWASP (Open Web Application Security Project).
Cara Kerja
Kerentanan Broken Access Control terjadi ketika aplikasi gagal memverifikasi izin pengguna sebelum mengizinkan akses ke sumber daya tertentu. Berikut ini adalah contoh skenario bagaimana kerentanan ini dapat dieksploitasi:
Contoh Permintaan HTTP
Misalkan ada aplikasi web dengan endpoint untuk mengakses profil pengguna:
GET /user/profile?id=123 HTTP/1.1
Host: example.com
Authorization: Bearer <token>
Jika aplikasi tidak memverifikasi apakah pengguna yang melakukan permintaan memiliki izin untuk mengakses profil dengan id=123
, maka pengguna yang tidak berwenang dapat mengakses informasi sensitif dengan memodifikasi parameter id
.
Dampak
Broken Access Control dapat memiliki dampak serius pada keamanan dan privasi data. Beberapa dampak potensial termasuk:
Kebocoran Data:
Informasi sensitif dapat diakses oleh pihak yang tidak berwenang.
Esklasi Hak Akses:
Penyerang dapat meningkatkan hak akses mereka untuk mengendalikan sistem atau data yang lebih luas.
Pengrusakan Data:
Penyerang dapat memodifikasi atau menghapus data yang tidak seharusnya mereka akses.
Pencegahan
Untuk mencegah Broken Access Control, penting untuk menerapkan praktik keamanan berikut dalam pengembangan aplikasi:
PHP
Gunakan Middleware atau Filter untuk memverifikasi izin pengguna sebelum mengakses resource:
// Contoh menggunakan Laravel middleware
public function handle($request, Closure $next)
{
if ($request->user()->cannot('view', UserProfile::class)) {
abort(403);
}
return $next($request);
}
Java
Gunakan Anotasi Keamanan untuk membatasi akses ke metode atau kelas:
@Secured("ROLE_ADMIN")
public void someAdminFunction() {
// Logic hanya untuk admin
}
Python
Gunakan Dekorator untuk membatasi akses:
from flask_login import login_required
@app.route('/admin')
@login_required
def admin_dashboard():
if not current_user.is_admin:
abort(403)
return render_template('admin_dashboard.html')
Dengan menerapkan kontrol akses yang ketat dan memverifikasi izin pengguna dengan benar, risiko Broken Access Control dapat diminimalisir. Selalu lakukan pengujian keamanan secara rutin dan audit kode untuk memastikan bahwa kontrol akses telah diterapkan dengan benar.