0Pricing
Cloud & IT Cert Prep · Ders

Kod Olarak Altyapı Güvenlik Taraması

Yanlış yapılandırmaları üretim ortamına ulaşmadan yakalamak için Terraform, CloudFormation ve Helm grafiklerini IaC güvenlik araçlarıyla (Checkov, tfsec) tarayın.

Kod Olarak Altyapı Güvenlik Taraması, CoddyKit'te ücretsiz bir Cloud & IT Cert Prep dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cloud & IT Cert Prep öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

Kod Olarak Altyapı Güvenliğine Genel Bakış

Kod Olarak Altyapı (IaC) araçları (örneğin Terraform, AWS CloudFormation, Ansible ve Helm), altyapının sürüm denetimli yapılandırma dosyalarında tanımlanmasına olanak tanır. Bu yaklaşım tekrarlanabilirlik, denetlenebilirlik ve otomasyon gibi büyük yararlar sağlar; ancak önemli bir güvenlik riski de oluşturur: IaC dosyalarındaki yanlış yapılandırmalar, geniş ölçekte güvensiz altyapı üretir. 50 ortamda dağıtılan tek bir yanlış yapılandırılmış Terraform modülü, aynı anda 50 savunmasız sistem oluşturur. IaC güvenlik taraması, yapılandırma dosyalarını uygulanmadan önce denetleyerek bu sorunu ele alır ve güvenliği geliştirici iş akışının erken aşamalarına taşır.

Yaygın IaC Yanlış Yapılandırmaları

Güvenlik taraması araçları, gerçek dünyadaki bulut ortamlarında görülen en yaygın IaC yanlış yapılandırmalarını arar: genel erişimi etkinleştirilmiş veya beklemede şifrelemesi olmayan S3 kovaları; hassas bağlantı noktalarında (22, 3389, 1433) 0.0.0.0/0 gelen kurallarına sahip güvenlik grupları; şifrelemesi olmayan veya genel erişime açık veritabanları; * Resource ya da eylem joker karakterlerine sahip IAM ilkeleri; bir bölgede devre dışı bırakılmış CloudTrail; anahtar döndürmesi olmayan KMS anahtarları ve HTTPS yerine HTTP dinleyicileri kullanan yük dengeleyiciler. Bu bulgular, CIS AWS Foundations gibi bulut güvenliği kıyaslamaları tarafından gerçekleştirilen Checks ile büyük ölçüde örtüşür.

# 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: IaC için Kod Olarak Politika

Checkov (Bridgecrew/Prisma Cloud tarafından geliştirilmiştir), Terraform, CloudFormation, Kubernetes bildirimlerini, Helm çizelgelerini ve Dockerfile'ları destekleyen, IaC için kullanılan popüler bir açık kaynaklı statik analiz aracıdır. CIS kıyaslamaları, GDPR, SOC 2 ve HIPAA ile eşleştirilmiş 1.000'den fazla yerleşik politikayla birlikte gelir. checkov -d . komutunun çalıştırılması, geçerli dizindeki tüm IaC dosyalarını tarar ve kaynak yolları ile düzeltme yönergelerini içeren, başarılı, başarısız ve atlanan denetimlerin renklerle kodlandığı bir rapor oluşturur. Checkov, kritik denetimler başarısız olduğunda dağıtımları engellemek için CI/CD işlem hatlarına entegre edilebilir.

# 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: Terraform Güvenlik Tarayıcısı

tfsec (artık Trivy'nin IaC tarama özelliğinin bir parçasıdır), HCL söz dizimini derinlemesine anlayan ve böylece değerleri modüller ile değişken dosyaları arasında izleyebilen, Terraform'a özel bir güvenlik tarayıcısıdır. Daha basit tarayıcıların aksine tfsec, sorunun birden fazla dosyaya yayıldığı yanlış yapılandırmaları algılayabilir; örneğin, tek başına güvenli görünen ancak başka bir dosyadaki kaynağa bağlanmış bir güvenlik grubu kuralını tespit edebilir. tfsec; önem düzeyleri (CRITICAL, HIGH, MEDIUM, LOW), CWE kimlikleri ve düzeltme belgelerine doğrudan bağlantılar içeren bulgular üretir; bu da bulguları geliştiriciler için uygulanabilir hâle getirir.

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

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

IaC Dosyalarındaki Gizli Bilgiler

En kritik IaC güvenlik sorunlarından biri, yapılandırma dosyalarına sabit kodlanmış gizli bilgilerdir — Git'e kaydedilen parolalar, API anahtarları, TLS özel anahtarları ve veritabanı bağlantı dizeleri. IaC depoları çoğunlukla ekipler arasında paylaşılır ve sürüm denetimi geçmişinde saklanır; bu nedenle bir gizli bilgi yalnızca bir kez kaydedilmiş olsa bile fiilen kalıcı olarak ele geçirilmiş sayılır (Git geçmişi değiştirilemez). Checkov, detect-secrets, git-secrets ve TruffleHog gibi araçlar gizli bilgi kalıplarını tarar. Çözüm, sabit kodlanmış değerleri hiçbir zaman kullanmamak ve bunların yerine ortam değişkenlerinden veya gizli bilgi depolarından alınan girdi değişkenlerini kullanmaktır.

# 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
}

