Broken Access Control: Difference between revisions

From DefacerID Encyclopedia
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 ===
'''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 (https://www.geeksforgeeks.org/how-to-prevent-broken-access-control/)

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.