OWASP Top 10 Tahun 2025
OWASP Top 10 (Open Web Application Security Project) adalah daftar sepuluh risiko keamanan aplikasi web paling kritis di dunia.
Tujuannya untuk meningkatkan kesadaran dan memberi panduan bagi pengembang, penguji, dan organisasi agar memahami serta mencegah kerentanan umum pada aplikasi web.
Daftar ini disusun berdasarkan data nyata dari ribuan organisasi di seluruh dunia dan diperbarui secara berkala sesuai dengan tren ancaman terbaru.
A01: Broken Access Control
Masalah:
Pengguna dapat mengakses data atau fungsi yang seharusnya dibatasi.
Contoh: Mengubah URL untuk membuka akun orang lain, eskalasi hak akses, atau manipulasi token/cookie.
Pencegahan:
Gunakan kontrol akses di sisi server, terapkan prinsip “deny by default”, verifikasi kepemilikan data, dan gunakan sistem kontrol akses terpusat.
A02: Cryptographic Failures
Masalah:
Data tidak terenkripsi atau menggunakan algoritma lemah (MD5, SHA1, DES).
Contoh: HTTPS tidak digunakan, kunci kripto disimpan di kode sumber.
Pencegahan:
Gunakan TLS/HTTPS, enkripsi data saat disimpan dan ditransmisikan, gunakan algoritma modern (AES-GCM), dan kelola kunci secara aman.
A03: Injection
Masalah:
Input pengguna disisipkan ke query tanpa validasi sehingga bisa menjalankan perintah berbahaya (SQL, OS, LDAP injection).
Pencegahan:
Gunakan parameterized queries, validasi input di sisi server, hindari konkatenasi string dalam query, dan lakukan review serta pengujian otomatis (SAST/DAST/IAST).
A04: Insecure Design
Masalah:
Desain sistem tidak memperhitungkan keamanan sejak awal.
Contoh: Tidak ada threat modelling, logika bisnis lemah, atau tidak ada perlindungan anti-bot.
Pencegahan:
Integrasikan keamanan dalam SDLC, gunakan pola desain aman, lakukan threat modelling, dan uji logika bisnis terhadap penyalahgunaan.
A05: Security Misconfiguration
Masalah:
Kesalahan konfigurasi server, framework, atau layanan cloud.
Contoh: Password default, port terbuka, header keamanan hilang, software tidak di-update.
Pencegahan:
Gunakan konfigurasi minimal, hapus layanan tak perlu, patch rutin, aktifkan header keamanan (CSP, HSTS), dan gunakan otomasi untuk deteksi kesalahan konfigurasi.
A06: Vulnerable and Outdated Components
Masalah:
Menggunakan komponen perangkat lunak lama atau tidak diperbarui (library, API, sistem operasi).
Pencegahan:
Gunakan sistem manajemen patch, inventarisasi semua dependensi, gunakan alat seperti OWASP Dependency Check, dan hapus komponen tak terpakai.
A07: Identification & Authentication Failures
Masalah:
Mekanisme login dan manajemen sesi lemah.
Contoh: Password default, brute-force login tanpa batas, MFA tidak diterapkan, session ID tidak aman.
Pencegahan:
Gunakan MFA, batasi percobaan login, ikuti panduan NIST 800-63b, gunakan session manager yang aman, dan akhiri sesi dengan benar saat logout.
A08: Software & Data Integrity Failures
Masalah:
Mengandalkan komponen eksternal tanpa verifikasi integritas atau pipeline CI/CD yang tidak aman.
Contoh: Update otomatis tanpa tanda tangan digital, penggunaan library dari sumber tidak terpercaya.
Pencegahan:
Gunakan tanda tangan digital, verifikasi integritas data, amankan pipeline CI/CD, dan gunakan hanya dependensi dari sumber resmi.
A09: Security Logging & Monitoring Failures
Masalah:
Tidak ada pencatatan aktivitas atau pemantauan serangan.
Contoh: Login gagal tidak tercatat, tidak ada sistem alert, log tidak dikonsolidasi.
Pencegahan:
Log semua aktivitas penting (login, transaksi), gunakan format log standar, pantau log secara real-time, dan siapkan rencana tanggap insiden (NIST 800-61r2).
A10: Server-Side Request Forgery (SSRF)
Masalah:
Aplikasi mengizinkan pengguna menentukan URL untuk diakses oleh server tanpa validasi.
Contoh: Server digunakan untuk mengakses sistem internal atau metadata cloud.
Pencegahan:
Batasi akses jaringan (“deny by default”), validasi semua URL input, gunakan allow list host, blokir akses ke IP internal, dan pantau lalu lintas keluar.
Kesimpulan
OWASP Top 10 adalah panduan utama untuk membangun aplikasi web yang aman.
Dengan memahami dan menerapkan langkah-langkah pencegahan di atas, pengembang dapat:
- Mengurangi risiko kebocoran data,
- Melindungi reputasi organisasi,
- Serta memastikan kepatuhan terhadap standar keamanan global.