Kod Olarak Politika: OPA ve Sentinel

Policy as Code (PaC) çerçeveleri, güvenlik ekiplerinin özel kuralları kod olarak yazmasına ve bunları tutarlı biçimde uygulamasına olanak tanır. Open Policy Agent (OPA) ve Conftest, CI/CD işlem hatlarında herhangi bir yapılandırılmış veriyi — Terraform planlarını, Kubernetes bildirimlerini ve Helm değerlerini — doğrulayan Rego politikalarının yazılmasına olanak tanır. HashiCorp Sentinel, Terraform Enterprise ve Cloud'a yerleşik olarak gelir; bu sayede “tüm S3 Bucket'larında şifreleme etkin olmalıdır” gibi politikalar planlama sırasında uygulanabilir ve politikayı ihlal edecek tüm uygulama işlemleri engellenebilir. Bu araçlar, güvenlik gereksinimlerinin kod hâline getirilmesine ve yönettikleri altyapıyla birlikte sürüm denetiminde tutulmasına olanak tanır.

# 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])
# }

Sapma Algılama: Yapılandırma ve Gerçeklik

Yapılandırma sapması, dağıtılmış altyapının gerçek durumu IaC tanımından saptığında ortaya çıkar; bunun nedeni çoğunlukla bir kişinin bulut konsolu üzerinden elle değişiklik yapmasıdır. Bir geliştiricinin önündeki engeli “geçici olarak” kaldırmak için elle eklenen güvenlik grubu kuralı kalıcı bir açık hâline gelir. Sapma algılama araçları, istenen durumu (IaC dosyalarını) dağıtılmış gerçek durumla sürekli karşılaştırır ve farklılıklar konusunda uyarı verir. AWS Config, Terraform Cloud'un sapma algılama özelliği ve CSPM araçları (Prisma Cloud, Wiz) bu yeteneği sağlar. Konsol değişiklikleriyle ortaya çıkan güvenlik yanlış yapılandırmaları, saldırganlar bunları keşfetmeden önce yakalanır.

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

Değişmez Altyapı ve GitOps

