Memahami mengapa misconfiguration adalah penyebab utama breach cloud dan bagaimana CSPM menutupnya: Security Hub, Defender for Cloud, GCP Security Command Center, benchmark CIS sebagai baseline, triage temuan berdasarkan eksposur nyata, serta remediation otomatis yang menjaga posture tetap hijau

Setelah di episode 6 kita mengunci data dengan KMS dan klasifikasi, ada pertanyaan jujur yang harus dijawab: bagaimana memastikan ribuan resource lain di organisasi juga mengikuti standar yang sama? Jawaban manusia — audit manual berkala — kalah cepat dari laju provisioning. Di sinilah CSPM (Cloud Security Posture Management) bekerja.
Mengapa topik ini penting? Karena mayoritas breach cloud modern bukan hasil eksploitasi zero-day, melainkan misconfigurasi sederhana: bucket publik, database tanpa enkripsi, SG terbuka ke dunia, log dimatikan. CSPM menemukan semuanya secara kontinu — pekerjaan kalian bergeser dari mencari masalah ke memutuskan prioritas dan memperbaiki.
Tiga alasan struktural kenapa misconfigurasi tak terhindarkan tanpa otomasi:
Konsekuensinya: postur keamanan adalah keadaan yang membusuk, bukan status yang sekali diraih. CSPM adalah instrumen pengukur kontinunya.
Setiap provider punya layanan native; vendor pihak ketiga menyatukan lintas-cloud:
| Tool | Ekosistem | Ciri Khas |
|---|---|---|
| AWS Security Hub | AWS | Integrasi GuardDuty/Inspector/Macie, standard CIS/PCI |
| Microsoft Defender for Cloud | Azure (+ multi-cloud) | Secure Score, rekomendasi actionable |
| GCP Security Command Center | GCP | Deteksi anomaly + posture, deep GCP integration |
| Prowler (open source) | Multi-cloud | CLI, murah, cocok untuk CI dan lab |
| Wiz / Prisma Cloud | Multi-cloud | CNAPP penuh — dibahas khusus di episode 21 |
Untuk series ini kita pakai kombinasi Security Hub + Prowler: yang satu native production-grade, satunya open source yang bisa kalian jalankan gratis di lab.
CIS Benchmarks adalah checklist hardening yang diadopsi hampir semua tool CSPM sebagai standard bawaan. Struktur logisnya: setiap kontrol punya ID, deskripsi, remediation command, dan level (1 = dasar non-intrusif, 2 = lebih ketat berdampak fungsi).
Contoh beberapa kontrol CIS AWS yang paling sering gagal:
| ID Kontrol | Apa yang Dicek |
|---|---|
| 1.12 | Root account tanpa MFA hardware |
| 2.1.x | CloudTrail tidak multi-region / belum aktif di semua akun |
| 2.2.x | Log file validation dimatikan |
| 3.x | Tidak ada alert untuk aktivitas IAM mencurigakan |
| 4.x | SG dengan ingress 0.0.0.0/0 pada port administratif |
| 5.x | EBS snapshot publik |
Nilai strategis CIS: kalian tidak perlu berdebat "apa yang aman" — benchmark sudah jadi bahasa bersama antara engineer, auditor, dan manajemen.
Jalankan Prowler di akun sandbox kalian:
prowler aws --region ap-southeast-1 --severity critical highOutput ringkasnya menampilkan check yang lolos dan gagal beserta severity. Lalu aktifkan Security Hub agar monitoring kontinu:
aws securityhub enable-security-hub \
--enable-default-standards \
--region ap-southeast-1
aws securityhub get-findings \
--filters '{"SeverityLabel":[{"Comparison":"EQUALS","Value":"CRITICAL"}],"RecordState":[{"Comparison":"EQUALS","Value":"ACTIVE"}]}' \
--max-items 20Fokuskan energi pada finding ACTIVE + CRITICAL/HIGH — sisanya jangan biarkan menumpuk menjadi kebisingan yang membuat kalian kebal terhadap alert sungguhan.
Severity tool tidak tahu konteks bisnis kalian. Framework triase yang pragmatis — urutan pertanyaannya penting:
Hasil triage jatuh ke salah satu dari empat tindakan: fix sekarang, jadwalkan, terima risiko dengan dokumentasi, atau ubah arsitektur. Yang tidak boleh: menonaktifkan kontrol CSPM hanya agar angka jadi hijau.
Untuk kelas temuan yang deterministik, remediation manual adalah pemborosan. Pola standar: EventBridge menangkap event → Lambda memperbaiki → notifikasi ke Slack/tiket.
Contoh auto-remediate bucket yang tiba-tiba jadi publik:
import boto3, os
def handler(event, context):
detail = event["detail"]
if detail.get("eventName") != "PutBucketPolicy":
return
bucket = detail["requestParameters"]["bucketName"]
s3 = boto3.client("s3")
# kunci kembali: cabut semua konfigurasi publik
s3.put_public_access_block(
Bucket=bucket,
PublicAccessBlockConfiguration={
"BlockPublicAcls": True, "IgnorePublicAcls": True,
"BlockPublicPolicy": True, "RestrictPublicBuckets": True,
},
)
sns = boto3.client("sns")
sns.publish(
TopicArn=os.environ["ALERT_TOPIC"],
Message=f"[AUTO-REMEDIATED] {bucket} dikembalikan ke private",
Subject="CSPM auto-fix: public bucket blocked",
)Event rule-nya difilter ke API call PutBucketPolicy/PutBucketAcl sehingga Lambda hanya bangun saat percobaan pembukaan publik terjadi. Pola lengkapnya (termasuk guardrail anti-loop) kita perdalam di episode 22 tentang AI-assisted remediation.
Important
Auto-remediation hanya untuk aksi idempoten dan aman (menutup akses publik, mematikan logging yang dimatikan). Jangan auto-delete resource produksi — satu event liar bisa menjadi insiden baru.
Inti yang harus dibawa pulang:
Di episode 8 selanjutnya kita beralih dari postur ke perilaku: cloud threat detection & monitoring — CloudTrail, GuardDuty, VPC Flow Logs, integrasi SIEM, dan detection rules pertama kalian. Sampai jumpa!