0Pricing
Cloud & IT Cert Prep · Pelajaran

Pemindaian Keamanan Infrastruktur sebagai Kode

Pindai Terraform, CloudFormation, dan bagan Helm dengan alat keamanan IaC (Checkov, tfsec) untuk menemukan kesalahan konfigurasi sebelum mencapai produksi.

Pemindaian Keamanan Infrastruktur sebagai Kode adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Ikhtisar Keamanan Infrastructure as Code

Alat Infrastructure as Code (IaC) seperti Terraform, AWS CloudFormation, Ansible, dan Helm memungkinkan infrastruktur didefinisikan dalam berkas konfigurasi yang dikendalikan versinya. Hal ini memberikan manfaat besar — keterulangan, kemudahan audit, dan otomatisasi — tetapi juga risiko keamanan yang kritis: kesalahan konfigurasi dalam berkas IaC menghasilkan infrastruktur yang tidak aman dalam skala besar. Satu modul Terraform yang salah konfigurasi dan di-deploy di 50 lingkungan akan menciptakan 50 sistem rentan secara bersamaan. Pemindaian keamanan IaC mengatasi hal ini dengan memeriksa berkas konfigurasi sebelum diterapkan, sehingga keamanan digeser lebih awal ke dalam alur kerja pengembang.

Kesalahan Konfigurasi IaC yang Umum

Alat pemindaian keamanan mencari kesalahan konfigurasi IaC yang paling umum ditemukan di lingkungan cloud dunia nyata: bucket S3 dengan akses publik yang diaktifkan atau tanpa enkripsi saat tersimpan; kelompok keamanan dengan aturan masuk 0.0.0.0/0 pada port sensitif (22, 3389, 1433); basis data tanpa enkripsi atau dengan aksesibilitas publik; kebijakan IAM dengan wildcard Resource atau Action *; CloudTrail yang dinonaktifkan di suatu wilayah; kunci KMS tanpa rotasi kunci; serta penyeimbang beban dengan pendengar HTTP, bukan HTTPS. Temuan ini sangat mirip dengan Checks yang dilakukan oleh tolok ukur keamanan cloud seperti CIS AWS Foundations.

# Dangerous Terraform: public S3 bucket + no encryption
resource 'aws_s3_bucket' 'data' {
  bucket = 'my-data-bucket'
  # Missing: server_side_encryption_configuration
  # Missing: aws_s3_bucket_public_access_block
}

Checkov: Kebijakan sebagai Kode untuk IaC

Checkov (oleh Bridgecrew/Prisma Cloud) adalah alat analisis statis sumber terbuka yang populer untuk IaC dan mendukung Terraform, CloudFormation, manifes Kubernetes, bagan Helm, serta Dockerfile. Alat ini dilengkapi lebih dari 1.000 kebijakan bawaan yang dipetakan ke tolok ukur CIS, GDPR, SOC 2, dan HIPAA. Menjalankan checkov -d . akan memindai semua berkas IaC di direktori saat ini dan menghasilkan laporan berkode warna yang memuat pemeriksaan yang berhasil, gagal, dan dilewati, beserta jalur sumber daya dan panduan perbaikannya. Checkov dapat diintegrasikan ke dalam alur CI/CD untuk memblokir penerapan ketika pemeriksaan CRITICAL gagal.

# Install and run Checkov on Terraform files
pip install checkov
checkov -d ./terraform/ --framework terraform

# Fail CI pipeline on HIGH severity findings
checkov -d ./terraform/ --check HIGH --hard-fail-on HIGH

tfsec: Pemindai Keamanan Terraform

tfsec (sekarang menjadi bagian dari kemampuan pemindaian IaC Trivy) adalah pemindai keamanan Terraform khusus yang memahami sintaks HCL secara mendalam, sehingga dapat melacak nilai di seluruh modul dan berkas variabel. Berbeda dari pemindai yang lebih sederhana, tfsec dapat mendeteksi kesalahan konfigurasi ketika masalahnya mencakup beberapa berkas—misalnya, aturan grup keamanan yang tampak aman jika dilihat secara terpisah, tetapi terpasang pada sumber daya di berkas lain. tfsec menghasilkan temuan dengan tingkat keparahan (CRITICAL, HIGH, MEDIUM, LOW), ID CWE, dan tautan langsung ke dokumentasi perbaikan, sehingga temuan tersebut dapat segera ditindaklanjuti oleh pengembang.

# Install tfsec and scan Terraform directory
brew install tfsec
tfsec ./terraform/ --format json

# Or use Trivy for unified IaC + container scanning
trivy config ./terraform/

Rahasia dalam Berkas IaC

