Di dunia keamanan aplikasi, OWASP (Open Web Application Security Project) memainkan peran penting dalam menyediakan panduan dan alat untuk melindungi aplikasi dari berbagai ancaman. Berbagai inisiatif di dalamnya bahkan dituangkan ke dalam kebijakan pengembangan aplikasi korporat, dan organisasi. Salah satu project OWASP yang paling terkenal yakni OWASP Top 1o, yakni rangkuman kerentanan aplikasi web paling kritis dan umum. Setiap empat tahun semenjak tahun 2017 OWASP telah merangkum kerentanan-kerentanan tersebut. Paling terakhir adalah OWASP Top 10 2021, dan pada semester pertama 2025 akan ada pembaharuan. Apa saja yang termasuk ke dalam daftar tersebut ?
Baca Juga: STRIDE Threat Modelling dalam Generative AI
OWASP adalah sebuah organisasi nirlaba yang didedikasikan untuk meningkatkan keamanan perangkat lunak. Organisasi ini menyediakan berbagai sumber daya, termasuk panduan, alat, dan pelatihan, untuk membantu pengembang, profesional keamanan, dan organisasi dalam mengidentifikasi dan mengatasi kerentanan keamanan di aplikasi mereka. OWASP Top 10 adalah salah satu inisiatif utamanya, yang berfungsi sebagai referensi standar untuk kerentanan aplikasi web. Berikut adalah daftar OWASP Top 10 versi terbaru beserta penjelasan singkat dan langkah-langkah perbaikan untuk masing-masing kerentanan berdasarkan OWASP Top 10 2021:
1. Broken Access Control (A01-2021)
Hal ini terjadi ketika pengguna tidak diizinkan mengakses sumber daya atau fungsionalitas yang seharusnya tidak mereka miliki aksesnya.
Perbaikan:
Implementasikan kontrol akses berbasis peran (Role Based Access Control – RBAC) dan pastikan setiap permintaan diotorisasi dengan benar di setiap lapisan aplikasi.
2. Cryptographic Failures (A02-2021)
Kerentanan ini terjadi ketika aplikasi tidak melindungi data sensitif dengan benar, baik saat data disimpan (at rest), saat digunakan (at use), maupun saat ditransfer (in motion) melalui enkripsi.
Perbaikan:
Menggunakan enkripsi yang kuat untuk data yang disimpan dan yang sedang ditransfer. Terapkan prinsip minimalisasi data dan pastikan data sensitif tidak tercatat dalam log (sanitasi data).
3. Injection (A03-2021)
Merupakan suatu kerentanan yang terjadi ketika data yang tidak valid dikirim ke interpreter sebagai bagian dari perintah atau query. Contohnya adalah SQL Injection, di mana penyerang dapat mengeksploitasi celah untuk menjalankan perintah SQL berbahaya.
Perbaikan:
Gunakan pernyataan yang telah diparameterisasi atau query yang disiapkan, hindari menyisipkan data pengguna secara langsung ke dalam query, dan validasi serta sanitasi input dengan ketat.
4. Insecure Design (A04-2021)
Merupakan suatu masalah yang muncul dari desain sistem atau aplikasi yang tidak mempertimbangkan prinsip-prinsip keamanan secara menyeluruh. Hal ini berarti bahwa keamanan tidak diintegrasikan dalam tahap desain sistem, melainkan ditambahkan sebagai afterthought atau setelah aplikasi dikembangkan. Akibatnya, sistem atau aplikasi mungkin memiliki arsitektur atau fitur yang tidak aman, membuka pintu bagi berbagai kerentanan dan potensi serangan.
Perbaikan:
Mulailah dengan merancang sistem atau aplikasi dengan mempertimbangkan prinsip keamanan sejak awal. Gunakan model ancaman untuk mengidentifikasi dan memahami potensi risiko.
5. Security Misconfiguration (A05-2021)
Kerentanan ini merujuk pada konfigurasi keamanan yang buruk atau tidak memadai yang dapat membuka celah bagi penyerang.
Perbaikan:
Terapkan konfigurasi default yang aman, lakukan review keamanan secara berkala, dan pastikan hanya komponen yang diperlukan yang diaktifkan.
6. Vulnerabile & Outdated Components (A06-2021)
Kerentanan ini berkaitan dengan penggunaan pustaka atau komponen pihak ketiga yang memiliki kerentanan yang diketahui.
Perbaikan:
Selalu perbarui komponen ke versi terbaru dan gunakan alat untuk memindai ketergantungan untuk kerentanan yang diketahui.
7. Identification & Authentication Failures (A07-2021)
Kerentanan ini muncul ketika sistem otentikasi dan sesi tidak diimplementasikan dengan benar, memungkinkan penyerang untuk mengambil alih akun atau mengeksploitasi sesi pengguna.
Perbaikan:
Implementasikan kontrol otentikasi yang kuat, gunakan hash password yang aman dan algoritma enkripsi, serta pastikan sesi pengguna berakhir secara aman setelah logout.
8. Software & Data Integrity Failures (A08-2021)
Kerentanan ini muncul ketika aplikasi tidak memverifikasi dengan cukup baik keaslian dan integritas perangkat lunak serta data yang digunakannya. Hal ini dapat mengakibatkan berbagai risiko, termasuk eksekusi kode berbahaya, modifikasi data secara tidak sah, atau kerentanan lainnya yang dapat dieksploitasi oleh penyerang.
Perbaikan:
Mengunduh dan menggunakan pustaka atau komponen perangkat lunak dari sumber yang tidak terpercaya tanpa memverifikasi keaslian atau integritasnya.
9. Security Logging & Monitoring Failures (A09-2021)
Kerentanan ini muncul ketika aplikasi tidak mencatat atau memantau aktivitas yang mencurigakan dengan cukup baik, menghambat deteksi dan respons terhadap insiden keamanan.
Perbaikan:
Implementasikan logging yang komprehensif, monitor aktivitas secara real-time, dan buat rencana respons insiden untuk menangani potensi ancaman dengan cepat.
10. Server-side Request Forgery (A10-2021)
Server-Side Request Forgery (SSRF) adalah jenis kerentanan keamanan aplikasi web di mana penyerang dapat memanipulasi server aplikasi untuk membuat permintaan HTTP ke target yang tidak diizinkan. Dalam serangan SSRF, penyerang memanfaatkan kelemahan dalam server untuk mengirimkan permintaan ke server atau layanan lain yang seharusnya tidak dapat diakses secara langsung oleh penyerang.
Perbaikan:
Pastikan bahwa semua input pengguna yang digunakan dalam permintaan internal divalidasi dengan ketat. Hindari mengizinkan parameter pengguna yang dapat memanipulasi URL atau alamat IP yang dituju oleh server.