Testing For Vertical Privilege Escalation: Panduan & Mitigasi

Testing for Vertical Privilege Escalation adalah proses pengujian keamanan aplikasi web untuk memverifikasi apakah pengguna dengan hak akses rendah (misalnya regular user) dapat mengakses fungsi, data, atau sumber daya yang seharusnya hanya dapat diakses oleh pengguna dengan hak akses lebih tinggi (misalnya administrator). Pengujian ini berfokus pada kelemahan mekanisme kontrol akses vertikal di dalam sistem.

Kerentanan ini terjadi ketika aplikasi gagal memvalidasi hak akses secara memadai pada setiap permintaan (request) yang dikirimkan oleh klien ke server. Penyerang mengeksploitasi celah ini dengan cara memanipulasi parameter, parameter URL, atau header HTTP untuk mengambil alih kendali administratif.

Tahapan Metodologi Pengujian Teknis

Untuk menguji vertical privilege escalation secara sistematis, penguji keamanan harus mengikuti alur kerja standar industri seperti OWASP Testing Guide. Berikut adalah tabel tahapan pengujian yang wajib dilakukan:

Tahap Pengujian Fokus Area Alat Bantu Utama
1. Mapped Application Inventarisasi seluruh endpoint, fungsi admin, dan parameter role. Burp Suite, OWASP ZAP
2. Session Isolation Membandingkan request antara akun low-privilege dan high-privilege. Burp Suite (Comparer)
3. Forced Browsing Mengakses URL administratif langsung menggunakan token akun biasa. ffuf, Gobuster
4. Parameter Tampering Memodifikasi parameter role, user_id, atau isAdmin pada request. Burp Suite Repeater

Contoh Skenario Eksploitasi

Sebagai contoh nyata, sebuah aplikasi memiliki endpoint untuk menghapus pengguna yang hanya bisa diakses oleh admin melalui URL https://example.com/api/admin/delete_user. Ketika admin mengaksesnya, request yang dikirimkan adalah:

POST /api/admin/delete_user HTTP/1.1
Host: example.com
Cookie: session=A_ADMIN_SESSION_TOKEN
Content-Type: application/json

{"user_id": 105}

Penguji (tester) akan mencoba mengirimkan request yang sama menggunakan token sesi milik pengguna biasa (non-admin):

POST /api/admin/delete_user HTTP/1.1
Host: example.com
Cookie: session=B_REGULAR_USER_TOKEN
Content-Type: application/json

{"user_id": 105}

Jika server mengembalikan respons status 200 OK atau memproses penghapusan tersebut tanpa memverifikasi apakah B_REGULAR_USER_TOKEN memiliki hak akses admin, maka kerentanan Vertical Privilege Escalation terkonfirmasi ada pada aplikasi tersebut.

Langkah Mitigasi dan Perbaikan

Pencegahan kerentanan ini menuntut penerapan prinsip Defense in Depth dan kontrol akses berbasis peran (Role-Based Access Control / RBAC) yang ketat di sisi server (server-side enforcement).

  • Server-Side Access Control: Jangan pernah mengandalkan kontrol akses di sisi klien (frontend). Setiap fungsi backend harus memvalidasi peran atau izin pengguna secara eksplisit.
  • Centralized Access Control Mechanism: Gunakan modul atau pustaka terpusat untuk menangani otorisasi pada setiap rute atau endpoint API.
  • Deny by Default: Terapkan kebijakan penolakan secara default, di mana setiap endpoint tertutup untuk semua pengguna kecuali yang secara eksplisit diizinkan.