Missing Function Level Access Control

Penulis: Okta Purnama Rahadian, Mira Hidayati, Martin Sujono

Pembimbing: Nico Surantha, PhD

 

Missing Function Level Access Control (MFLAC) merupakan salah satu dari top-10 vulnerability yang direlease oleh OWASP (Open Web Application Security Project), sebuah organisasi nirlaba yang memiliki tujuan untuk meningkatkan keamanan dari perangkat lunak berbasis web terhadap potensi kelemahan aplikasi dari sisi security. MFLAC merupakan suatu kelemahan dimana tidak adanya pengecekan akses atau otorisasi untuk sebuah fungsi ataupun fitur dalam suatu aplikasi berbasis web.  Dampak yang terjadi adalah user atau pengguna yang seharusnya tidak memiliki otorisasi untuk mengakses sebuah fungsi dapat mengaksesnya dengan leluasa.  Salah satu contohnya adalah apabila karyawan dalam suatu perusahaan mengetahui url/tautan untuk meng-akses data karyawan lain yang sifatnya rahasia, misalnya data gaji.

 

Insecure Direct Object Reference (IDOR) vs MFLAC

 

Berdasarkan dokumen yang di-release OWASP pada tahun 2013, kedua vulnerability tersebut dibedakan.

 

  • IDOR merujuk pada kelemahan aplikasi dimana referensi ke objek internal aplikasi, seperti file, direktori atau key database, terekspos keluar, sehingga dapat diakses oleh attacker untuk memanipulasi data.
  • Sedangkan MFLAC lebih menekankan kepada faktor otorisasi, dimana aplikasi tidak melakukan kontrol akses sehingga user yang tidak memiliki otorisasi dapat meng-akses data yang seharusnya tidak ditampilkan untuk user tersebut atau attacker.

Dampak dari kedua vulnerability diatas sama, yaitu user yang tidak memiliki otoritas dapat mengakses ataupun mengubah data.  Oleh karena itu, pada OWASP tahun 2017, kedua vulnerability tersebut digabungkan menjadi Broken Acess Control.

 

 

Bagaimana Cara Menemukan Kelemahan MFLAC pada Aplikasi

 

Berikut beberapa cara yang dapat dilakukan, diantaranya:

  1. Login ke sebuah situs dan catat semua url dari setiap halamannya, kemudian logout dan kunjungi kembali halaman yang sudah dicatat
  2. Melakukan force browsing, yaitu mengakses ke halaman situs dengan cara paksa, misalnya menambahkan “/admin” atau “/settings” atau “/wp-admin” pada halaman yang diakses, atau dapat juga menggunakan tool Burp Suite.
  3. Login ke sebuah halaman aplikasi web, catat userID, dan kemudian ubah userID (parameter) tersebut.

 

Kesalahan umum developer aplikasi web yang sering terjadi adalah menyembunyikan (hide) suatu menu/fitur pada form dan menganggap bahwa menu/fitur tersebut tidak akan ditampilkan.  Namun, apabila ada attacker yang mengetahui hal tersebut, ia dapat mengeksploitasi kelemahan ini dan mengubah data.

 

 

Bagaimana Cara Memproteksi Aplikasi Web dari Kelemahan MFLAC

Sebaiknya designer/developer aplikasi menerapkan ‘best practice’ berikut:

  1. Kontrol akses tidak di-hardcode, melainkan di-konfigurasi sehingga dapat di-audit dan didiubah sesuai akses kontrol.
  2. Semua mekanisme harus diset by default adalah false.
  3. Jika suatu fungsi digunakan dalam suatu alur kerja, maka pastikan persyaratannya untuk mengakses fungsi ini ditulis dengan jelas.
  4. Pastikan tidak menampilkan suatu fungsi yang tidak dibutuhkan oleh user, dan pastikan ada otorisasi untuk mengakses fungsi tersebut.
  5. Catat semua kegagalan akses untuk mempermudah troubleshooting apabila ada salah konfigurasi

 

I

Daftar Pustaka

Nico Surantha