Insecure Direct Object Reference (IDOR): Deteksi dan Pencegahan Kerentanan

Sumber: www.freepik.com

Insecure Direct Object Reference (IDOR) adalah salah satu kerentanan keamanan yang sering ditemukan. Kerentanan ini terjadi ketika sistem tidak menerapkan kontrol akses yang memadai, sehingga pengguna yang tidak berwenang dapat mengakses, mengubah, atau menghapus data sensitif hanya dengan memodifikasi parameter dalam permintaan mereka.

Artikel ini merangkum informasi mengenai Insecure Direct Object Reference (IDOR), yang bersumber dari www.eccouncil.org. Berikut penjelasannya untuk Anda. 

Apa Itu Insecure Direct Object Reference (IDOR)?

Insecure Direct Object Reference (IDOR) terjadi ketika sebuah aplikasi web memberikan referensi atau ID yang dapat digunakan pengguna untuk mengakses atau mengubah informasi lain yang tidak sah. Hal ini disebabkan oleh aplikasi yang hanya memerlukan referensi untuk mengakses data tertentu tanpa memverifikasi kredensial pengguna dengan benar.

Salah satu contoh umum dari IDOR adalah penggunaan user ID. Banyak database dan backend situs web menetapkan user ID dalam urutan menaik, misalnya dimulai dari angka satu dan terus bertambah.  Ini berarti, misalnya, akun untuk pengguna 8201 dibuat tepat sebelum akun pengguna 8202.

Pendekatan ini dapat menimbulkan masalah keamanan bagi aplikasi web. Sebagai contoh sederhana, jika sebuah aplikasi memungkinkan pengguna 8201 mengakses pengaturan akunnya melalui alamat web berikut:

https://www.example.com/settings/user/8201

Seorang penyerang dapat menyimpulkan bahwa pengaturan akun untuk pengguna 8202 mungkin tersedia di alamat:

https://www.example.com/settings/user/8202

Fakta ini mungkin bukan masalah. Kerentanan IDOR terjadi ketika aplikasi web tidak menerapkan kontrol akses yang memadai. Jika sistem tidak memverifikasi identitas pengguna dengan benar, maka penyerang dapat dengan bebas melihat atau bahkan mengubah pengaturan akun pengguna lain.

Kasus serupa juga sering terjadi pada transaksi, seperti pembelian atau pemesanan. Misalnya, jika seorang pengguna melihat bahwa ID transaksinya adalah 19346, ia mungkin dapat mengakses informasi transaksi lain (misalnya 19345, 19347, dan seterusnya) hanya dengan mengubah angka ID tersebut.

Baca Juga: Memahami OWASP Top 10, Standar Keamanan Website Dunia

Cara Mencegah Insecure Direct Object References

Menggunakan angka acak untuk mereferensikan objek, daripada menetapkannya secara berurutan, dapat sedikit mengurangi risiko Insecure Direct Object References (IDOR), tetapi tidak sepenuhnya menghilangkan masalah ini. Misalnya, jika semua pengguna diberikan ID dengan sembilan digit, seorang penyerang masih dapat melakukan serangan brute force dengan mencoba berbagai kombinasi angka hingga menemukan ID yang valid.

Bahkan metode pembuatan user ID yang memiliki tingkat keacakan tinggi, seperti Universally Unique Identifiers (UUIDs), bukanlah solusi sempurna untuk mencegah IDOR. Jika daftar user ID sebuah perusahaan bocor, penyerang masih dapat mengeksploitasi celah tersebut selama aplikasi web tidak menerapkan kontrol akses dengan baik. Oleh karena itu, diperlukan pendekatan yang lebih kuat untuk benar-benar menghentikan kerentanan IDOR.

Kabar baiknya, ada beberapa cara yang dapat digunakan untuk mencegah IDOR. Berikut ini adalah empat langkah yang dapat diterapkan oleh bisnis untuk mendeteksi dan mengatasi kerentanan ini.

1. Indirect Reference Maps

Dengan indirect reference map, aplikasi web tidak langsung menampilkan atau menggunakan referensi asli (misalnya, User ID) dalam URL atau parameter yang dapat diakses oleh pengguna. Sebagai gantinya, aplikasi akan menggantinya dengan referensi yang bersifat acak atau tersamarkan (obfuscated), sehingga lebih sulit ditebak oleh pihak yang tidak berwenang.

