Apa itu Penetration Testing?
Penetration testing (pentest) adalah simulasi serangan terhadap sistem untuk menemukan vulnerability sebelum penyerang yang sebenarnya menemukannya. Sebagai developer, memahami dasar pentest membantu menulis kode yang lebih aman.
Metodologi Pentest
Salah satu standar yang banyak digunakan adalah PTES (Penetration Testing Execution Standard) yang mendefinisikan tahapan berikut:
- Reconnaissance — Mengumpulkan informasi tentang target
- Scanning — Mencari port, service, dan vulnerability
- Exploitation — Mencoba mengeksploitasi vulnerability yang ditemukan
- Post-exploitation — Menilai dampak dan mengumpulkan bukti
- Reporting — Mendokumentasikan temuan dan rekomendasi
Tools yang Perlu Diketahui Developer
1. Burp Suite
Proxy tool untuk mengintercepte dan memodifikasi HTTP request:
// Burp Suite bisa:
// - Intercept request/response
// - Modify parameter sebelum dikirim
// - Replay request dengan modifikasi
// - Scan otomatis untuk vulnerability
// Contoh: test IDOR
// Original: GET /api/users/123/profile
// Modified: GET /api/users/456/profile
// Jika bisa akses profil user lain → IDOR vulnerability!
2. OWASP ZAP
# OWASP ZAP — free alternative to Burp Suite
# Bisa dijalankan sebagai scanner otomatis
# Quick scan
zap-cli quick-scan https://target.com
# Full scan
zap-cli active-scan https://target.com
# API scan
zap-cli openapi-scan https://target.com/api/docs
3. Browser DevTools
// DevTools sudah cukup untuk banyak testing dasar:
// Network tab: lihat semua request dan response
// Console: test JavaScript injection
// Application tab: inspect cookies, localStorage, sessionStorage
// Sources tab: debug JavaScript, set breakpoints
// Contoh testing:
// 1. Inspect hidden form fields
// 2. Modify request parameters
// 3. Check security headers di response
// 4. Test XSS di console
4. cURL untuk Testing
# Test endpoint tanpa auth
curl -v https://target.com/api/admin/users
# Test SQL injection di parameter
curl "https://target.com/api/users?id=1%27%20OR%201=1--"
# Test CORS
curl -H "Origin: https://evil.com" -v https://target.com/api/data
# Test security headers
curl -I https://target.com
Self-Testing Checklist untuk Developer
- Authentication — Bisa login tanpa password? Bisa bypass 2FA?
- Authorization — Bisa akses resource user lain? Bisa akses admin endpoint?
- Input validation — Apa yang terjadi jika kirim data yang tidak expected?
- Error handling — Apakah error mengekspos informasi sensitif?
- File upload — Bisa upload file berbahaya?
- Rate limiting — Bisa brute force tanpa diblokir?
Etika dan Legalitas
Hanya lakukan pentest pada sistem yang kamu punya izin untuk testing. Pentest tanpa izin adalah ilegal. Gunakan environment testing atau bug bounty program yang sah.