Değişmez altyapı, sunucuların ve yapılandırmaların yerinde hiçbir zaman değiştirilmemesi; bunun yerine değişikliklerin yeni kaynaklar (yeni AMI'ler ve yeni kapsayıcı görüntüleri) oluşturup eskilerin yerini alması anlamına gelir. Tüm altyapı değişikliklerinin IaC taramasını ve onay iş akışlarını tetikleyen bir Git çekme isteği üzerinden gerçekleştirilmesini gerektiren GitOps ile birleştirildiğinde, yapılandırma sapması tasarım gereği ortadan kalkar: Bir şey elle değiştirilemiyorsa sapamaz. Kubernetes için ArgoCD ve Terraform için Atlantis gibi araçlar, her türlü farklılığın otomatik bir uzlaştırmayı veya uyarıyı tetiklediği GitOps iş akışlarını uygular.

SAST ve IaC Taraması Arasındaki Ayrım

IaC güvenlik taraması bazen SAST (Statik Uygulama Güvenliği Testi) ile karıştırılır; ancak bunlar farklı yapıtları hedefler. SAST, uygulama kaynak kodunu (Python, Java, JavaScript) SQL ekleme saldırısı veya arabellek taşması gibi güvenlik açıkları açısından analiz eder. IaC taraması ise altyapı yapılandırma dosyalarını bulut güvenliği yanlış yapılandırmaları açısından analiz eder; uygulama kodu söz konusu değildir. Eksiksiz bir DevSecOps işlem hattı her ikisini de içerir: uygulama kodunda SAST ve altyapı dosyalarında IaC taraması. Her ikisi de herhangi bir dağıtımdan önce CI/CD içinde çalıştırılır. Bazı birleşik platformlar (Snyk IaC, Prisma Cloud), uygulama ve altyapı taramasını tek bir araçta birleştirir.

IaC Taramasını CI/CD'ye Entegre Etme

Etkili IaC güvenlik taraması otomatikleştirilmeli ve zorunlu kılınmalıdır; isteğe bağlı olmamalıdır. Tipik bir CI/CD entegrasyonu şu adımları içerir: her çekme isteğinde Checkov ve tfsec'i çalıştırmak; CRITICAL bulgular varsa işlem hattını başarısız kılmak; geliştiricilerin görebilmesi için bulguları çekme isteği yorumları olarak eklemek; belgelenmiş gerekçelerle bastırılmış bulguların bir listesini tutmak ve sapmaları tespit etmek için dağıtılmış kaynaklara karşı her gece tarama çalıştırmak. Checkov ile pre-commit gibi araçları kullanan ön işleme kancaları, sorunları kod işlem hattına ulaşmadan önce bile yakalayabilir. Yanlış pozitiflerin yönetimi önemlidir; çok fazla ilgisiz bulgu gören geliştiriciler bunları görmezden gelmeye başlar.

# 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

Terraform Durumunun Güvenliği

Terraform'un durum dosyası (terraform.tfstate), yönetilen tüm kaynakların eksiksiz envanterini içerir ve çoğu zaman veritabanı parolaları, TLS özel anahtarları ve IAM erişim anahtarı kimlikleri gibi hassas çıktı değerlerini düz metin olarak barındırır. Durum dosyaları hiçbir zaman Git'e kaydedilmemelidir. Bunun yerine, sunucu tarafı şifrelemesi etkin bir uzak arka uç (DynamoDB kilitlemeli AWS S3, Terraform Cloud veya GitLab tarafından yönetilen durum) kullanılmalıdır. Durum arka ucuna erişim IAM aracılığıyla sıkı biçimde denetlenmelidir; durum dosyasını okuyabilen herkes tüm altyapı ayrıntılarını listeleyebilir ve gömülü gizli bilgileri çıkarabilir.

# 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'
  }
}

Hızlı Denetim

Bu derste ele alınan CompTIA Security+ (SY0-701) kavramlarını anlayıp anlamadığınızı test edin.

Ders Özeti

Bu derste şunları öğrendiniz: herkese açık S3 Bucket'ları, açık güvenlik grupları ve sabit kodlanmış gizli bilgiler gibi IaC yanlış yapılandırmaları, dağıtımdan önce Checkov ve tfsec gibi araçlar tarafından otomatik olarak algılanır; Kod Olarak Politika çerçeveleri (OPA/Conftest, HashiCorp Sentinel), özel kurumsal güvenlik gereksinimlerinin otomatik işlem hattı kapıları olarak uygulanmasına olanak tanır ve Terraform durum dosyaları, hassas kaynak ayrıntıları içerebilecekleri için sıkı erişim denetimlerine sahip şifrelenmiş uzak arka uçlarda saklanmalıdır. Sıradaki derste APT yaşam döngüsünü ve gelişmiş tehditlerin ağların içinde nasıl kalıcı hâle geldiğini inceleyeceğiz.

Sıkça Sorulan Sorular

“Kod Olarak Altyapı Güvenlik Taraması” dersi ücretsiz mi?

Evet — “Kod Olarak Altyapı Güvenlik Taraması” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cloud & IT Cert Prep kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cloud & IT Cert Prep kursu toplamda 4 dersten oluşur.

“Kod Olarak Altyapı Güvenlik Taraması” dersinde ne öğreneceğim?

Yanlış yapılandırmaları üretim ortamına ulaşmadan yakalamak için Terraform, CloudFormation ve Helm grafiklerini IaC güvenlik araçlarıyla (Checkov, tfsec) tarayın. Cloud & IT Cert Prep ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cloud & IT Cert Prep öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cloud & IT Cert Prep, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Kod Olarak Altyapı Güvenlik Taraması” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cloud & IT Cert Prep dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cloud & IT Cert Prep dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Kapsayıcı Güvenliği: İmajları Sağlamlaştırma ve Çalışma Zamanı Koruması
  2. Kubernetes Güvenliği: RBAC, Ağ Politikaları ve Pod Güvenliği
  3. Sunucusuz Sistem ve İşlev Güvenliği
  4. Kod Olarak Altyapı Güvenlik Taraması
← Cloud & IT Cert Prep Sayfasına Dön