OWASP
OWASP (Open Worldwide Application Security Project)
- OWASP adalah organisasi nirlaba internasional
- Fokus pada peningkatan keamanan aplikasi web
- Menyediakan dokumentasi, tools, dan standar keamanan yang terbuka (open)
- Digunakan secara luas oleh developer, security engineer, dan auditor
Penjelasan: OWASP tidak menjual produk keamanan. Tujuan utamanya adalah edukasi dan awareness. Salah satu kontribusi OWASP yang paling terkenal adalah OWASP Top 10, yaitu daftar 10 risiko keamanan paling kritis pada aplikasi web.
OWASP Top 10
- Daftar ancaman keamanan aplikasi web paling umum dan berbahaya
- Diperbarui secara berkala berdasarkan data nyata
- Digunakan sebagai baseline (standar dasar) keamanan web application
Penjelasan: OWASP Top 10 bukan daftar lengkap semua serangan, tetapi fokus pada risiko yang paling sering terjadi dan berdampak besar. Cocok untuk developer pemula hingga profesional sebagai panduan awal security.
A01: Broken Access Control
- User bisa mengakses data atau fitur yang tidak seharusnya
- Contoh: user biasa bisa mengakses halaman admin
Penjelasan: Masalah ini terjadi karena pengecekan hak akses tidak konsisten atau hanya dilakukan di frontend. Semua validasi akses harus dilakukan di server.
A02: Cryptographic Failures
- Kesalahan dalam enkripsi atau perlindungan data sensitif
- Contoh: password disimpan tanpa hashing
Penjelasan: Data sensitif seperti password, token, dan informasi pribadi harus dienkripsi dan dilindungi dengan algoritma yang aman.
A03: Injection
- Data berbahaya disisipkan ke query atau command
- Contoh: SQL Injection, Command Injection
Penjelasan: Injection terjadi karena input user langsung digunakan tanpa validasi atau sanitasi. Gunakan parameterized query dan ORM.
A04: Insecure Design
- Desain aplikasi sudah lemah sejak awal
- Tidak mempertimbangkan skenario serangan
Penjelasan: Keamanan bukan hanya soal code, tapi juga arsitektur dan alur aplikasi. Threat modeling sangat penting pada tahap desain.
A05: Security Misconfiguration
- Konfigurasi server atau aplikasi tidak aman
- Contoh: error detail ditampilkan ke user, default credential
Penjelasan: Banyak serangan terjadi bukan karena bug code, tapi karena konfigurasi yang lalai atau lupa diperketat.
A06: Vulnerable and Outdated Components
- Menggunakan library atau dependency yang sudah rentan
- Tidak pernah update package
Penjelasan: Dependency pihak ketiga adalah bagian dari aplikasi. Jika library rentan, aplikasi ikut rentan.
A07: Identification and Authentication Failures
- Proses login dan session tidak aman
- Contoh: session tidak expired, brute force login
Penjelasan: Authentication yang lemah memungkinkan attacker menyamar sebagai user lain.
A08: Software and Data Integrity Failures
- Aplikasi menjalankan code atau data yang tidak dipercaya
- Contoh: update tanpa verifikasi
Penjelasan: Supply chain attack termasuk dalam kategori ini. Pastikan integritas data dan code selalu diverifikasi.
A09: Security Logging and Monitoring Failures
- Tidak ada log atau monitoring keamanan
- Serangan tidak terdeteksi
Penjelasan: Tanpa logging yang baik, serangan bisa terjadi berulang tanpa disadari.
A10: Server-Side Request Forgery (SSRF)
- Server dipaksa mengakses resource internal
- Contoh: attacker meminta server mengakses localhost atau internal API
Penjelasan: SSRF berbahaya karena bisa membuka akses ke sistem internal yang seharusnya tidak bisa diakses dari luar.
Ringkasan
- OWASP Top 10 adalah panduan fundamental keamanan web
- Tidak fokus pada tools, tapi pola risiko
- Wajib dipahami oleh semua web developer
- Cocok sebagai checklist awal sebelum aplikasi dirilis