Bulut altyapınızda güvenlik yanlış yapılandırmaları, IAM ayrıcalık yükseltme yolları, S3 herkese açık erişim, açık security group kuralları ve IaC güvenlik açıklarını değerlendirmek için kullanın. AWS, Azure ve GCP ortamlarını kapsamlı şekilde analiz eder ve sonuçları MITRE ATT&CK ile eşleştirir.
cd ~/.claude/skills
git clone https://github.com/alirezarezvani/claude-skills.git claude-skills mkdir -p ~/.claude/skills/cloud-security
curl -fsSL https://raw.githubusercontent.com/alirezarezvani/claude-skills/HEAD/.gemini/skills/cloud-security/SKILL.md \
-o ~/.claude/skills/cloud-security/SKILL.md IAM ayrıcalık yükseltme, genel depolama maruziyeti, ağ konfigürasyon riskleri ve altyapı-kod yanlış yapılandırmaları tespit etmek için bulut güvenlik duruşu değerlendirme becerisi. Bu, aktif bulut tehlikelemesi için olay yanıtı DEĞİLDİR (bkz. incident-response) veya uygulama güvenlik açığı taraması DEĞİLDİR (bkz. security-pen-testing) — bu, istismardan korunmak için sistematik bulut yapılandırması analizi hakkındadır.
Bu beceri bulut güvenlik duruşu yönetimi (CSPM) için metodoloji ve araç sağlar — istismarlanabilir saldırı yüzeyini oluşturan yanlış yapılandırmalar için bulut yapılandırmalarını sistematik olarak kontrol etme. IAM ayrıcalık yükseltme yollarını, depolama genel maruziyetini, ağ aşırı izinlemesini ve altyapı kodu güvenliğini kapsar.
| Beceri | Odak | Yaklaşım |
|---|---|---|
| cloud-security (bu) | Bulut yapılandırması riski | Önleyici — istismardan önce değerlendir |
| incident-response | Aktif bulut olayları | Reaktif — onaylanmış bulut uzlaşması sınıflandır |
| threat-detection | Davranışsal anormallikler | Proaktif — bulut günlüklerinde saldırgan aktivitesi ara |
| security-pen-testing | Uygulama güvenlik açıkları | Saldırgan — bulunan zayıflıkları aktif olarak istismar et |
IAM ilkesi belgeleri, S3 bucket konfigürasyonları ve güvenlik grubu kurallarına JSON biçiminde okuma erişimi. Sürekli izleme için bulut sağlayıcısı API'leri ile entegre edin (AWS Config, Azure Policy, GCP Security Command Center).
cloud_posture_check.py aracı üç tür kontrol çalıştırır: iam (ayrıcalık yükseltme), s3 (genel erişim) ve sg (ağ maruziyeti). Kontrol türünü yapılandırma dosyası yapısından otomatik olarak algılar veya açık --check bayraklarını kabul eder.
# IAM ilkesini ayrıcalık yükseltme yolları için analiz et
python3 scripts/cloud_posture_check.py policy.json --check iam --json
# S3 bucket yapılandırmasını genel erişim için değerlendir
python3 scripts/cloud_posture_check.py bucket_config.json --check s3 --json
# Güvenlik grubu kurallarını açık yönetici portları için kontrol et
python3 scripts/cloud_posture_check.py sg.json --check sg --json
# İnternet'e açık önem artırıcısı ile tüm kontrolleri çalıştır
python3 scripts/cloud_posture_check.py config.json --check all \
--provider aws --severity-modifier internet-facing --json
# Düzenlenmiş veri bağlamı (tüm bulgular için önem seviyesini bir seviye artırır)
python3 scripts/cloud_posture_check.py config.json --check all \
--severity-modifier regulated-data --json
# AWS CLI'dan IAM ilkesini akıt
aws iam get-policy-version --policy-arn arn:aws:iam::123456789012:policy/MyPolicy \
--version-id v1 | jq '.PolicyVersion.Document' | \
python3 scripts/cloud_posture_check.py - --check iam --json
| Kod | Anlamı | Gerekli Eylem |
|---|---|---|
| 0 | Yüksek/kritik bulgu yok | Eylem gerekli değil |
| 1 | Yüksek önem bulguları | 24 saat içinde düzelt |
| 2 | Kritik bulgular | Hemen düzelt — etkin ise incident-response'a ilerlet |
IAM analizi ayrıcalık yükseltme yollarını, aşırı izinlenmiş verileri, genel principal maruziyetini ve veri sızıntısı riskini tespit eder.
| Desen | Önem | Anahtar Eylem Kombinasyonu | MITRE |
|---|---|---|---|
| Lambda PassRole yükseltme | Kritik | iam:PassRole + lambda:CreateFunction | T1078.004 |
| EC2 instance profile kötüye kullanım | Kritik | iam:PassRole + ec2:RunInstances | T1078.004 |
| CloudFormation PassRole | Kritik | iam:PassRole + cloudformation:CreateStack | T1078.004 |
| Kendi ilkesi ekleme yükseltme | Kritik | iam:AttachUserPolicy + sts:GetCallerIdentity | T1484.001 |
| Satır içi ilkesi kendi yükseltme | Kritik | iam:PutUserPolicy + sts:GetCallerIdentity | T1484.001 |
| İlke sürümü arka kapısı | Kritik | iam:CreatePolicyVersion + iam:ListPolicies | T1484.001 |
| Kimlik bilgisi toplama | Yüksek | iam:CreateAccessKey + iam:ListUsers | T1098.001 |
| Grup üyeliği yükseltme | Yüksek | iam:AddUserToGroup + iam:ListGroups | T1098 |
| Şifre sıfırlama saldırısı | Yüksek | iam:UpdateLoginProfile + iam:ListUsers | T1098 |
| Hizmet seviyesi joker | Yüksek | iam:* veya s3:* veya ec2:* | T1078.004 |
| Bulgu Türü | Koşul | Önem |
|---|---|---|
| Tam yönetici joker | Action=* Resource=* | Kritik |
| Genel principal | Principal: '*' | Kritik |
| Tehlikeli eylem kombinasyonu | İki eylem yükseltme yolu | Kritik |
| Bireysel ayrıcalık yükseltme eylemleri | Joker kaynağında | Yüksek |
| Veri sızıntısı eylemleri | s3:GetObject, secretsmanager:GetSecretValue on * | Yüksek |
| Hizmet joker | service:* eylem | Yüksek |
| Adlandırılmış kaynakta veri eylemleri | Uygun kapsam | Düşük/Temiz |
Her kritik veya yüksek bulgu için araç, belirli düzeltme rehberliği ile least_privilege_suggestion alanı çıkıştırır:
Action: * yerine adlandırılmış eylem listesi koyResource: * yerine belirli ARN desenleri koyS3 değerlendirmesi dört boyutu kontrol eder: genel erişim blok yapılandırması, bucket ACL, bucket ilkesi principal maruziyeti ve varsayılan şifreleme.
| Kontrol | Bulgu Koşulu | Önem |
|---|---|---|
| Genel erişim blok | Dört bayraktan herhangi biri eksik/yanlış | Yüksek |
| Bucket ACL | public-read-write | Kritik |
| Bucket ACL | public-read veya authenticated-read | Yüksek |
| Bucket ilkesi Principal | "Principal": "*" Allow ile | Kritik |
| Varsayılan şifreleme | ServerSideEncryptionConfiguration yok | Yüksek |
| Varsayılan şifreleme | Standart olmayan SSEAlgorithm | Orta |
| PublicAccessBlockConfiguration yok | Durum bilinmiyor | Orta |
{
"PublicAccessBlockConfiguration": {
"BlockPublicAcls": true,
"BlockPublicPolicy": true,
"IgnorePublicAcls": true,
"RestrictPublicBuckets": true
},
"ServerSideEncryptionConfiguration": {
"Rules": [{
"ApplyServerSideEncryptionByDefault": {
"SSEAlgorithm": "aws:kms",
"KMSMasterKeyID": "arn:aws:kms:region:account:key/key-id"
},
"BucketKeyEnabled": true
}]
},
"ACL": "private"
}
Dört genel erişim blok ayarının tamamı hem bucket seviyesinde hem de AWS hesap seviyesinde etkinleştirilmiş olmalıdır. Hesap seviyesi ayarları, her ikisi de uygulanmadığı sürece bucket seviyesi ayarları tarafından geçersiz kılınabilir.
Güvenlik grubu analizi, yönetici portlarını, veritabanı portlarını veya tüm trafiği internet CIDR'lerine (0.0.0.0/0, ::/0) açıktan çıkaran gelen kurallarını işaretler.
| Port | Hizmet | Bulgu Önem | Düzeltme |
|---|---|---|---|
| 22 | SSH | Kritik | VPN CIDR'ye veya AWS Systems Manager Session Manager'a kısıtla |
| 3389 | RDP | Kritik | VPN CIDR'ye veya AWS Fleet Manager'a kısıtla |
| 0–65535 (tümü) | Tüm trafik | Kritik | Kuralı kaldır; yalnızca gerekli belirli portları ekle |
| Port | Hizmet | Bulgu Önem | Düzeltme |
|---|---|---|---|
| 1433 | MSSQL | Yüksek | Uygulama katmanı SG'sinden izin ver — özel subnet'e taşı |
| 3306 | MySQL | Yüksek | Uygulama katmanı SG'sinden izin ver — özel subnet'e taşı |
| 5432 | PostgreSQL | Yüksek | Uygulama katmanı SG'sinden izin ver — özel subnet'e taşı |
| 27017 | MongoDB | Yüksek | Uygulama katmanı SG'sinden izin ver — özel subnet'e taşı |
| 6379 | Redis | Yüksek | Uygulama katmanı SG'sinden izin ver — özel subnet'e taşı |
| 9200 | Elasticsearch | Yüksek | Uygulama katmanı SG'sinden izin ver — özel subnet'e taşı |
Değerlendirilen kaynak doğrudan internet erişimine açık olduğunda (load balancer, API gateway, genel EC2) --severity-modifier internet-facing kullanın. Kaynak PCI, HIPAA veya GDPR düzenlemeli veriler işlediğinde --severity-modifier regulated-data kullanın. Her iki değiştirici de her bulgu önem seviyesini bir seviye artırır.
Altyapı-kod incelemesi, dağıtımdan önce tanım zamanında yapılandırma sorunlarını yakalar.
| Araç | Kontrol Türleri | Ne Zaman Çalıştırılacak |
|---|---|---|
| Terraform | Kaynak seviyesi kontroller (aws_s3_bucket_acl, aws_security_group, aws_iam_policy_document) | Ön-plan, ön-uygula, PR kapısı |
| CloudFormation | Şablon özellik doğrulaması (PublicAccessBlockConfiguration, SecurityGroupIngress) | Şablon linter, dağıtım kapısı |
| Kubernetes manifesti | Container ayrıcalıkları, ağ ilkeleri, gizli maruziyeti | PR kapısı, kabul denetleyici |
| Helm grafikleri | Kubernetes ile aynı | PR kapısı |
# KÖTÜ: Kritik bulgular üretecek
resource "aws_iam_policy" "bad_policy" {
policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Effect = "Allow"
Action = "*"
Resource = "*"
}]
})
}
# İYİ: En az ayrıcalık
resource "aws_iam_policy" "good_policy" {
policy = jsonencode({
Version = "2012-10-17"
Statement = [{
Effect = "Allow"
Action = ["s3:GetObject", "s3:PutObject"]
Resource = "arn:aws:s3:::my-specific-bucket/*"
}]
})
}
Tam CSPM kontrol referansı: references/cspm-checks.md
| Kontrol Türü | AWS | Azure | GCP |
|---|---|---|---|
| IAM ayrıcalık yükseltme | Tam (IAM ilkeleri, güven ilkeleri, ESCALATION_COMBOS) | Kısmi (RBAC atamaları, hizmet müdürü riskleri) | Kısmi (IAM bağlamaları, iş yükü kimliği) |
| Depolama genel erişim | Tam (S3 bucket ilkeleri, ACL'ler, genel erişim blok) | Kısmi (Blob SAS tokenleri, konteyner erişim seviyeleri) | Kısmi (GCS bucket IAM, tekdüzen bucket seviyesi erişim) |
| Ağ maruziyeti | Tam (Güvenlik Grupları, NACL'ler, port seviyesi analiz) | Kısmi (NSG kuralları, gelen port analiz) | Kısmi (Güvenlik duvarı kuralları, VPC güvenlik duvarı) |
| IaC taraması | Tam (Terraform, CloudFormation) | Kısmi (ARM şablonları, Bicep) | Kısmi (Dağıtım Müdürü) |
Yeni sağlanan bir kaynak veya dağıtım öncesi inceleme için:
# 1. IAM ilkesi belgesini dışa aktar
aws iam get-policy-version --policy-arn ARN --version-id v1 | \
jq '.PolicyVersion.Document' > policy.json
python3 scripts/cloud_posture_check.py policy.json --check iam --json
# 2. S3 bucket yapılandırmasını kontrol et
aws s3api get-bucket-acl --bucket my-bucket > acl.json
aws s3api get-public-access-block --bucket my-bucket >> bucket.json
python3 scripts/cloud_posture_check.py bucket.json --check s3 --json
# 3. Açık yönetici portları için güvenlik gruplarını gözden geçir
aws ec2 describe-security-groups --group-ids sg-123456 | \
jq '.SecurityGroups[0]' > sg.json
python3 scripts/cloud_posture_check.py sg.json --check sg --json
Karar: Çıkış kodu 2 = dağıtımı engelle ve düzelt. Çıkış kodu 1 = 24 saat içinde düzeltme planla.
Gün 1 — IAM ve Kimlik:
Gün 2 — Depolama ve Ağ:
Gün 3 — IaC ve Sürekli Entegrasyon:
references/cspm-checks.md karşısında doğrulaYanlış yapılandırılmış kaynakların üretime ulaşmasını önlemek için dağıtım boru hatlarına duruş kontrolleri entegre et:
# Terraform uygularından önce IaC'ı doğrula
terraform show -json plan.json | \
jq '[.resource_changes[].change.after | select(. != null)]' > resources.json
python3 scripts/cloud_posture_check.py resources.json --check all --json
if [ $? -eq 2 ]; then
echo "Kritik bulut güvenlik bulguları — dağıtım engelleniyor"
exit 1
fi
# Değiştirmeden önce mevcut S3 bucket'ı doğrula
aws s3api get-bucket-policy --bucket "${BUCKET}" | jq '.Policy | fromjson' | \
python3 scripts/cloud_posture_check.py - --check s3 \
--severity-modifier regulated-data --json
iam:PassRole tek başına kritik değildir ama iam:PassRole + lambda:CreateFunction onaylanmış bir ayrıcalık yükseltme yoludur. Her zaman tam ifadeyi analiz et, bireysel eylemleri değil.--severity-modifier internet-facing herkese açık kaynaklar için isteğe bağlı olarak ele alma — İnternet'e açık kaynaklar dahili kaynaklardan önemli ölçüde daha yüksek maruziyete sahiptir. İnternet'e açık altyapıdaki yüksek bulgular kritik olarak ele alınmalıdır. DMZ, load balancer ve API gateway yapılandırmaları için her zaman --severity-modifier internet-facing uygula.--severity-modifier regulated-data kullan.| Beceri | İlişki |
|---|---|
| incident-response | Kritik bulgular (genel S3, ayrıcalık yükseltme onaylanmış etkin) olay sınıflandırmasını tetikleyebilir |
| threat-detection | Bulut duruşu bulguları av hedefleri oluşturur — aşırı izinlenmiş roller muhtemelen yanal hareket hedefleridir |
| red-team | Red team egzersizleri özel olarak duruş değerlendirmesinde bulunan bulut yanlış yapılandırmalarının istismarlanabilirliğini test eder |
| security-pen-testing | Bulut duruşu bulguları pen test değerlendirmesinin altyapı güvenliği bölümüne besler |
2 veya daha fazla bağımsız görevin paralel olarak yürütülebileceği ve aralarında state paylaşımı ya da sıralı bağımlılık olmadığı durumlarda kullanın.
Ayrı bir oturumda inceleme kontrol noktaları ile yürütülecek yazılı bir uygulama planınız olduğunda kullanın.
Mevcut oturumda bağımsız görevlerle uygulama planlarını yürütürken kullanın
Herhangi bir hata, test başarısızlığı veya beklenmeyen davranışla karşılaştığınızda, çözüm önerisi sunmadan önce kullanın.
Herhangi bir feature ya da bugfix uygulamaya başlamadan önce kullanın.
Yeni beceriler oluştururken, mevcut becerileri düzenlerken veya dağıtımdan önce becerileri doğrularken kullanın.