Contoh Perbandingan:

Tanpa Indirect Reference Map (referensi langsung, lebih rentan IDOR):

https://www.example.com/settings/user/8201

Dalam kasus ini, seseorang bisa mencoba mengganti angka 8201 dengan 8202, 8203, dan seterusnya untuk mengakses data pengguna lain.

Dengan Indirect Reference Map (referensi tidak langsung, lebih aman):

https://www.example.com/settings/user/e194da7f-3d74-48e9-ac49-4c72e1b02eeb

2. Fuzz Testing

Fuzz testing adalah pengujian perangkat lunak yang bertujuan menemukan bug dan kerentanan dalam aplikasi dengan memasukkan input yang acak atau tidak terduga. Aplikasi seharusnya dapat menangani input tersebut tanpa mengalami crash atau mengekspos informasi yang tidak sah. Perusahaan dapat mendeteksi (meskipun tidak mencegah) Insecure Direct Object Reference (IDOR) dengan melakukan fuzz testing pada URL dan query database mereka. 

Baca Juga: Authentication vs Authorization: Apa Perbedaannya dan Mengapa Penting?

3. Parameter Verification

Kemungkinan serangan Insecure Direct Object Reference (IDOR) dapat dikurangi jika aplikasi memverifikasi parameter yang diberikan oleh pengguna. Beberapa pemeriksaan yang dapat dilakukan meliputi:

  • Memverifikasi bahwa string memiliki panjang minimum dan maksimum yang sesuai.
  • Memverifikasi bahwa string tidak mengandung karakter yang tidak diperbolehkan.
  • Memverifikasi bahwa nilai numerik berada dalam batas minimum dan maksimum yang ditentukan.
  • Memverifikasi bahwa input memiliki tipe data yang benar (misalnya, string, angka, tanggal, dll).

4. Access Validation

Cara paling efektif untuk mencegah kerentanan dan serangan IDOR adalah dengan melakukan validasi akses. Jika penyerang mencoba memanipulasi referensi, sistem harus menolaknya. Verifikasi harus memastikan pengguna tidak memiliki kredensial yang sah.

Aplikasi web sebaiknya mengandalkan kontrol akses di sisi server, bukan di sisi klien, untuk mencegah manipulasi oleh penyerang. Aplikasi juga harus melakukan pemeriksaan di berbagai tingkat, termasuk pada data atau objek, guna memastikan tidak ada celah dalam proses keamanan.

Baca Juga: Dampak Serangan Siber terhadap Reputasi Bisnis & Kepercayaan Investor

Mencegah Insecure Direct Object Reference (IDOR) adalah langkah krusial dalam menjaga keamanan aplikasi web dan API. Dengan menerapkan metode seperti Indirect Reference Maps, Fuzz Testing, Parameter Verification, dan Access Validation, organisasi dapat meminimalkan risiko eksploitasi IDOR yang dapat membahayakan data pengguna dan sistem. Keamanan siber harus menjadi prioritas utama, terutama dalam menghadapi ancaman yang terus berkembang di dunia digital.

Untuk memastikan sistem Anda terlindungi dari kerentanan seperti IDOR, LOGIQUE menyediakan layanan cyber security profesional. Kami menyediakan jasa penetration testing (pentest), vulnerability assessment (VA), dan simulasi phishing. Dengan pengalaman luas di bidang keamanan aplikasi dan sistem, LOGIQUE siap membantu bisnis Anda mengidentifikasi serta menutup celah keamanan sebelum dimanfaatkan oleh pihak yang tidak bertanggung jawab. Hubungi LOGIQUE sekarang dan tingkatkan keamanan sistem Anda!

Feradhita NKD
Feradhita NKD

https://www.logique.co.id/blog/author/feradhita/

Hai! Saya adalah content writer berpengalaman dengan minat mendalam di dunia teknologi. Saya senang menjelajahi tren terbaru di dunia IT, pentest, keamanan siber, dan menerjemahkan informasi teknis menjadi tulisan yang menarik. Dengan fokus pada kebutuhan audiens dan penggunaan bahasa sederhana, saya berusaha menyajikan informasi kompleks dengan cara yang mudah dipahami.