Salah satu masalah keamanan IaC yang paling kritis adalah rahasia yang ditulis secara hardcode dalam berkas konfigurasi—kata sandi, kunci API, kunci privat TLS, dan string koneksi basis data yang dikomit ke Git. Karena repositori IaC sering dibagikan antar tim dan disimpan dalam riwayat kontrol versi, rahasia yang pernah dikomit sekalipun pada dasarnya telah terbobol secara permanen (riwayat Git bersifat tidak dapat diubah). Alat seperti Checkov, detect-secrets, git-secrets, dan TruffleHog memindai pola rahasia. Perbaikannya adalah menggunakan variabel input yang merujuk pada variabel lingkungan atau penyimpanan rahasia, bukan nilai yang ditulis secara hardcode.

# Bad: hardcoded password in Terraform
resource 'aws_db_instance' 'main' {
  password = 'supersecret123'  # NEVER DO THIS
}

# Good: read from variable, inject from secrets manager
variable 'db_password' { sensitive = true }
resource 'aws_db_instance' 'main' {
  password = var.db_password
}

Kebijakan sebagai Kode: OPA dan Sentinel

Kerangka kerja Kebijakan sebagai Kode (PaC) memungkinkan tim keamanan menulis aturan khusus dalam kode dan menerapkannya secara konsisten. Agen Kebijakan Terbuka (OPA) bersama Conftest memungkinkan penulisan kebijakan Rego untuk memvalidasi data terstruktur apa pun—rencana Terraform, manifes Kubernetes, dan nilai Helm—dalam alur CI/CD. Sentinel HashiCorp terintegrasi ke dalam Terraform Enterprise dan Cloud, sehingga kebijakan seperti “semua Bucket S3 harus mengaktifkan enkripsi” dapat diberlakukan saat perencanaan dan memblokir penerapan apa pun yang melanggar kebijakan tersebut. Alat-alat ini memungkinkan persyaratan keamanan dikodekan dan dikontrol versinya bersama infrastruktur yang diaturnya.

# Example Conftest OPA policy: deny public S3
# deny[msg] {
#   input.resource.aws_s3_bucket[name]
#   input.resource.aws_s3_bucket_public_access_block == null
#   msg := sprintf('Bucket %v lacks public access block', [name])
# }

Deteksi Penyimpangan: Konfigurasi vs Realitas

Penyimpangan konfigurasi terjadi ketika keadaan aktual infrastruktur yang diterapkan menyimpang dari definisi IaC—sering kali karena seseorang melakukan perubahan manual melalui konsol cloud. Aturan grup keamanan yang ditambahkan secara manual untuk “sementara” membuka akses bagi pengembang dapat menjadi celah permanen. Alat deteksi penyimpangan terus-menerus membandingkan keadaan yang diinginkan (berkas IaC) dengan keadaan aktual yang diterapkan dan memberi peringatan jika terdapat penyimpangan. AWS Config, deteksi penyimpangan Terraform Cloud, dan alat CSPM (Prisma Cloud, Wiz) semuanya menyediakan kemampuan ini. Kesalahan konfigurasi keamanan yang muncul akibat perubahan melalui konsol dapat terdeteksi sebelum ditemukan oleh penyerang.

# Terraform: detect drift between state and actual cloud resources
terraform plan -refresh-only
# If output shows changes, someone modified infrastructure outside Terraform

Infrastruktur Imutabel dan GitOps

Infrastruktur imutabel berarti server dan konfigurasi tidak pernah diubah di tempatnya—sebagai gantinya, perubahan membuat sumber daya baru (AMI baru, citra kontainer baru) dan menggantikan yang lama. Jika dipadukan dengan GitOps (ketika semua perubahan infrastruktur harus melalui permintaan tarik Git yang memicu alur pemindaian dan persetujuan IaC), penyimpangan konfigurasi dihilangkan sejak awal: jika sesuatu tidak dapat diubah secara manual, hal itu tidak dapat menyimpang. Alat seperti ArgoCD untuk Kubernetes dan Atlantis untuk Terraform menerapkan alur kerja GitOps, ketika setiap penyimpangan memicu rekonsiliasi atau peringatan otomatis.

Perbedaan SAST dan Pemindaian IaC

Pemindaian keamanan IaC terkadang disamakan dengan SAST (Pengujian Keamanan Aplikasi Statis), tetapi keduanya menargetkan artefak yang berbeda. SAST menganalisis kode sumber aplikasi (Python, Java, JavaScript) untuk mencari kerentanan seperti injeksi SQL atau luapan buffer. Pemindaian IaC menganalisis berkas konfigurasi infrastruktur untuk menemukan kesalahan konfigurasi keamanan cloud—tidak ada kode aplikasi yang terlibat. Alur DevSecOps yang lengkap mencakup keduanya: SAST pada kode aplikasi dan pemindaian IaC pada berkas infrastruktur. Keduanya dijalankan dalam CI/CD sebelum penerapan apa pun. Beberapa platform terpadu (Snyk IaC, Prisma Cloud) menggabungkan pemindaian aplikasi dan infrastruktur dalam satu alat.

