Apa itu OWASP?
OWASP (Open Web Application Security Project) adalah organisasi non-profit yang menyediakan panduan, tools, dan resources untuk keamanan aplikasi web. Salah satu kontribusi terpentingnya adalah OWASP Top 10 — daftar 10 risiko keamanan web paling kritis.
OWASP Top 10 (2021)
- A01: Broken Access Control — User bisa mengakses resource yang seharusnya tidak boleh
- A02: Cryptographic Failures — Kegagalan dalam melindungi data sensitif dengan enkripsi
- A03: Injection — Input berbahaya dieksekusi sebagai kode (SQL, command, dll.)
- A04: Insecure Design — Arsitektur aplikasi yang tidak mempertimbangkan keamanan
- A05: Security Misconfiguration — Konfigurasi default yang tidak aman
- A06: Vulnerable Components — Menggunakan library/framework dengan vulnerability yang diketahui
- A07: Auth Failures — Kelemahan dalam autentikasi dan session management
- A08: Data Integrity Failures — Kegagalan memverifikasi integritas data dan software
- A09: Logging Failures — Logging dan monitoring yang tidak memadai
- A10: SSRF — Server-Side Request Forgery, server dimanipulasi untuk membuat request ke resource internal
Contoh Broken Access Control
// Contoh vulnerability: IDOR (Insecure Direct Object Reference)
// User A bisa akses data User B hanya dengan mengubah ID di URL
GET /api/users/123/profile // User A melihat profil sendiri
GET /api/users/456/profile // User A melihat profil User B!
// Fix: selalu validasi ownership
app.get("/api/users/:id/profile", (req, res) => {
if (req.params.id !== req.user.id) {
return res.status(403).json({ error: "Forbidden" });
}
// ... lanjutkan proses
});
Contoh Security Misconfiguration
// Jangan biarkan konfigurasi default di production
// Contoh: debug mode aktif
APP_DEBUG=true // BAHAYA di production!
APP_DEBUG=false // Benar untuk production
// Contoh: default credentials
DB_USERNAME=root
DB_PASSWORD= // Password kosong!
Update 2024: Draft OWASP Top 10 2025
OWASP Top 10 di-refresh setiap 3-4 tahun. Sorotan utama dari edisi 2021 → 2025 draft (per 2024):
- A04 Insecure Design resmi jadi kategori sendiri di 2021 — bukan hanya bug implementasi, tapi keputusan arsitektur yang salah (contoh: password reset pakai security question yang bisa ditebak dari sosmed). Inilah kenapa threat modeling (STRIDE) jadi krusial.
- A10 SSRF naik ke Top 10 pertama kalinya di 2021 karena insiden Capital One dan banyak bounty report.
- Data draft 2024 menunjukkan supply chain attacks (A08) makin dominan — log4shell, xz-utils, npm package hijack.
Mapping ke Pelajaran di Kategori Ini
- A01 Broken Access Control → Session Management, API Auth Patterns, Cookie Security
- A02 Cryptographic Failures → HTTPS/TLS, Encryption vs Hashing, Password Hashing
- A03 Injection → SQL/NoSQL/Command/Template Injection, XSS (3 lessons), XXE
- A04 Insecure Design → Threat Modeling (STRIDE), Mindset Keamanan
- A05 Security Misconfiguration → Security Headers Lengkap, Server Hardening, Env Secrets
- A06 Vulnerable Components → Dependency Vulnerabilities, CI/CD Security
- A07 Auth Failures → JWT Security, OAuth Security, Rate Limiting
- A08 Data Integrity → Insecure Deserialization, Subresource Integrity, Prototype Pollution
- A09 Logging Failures → Security Logging, Incident Response
- A10 SSRF → SSRF Attack
Menggunakan OWASP sebagai Panduan
OWASP Top 10 bukan checklist lengkap, melainkan titik awal. Gunakan sebagai panduan untuk memprioritaskan area keamanan yang harus diperhatikan dalam setiap project. Di pelajaran-pelajaran selanjutnya, kita akan membahas setiap kategori secara mendalam.