OWASP
OWASP (Open Web Application Security Project) adalah organisasi nonprofit yang berfokus pada peningkatan keamanan aplikasi web. OWASP menyediakan panduan, tools, dokumentasi, dan best practice untuk membantu developer, DevOps, dan security engineer membangun aplikasi yang aman.
Tujuan utama OWASP adalah:
- Memberikan edukasi tentang keamanan aplikasi
- Menyediakan resource open-source
- Mengurangi risiko kerentanan aplikasi
OWASP Top 10 adalah daftar 10 risiko keamanan aplikasi web paling kritis. Versi terbaru (2021) mencakup:
- Broken Access Control
- Cryptographic Failures
- Injection
- Insecure Design
- Security Misconfiguration
- Vulnerable and Outdated Components
- Identification and Authentication Failures
- Software and Data Integrity Failures
- Security Logging and Monitoring Failures
- Server-Side Request Forgery (SSRF)
OWASP Top 10 bukan standar wajib, namun menjadi acuan global dalam AppSec.
Cara Implementasi dan Konfigurasi OWASP
Penerapan dalam Development
1. Secure Coding Practices
- Gunakan parameterized queries untuk mencegah SQL Injection.
- Validasi input (server-side dan client-side).
- Gunakan hashing + salting untuk password (misal: bcrypt).
2.Dependency Scanning
Gunakan tools OWASP seperti:
- OWASP Dependency-Check
- OWASP CycloneDX SBOM
Perintah Dependency-Check dasar:
dependency-check --project projectku --scan .
Penerapan dalam Infrastructure / DevOps
Hardening & Security Configuration
- Disable default credentials
- Gunakan HTTPS dan HSTS
- Konfigurasi firewall (WAF)
OWASP ModSecurity Core Rule Set (CRS)
Contoh konfigurasi ModSecurity + OWASP CRS (nginx):
modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main.conf;
Isi main.conf:
Include /usr/local/owasp-modsecurity-crs/crs-setup.conf
Include /usr/local/owasp-modsecurity-crs/rules/*.conf
Konfigurasi OWASP ZAP Menggunakan Docker
OWASP ZAP menyediakan image resmi di Docker Hub:
owasp/zap2docker-stable
Pull Image:
docker pull owasp/zap2docker-stable
Mode GUI (Jika mau buka tampilan ZAP lewat X11 / VNC)
docker run -u zap -p 8080:8080 -p 8090:8090 \
-e DISPLAY=$DISPLAY \
owasp/zap2docker-stable zap.sh
Mode Headless (Tanpa GUI) untuk Automation / DAST Scan
docker run --rm -v $(pwd):/zap/wrk \
owasp/zap2docker-stable zap-baseline.py \
-t https://target.com \
-r report.html
Full Scan (lebih agresif)
docker run --rm -v $(pwd):/zap/wrk \
owasp/zap2docker-stable zap-full-scan.py \
-t https://target.com \
-r fullscan.html
Jalankan ZAP API Server
Jika kamu mau kontrol ZAP via API (misal untuk pipeline atau automation):
docker run -u zap -p 8080:8080 -p 8090:8090 \
owasp/zap2docker-stable zap.sh \
-daemon \
-port 8080 \
-host 0.0.0.0 \
-config api.key=12345
Contoh docker-compose untuk OWASP ZAP
version: "3.8"
services:
zap:
image: owasp/zap2docker-stable
container_name: owasp-zap
ports:
- "8080:8080"
- "8090:8090"
command: >
zap.sh -daemon
-port 8080
-host 0.0.0.0
-config api.key=12345
Penerapan dalam CI/CD
Integrasikan ke pipeline:
- Static Application Security Testing (SAST)
- Dynamic Application Security Testing (DAST)
- Dependency scanning
- Container security scanning
Contoh GitLab CI:
security_scan:
script:
- dependency-check --scan .
- zap-baseline.py -t https://aplikasi.example.com
Tools Resmi OWASP
Berikut beberapa tools yang umum digunakan:
| Tool | Fungsi |
|---|---|
| OWASP ZAP | DAST scanner |
| Dependency-Check | Cek dependency rentan |
| AMASS | Information Gathering |
| CRS | ModSecurity rule set |
| Juice Shop | Dummy vulnerable app untuk belajar |
Rekomendasi Penerapan OWASP untuk Organisasi
- Gunakan OWASP Top 10 sebagai baseline security
- Lakukan SAST + DAST secara berkala
- Terapkan Secure SDLC
- Gunakan WAF dengan OWASP CRS
- Lakukan pelatihan developer mengenai secure coding
Kesimpulan
OWASP adalah framework penting dalam membangun aplikasi aman. Dengan mengikuti panduan Top 10, menggunakan tools OWASP, dan mengintegrasikan keamanan ke dalam SDLC, organisasi dapat mengurangi risiko serangan secara signifikan.