Mengintegrasikan Pemindaian IaC ke dalam CI/CD

Pemindaian keamanan IaC yang efektif harus diotomatisasi dan diberlakukan—bukan opsional. Integrasi CI/CD yang umum: pada setiap permintaan tarik, jalankan Checkov dan tfsec; gagalkan alur jika terdapat temuan CRITICAL; publikasikan temuan sebagai komentar pada permintaan tarik agar terlihat oleh pengembang; pertahankan daftar temuan yang ditekan beserta alasan yang terdokumentasi; dan jalankan pemindaian setiap malam terhadap sumber daya yang diterapkan untuk mendeteksi penyimpangan. Pengait prakomit menggunakan alat seperti pre-commit bersama Checkov dapat menemukan masalah bahkan sebelum kode mencapai alur. Pengelolaan positif palsu penting—pengembang yang melihat terlalu banyak temuan yang tidak relevan akan mulai mengabaikannya.

# GitHub Actions: IaC security scanning
# - name: Run Checkov IaC Scan
#   uses: bridgecrewio/checkov-action@master
#   with:
#     directory: terraform/
#     framework: terraform
#     soft_fail: false  # fail PR on findings
#     output_format: sarif  # upload to GitHub Security tab

Keamanan Keadaan Terraform

Berkas keadaan Terraform (terraform.tfstate) berisi inventaris lengkap semua sumber daya yang dikelola, sering kali termasuk nilai keluaran sensitif seperti kata sandi basis data, kunci privat TLS, dan ID kunci akses IAM dalam teks biasa. Berkas keadaan tidak boleh dikomit ke Git. Sebagai gantinya, gunakan backend jarak jauh (AWS S3 dengan penguncian DynamoDB, Terraform Cloud, atau keadaan yang dikelola GitLab) dengan enkripsi sisi server yang diaktifkan. Akses ke backend keadaan harus dikontrol secara ketat melalui IAM—siapa pun yang dapat membaca berkas keadaan dapat mencantumkan semua detail infrastruktur dan berpotensi mengambil rahasia yang tertanam di dalamnya.

# Secure Terraform remote backend
terraform {
  backend 's3' {
    bucket         = 'my-terraform-state'
    key            = 'prod/terraform.tfstate'
    region         = 'us-east-1'
    encrypt        = true
    kms_key_id     = 'arn:aws:kms:us-east-1:123:key/abc'
    dynamodb_table = 'terraform-state-lock'
  }
}

Pemeriksaan Singkat

Uji pemahaman Anda tentang konsep CompTIA Security+ (SY0-701) dari pelajaran ini.

Rangkuman Pelajaran

Dalam pelajaran ini, Anda mempelajari bahwa kesalahan konfigurasi IaC seperti Bucket S3 publik, grup keamanan terbuka, dan rahasia yang ditulis secara hardcode dapat dideteksi secara otomatis oleh alat seperti Checkov dan tfsec sebelum penerapan; kerangka kerja Kebijakan sebagai Kode (OPA/Conftest, Sentinel HashiCorp) memungkinkan persyaratan keamanan organisasi khusus diberlakukan sebagai gerbang alur otomatis; dan berkas keadaan Terraform harus disimpan di backend jarak jauh terenkripsi dengan kontrol akses yang ketat karena dapat berisi detail sumber daya yang sensitif. Berikutnya, kita akan membahas siklus hidup APT dan cara ancaman tingkat lanjut bertahan di dalam jaringan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pemindaian Keamanan Infrastruktur sebagai Kode” gratis?

Ya — teks lengkap “Pemindaian Keamanan Infrastruktur sebagai Kode” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pemindaian Keamanan Infrastruktur sebagai Kode”?

Pindai Terraform, CloudFormation, dan bagan Helm dengan alat keamanan IaC (Checkov, tfsec) untuk menemukan kesalahan konfigurasi sebelum mencapai produksi. Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?

Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Pemindaian Keamanan Infrastruktur sebagai Kode” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Keamanan Kontainer: Penguatan Citra dan Perlindungan Runtime
  2. Keamanan Kubernetes: RBAC, Kebijakan Jaringan, dan Keamanan Pod
  3. Keamanan Tanpa Server dan Fungsi
  4. Pemindaian Keamanan Infrastruktur sebagai Kode
← Kembali ke Cloud & IT Cert Prep