
Hari 50: Apa Itu Prowler? Scan Keamanan AWS untuk Pemula
Prowler itu seperti "audit kesehatan" untuk akun AWS kamu. Cek 328 hal — dari IAM yang nggak pakai MFA sampai S3 bucket yang terbuka ke publik. Ini cerita saya scan akun AWS pertama kali dan kaget 132 temuan.
Kamu punya akun AWS. Bikin VPC, S3 bucket, IAM user, EC2 instance. Semua jalan. Tapi — apakah aman?
Itu pertanyaan yang Prowler jawab.
Prowler Itu Apa Sih?
Bayangkan kamu sewa rumah. Sebelum pindah, kamu minta tukang cek: pintu kunci nggak? Jendela ada kunci nggak? Pagar aman nggak?
Prowler itu tukangnya — tapi untuk AWS.
Prowler cek 328 hal di akun AWS kamu, semuanya berdasarkan CIS Benchmarks (semacam standar "best practice" keamanan cloud yang diakui industri). Kalau ada yang nggak sesuai standar, dia kasih laporan merah.
Beberapa contoh cekannya:
- IAM user admin tapi nggak pakai MFA? ❌
- S3 bucket terbuka ke internet? ❌
- CloudTrail (audit log AWS) mati? ❌
- Security group buka semua port ke 0.0.0.0/0? ❌
Apa Bedanya Prowler dengan Checkov?
Di hari-hari sebelumnya saya pakai Checkov untuk scan Terraform. Keduanya "scanner keamanan", tapi caranya beda:
| Checkov | Prowler | |
|---|---|---|
| Scan apa? | File Terraform (kode infrastruktur) | Akun AWS langsung (live) |
| Kapan? | Sebelum deploy (saat nulis kode) | Setelah deploy (cek kondisi nyata) |
| Analogi | Cek blueprint rumah | Inspeksi rumah yang sudah dibangun |
Checkov: "Berdasarkan blueprint, kunci pintunya di mana?"
Prowler: "Saya datang ke rumahnya, pintu depan nggak dikunci."
Keduanya saling melengkapi. Checkov mencegah kamu nulis config yang salah. Prowler memastikan yang berjalan di AWS beneran sesuai standar.
Gimana Cara Pakainya?
Install, lalu jalankan satu perintah:
# Install
brew install prowler
# Scan akun AWS (region Singapore)
prowler aws -f ap-southeast-1
Tunggu 2-3 menit. Prowler bikin laporan HTML + JSON. Buka HTML-nya di browser — kayak dashboard, semua findings terurut by severity.
Catatan: Prowler butuh AWS CLI sudah dikonfigurasi (
aws configure). Dia baca credentials dari~/.aws/credentials— nggak perlu kasih password manual.
Apakah Prowler Ada di Pipeline CI/CD?
Singkatnya: belum, dan itulah point-nya.
Prowler scan akun yang sudah live. Pipeline CI/CD (GitHub Actions) scan kode sebelum deploy. Mereka bekerja di fase berbeda:
[ Nulis kode ] → [ CI/CD: Checkov scan Terraform ] → [ Deploy ] → [ Prowler scan akun live ]
↑
Di sini Prowler masuk
Prowler cocok dijalankan terjadwal — misalnya seminggu sekali atau setiap kali ada perubahan infrastruktur. Bisa pakai cron job atau AWS Lambda untuk otomatisasi. Di challenge ini saya jalankan manual dulu, sehari-hari produksi pakai scheduled scan.
Hasil Scan Pertama Saya: 132 Temuan
| Hasil | Jumlah |
|---|---|
| ✅ PASS | 192 (58.5%) |
| ❌ FAIL | 132 (40.2%) |
Ya, 132 hal yang nggak sesuai standar. Akun AWS saya yang ternyata nggak seaman yang saya kira.
Yang paling sering bermasalah:
| Area | Temuan | Contoh |
|---|---|---|
| IAM | 44 | User admin tanpa MFA, nggak ada password policy |
| CloudWatch | 23 | Nggak ada alarm untuk perubahan network |
| S3 | 15 | Block Public Access belum diaktifkan |
| EC2 | 10 | Network ACL buka semua port |
| CloudFormation | 5 | Secrets di stack outputs (CRITICAL!) |
Yang Paling Mengejutkan: 4 CRITICAL
Prowler nemu 4 temuan CRITICAL — semua karena CloudFormation stack outputs yang nge-leak secrets. Ini stack lama dari 2021 (proyek Amplify yang udah lupa), tapi output-nya masih accessible.
Pelajaran: resource lama yang dilupakan = security debt. Cloud itu "out of sight out of mind". Kalau nggak di-scan berkala, lama-lama menumpuk.
Apa Selanjutnya?
Besok (Day 51) saya akan fix 3 temuan teratas:
- S3 Block Public Access → aktifkan
- IAM admin tanpa MFA → enable MFA
- CloudTrail → create trail
Setelah fix, re-scan dengan Prowler untuk verifikasi: apakah FAIL berubah jadi PASS?
Kenapa Ini Penting?
Banyak orang pikir "saya cuma belajar di sandbox, nggak ngapa-ngapain".
Tapi: sandbox yang terbuka ke internet tetap bisa jadi target. Bot scanner ** selalu scan range IP AWS 24/7. S3 bucket yang public bisa di-access siapa saja. IAM user tanpa MFA bisa di-brute force.
CSPM (Cloud Security Posture Management) = praktik rutin cek dan fix posture keamanan cloud kamu. Prowler adalah tools open-source terpopuler untuk AWS CSPM.
Repo
Semua code dan dokumentasi: https://github.com/stayrelevantid/chalange-devsecops
Diskusi & Komentar
Building a Tailscale Subnet Router on AWS with Terraform
Next ArticleHari 51: Fix 132 Temuan jadi 106 dengan 2 Perintah Saja
Artikel Terkait
Hari 20: Terraform + Checkov, 15 Celah IaC Ketahuan
Bikin infrastructure as code pakai Terraform, lalu scan dengan Checkov. Hasilnya 15 celah keamanan ketahuan — S3 tanpa enkripsi, security group terbuka ke dunia.
Hari 22: Pipeline IaC, Dua Scanner Barengan Gagal
Bikin workflow GitHub Actions khusus infrastructure security. Checkov dan Trivy IaC scan Terraform barengan. Hasilnya pipeline MERAH — security gate bekerja!
Hari 22 Bonus: Perbaikan Pipeline Gitleaks yang Merah Diam-diam
Pipeline Gitleaks merah sejak Day 14 karena flag --no-gitignore tidak pernah ada. Gitleaks detect scan git history, bukan working directory. Fix: hapus flag.