Bulut Loglama: AWS, Azure, GCP ve Veri Lokasyonu – Bölüm 7

Merhaba

Seri: SOC Analistleri İçin Log İzleme Rehberi (Ödeme Kuruluşları)

  1. Log İzleme Temelleri
  2. Mevzuat, Retention ve Silme Yasağı
  3. Windows/AD ve Linux Hardening
  4. Uygulama ve Veritabanı Katmanı
  5. Ağ Katmanı (Firewall/IDS-IPS/WAF/DDoS)
  6. Container ve Kubernetes
  7. Bulut (AWS/Azure/GCP) (Bu Yazı)
  8. XDR/EDR ve Bütünsel Korelasyon

Ön Not – Kapsam ve Amaç

Bu seri, kritik logları izlemeyi ve anlamayı öğretmek amacıyla yazılmıştır. Odak noktası tek tek ürünler değil, sürecin kendisidir: hangi olayın neden önemli olduğu, nasıl toplandığı, korele edildiği ve korunduğu.

Metindeki donanım, yazılım ve uygulama örnekleri (ürün adları, Event ID’ler, konfigürasyon parametreleri, komutlar) versiyona, sürüme ve yıllara göre değişiklik gösterebilir. Bir ayarın adı değişebilir, bir ürün yaşam döngüsünü tamamlayabilir, yeni bir alternatif ortaya çıkabilir. Bu nedenle örnekleri birebir kopyalanacak reçeteler olarak değil, mantığı kavramak için birer illüstrasyon olarak okuyun; kendi ortamınıza uygularken ilgili üreticinin güncel dokümantasyonunu esas alın.

Aynı şekilde, “Ödeme Kuruluşları İçin PCI DSS, HIPAA ve Türkiye Mevzuatı Bağlamında” hazırlanan bölümler de yürürlükteki düzenlemelere dayanır ve mevzuat değiştikçe güncellenmesi gerekir. PCI DSS sürümleri, TCMB tebliğleri, KVKK/MASAK düzenlemeleri ve retention süreleri zaman içinde değişebilir. Bu rehber hukuki veya denetim danışmanlığı yerine geçmez; nihai uygulama için kurumunuzun uyumluluk ekibine, QSA’sına ve güncel resmi mevzuata başvurun.

Kısacası: amaç, süreci ve mantığı anlamaktır. Örnekler bugünün fotoğrafıdır; ilke ise kalıcıdır.

Serinin yedinci bölümü. Bulutun ödeme kuruluşu için en kritik boyutu teknik değil hukukidir: veri lokasyonu (TCMB). Yurt dışı bölgelerde CDE ve audit log arşivi tutulamaz. Bu bölümde CloudTrail/Activity Log/Cloud Audit’in doğru kurgusu, data event’ler, immutable storage ve hangi çözümün ödeme kuruluşunda kullanılıp kullanılamayacağı ele alınıyor.

4.62. Bulut (AWS / Azure / GCP) – Ödeme Kuruluşu Bağlamı ve Veri Lokasyonu

Bölüm 2.5’te bulut log kaynaklarını genel hatlarıyla ele almıştık. Burada ödeme kuruluşu bağlamına iniyoruz ve baştan söylemek gerekir ki, Türkiye’de faaliyet gösteren bir ödeme kuruluşu için bulutun en kritik boyutu teknik değil, hukukidir: veri lokasyonu.

🔴 TCMB Bilgi Sistemleri Tebliği: Ödeme kuruluşunun birincil ve ikincil sistemleri Türkiye’de bulunmalıdır. Bu, AWS/Azure/GCP’nin global (US/EU) bölgelerinde CDE (kart verisi ortamı) barındırmayı doğrudan kısıtlar. Bulut kullanılacaksa: (a) sağlayıcının Türkiye bölgesi, (b) yurt içi bulut (Bulutistan, Turkcell, Türk Telekom), veya (c) on-prem tercih edilir. AWS/Azure’un Türkiye region’ı yoksa, CDE bileşenleri için hukuki değerlendirme + risk kabul dokümanı + TCMB görüşü gerekir.

Bulut Log Katmanları ve Regülatif Karşılık:

Katman AWS Azure GCP PCI DSS Retention
API/Yönetim aktivitesi CloudTrail Activity Log Cloud Audit Logs 🔴 10.2.1.x tümü 10 yıl
Kaynak/uygulama logu CloudWatch Logs Monitor Logs Cloud Logging 10.2 1 yıl
Ağ akışı VPC Flow Logs NSG Flow Logs VPC Flow Logs 10.2, 1.3 1 yıl
Kimlik/erişim IAM + CloudTrail Entra ID Sign-in Cloud IAM 8.x, 10.2.1.1 10 yıl
Secret/anahtar erişimi KMS + Secrets Manager Key Vault Cloud KMS 3.5, 3.6, 8.6 10 yıl
Config değişikliği AWS Config Azure Policy/Change Asset Inventory 10.2.1.7, 1.2 10 yıl
Depolama erişimi S3 Access + CloudTrail Data Storage Diagnostics Cloud Storage audit 🔴 10.2.1.1 (CHD) 10 yıl

🔴 En kritik yanılgı: “CloudWatch/Monitor logları topluyoruz, PCI DSS 10 karşılandı.” Yanlış. CloudWatch/Monitor uygulama/kaynak logudur. Kim bulutta ne yaptı sorusunun cevabı CloudTrail / Azure Activity Log / Cloud Audit Logs‘tur. Bu, Windows Security Event Log ve Kubernetes API audit muadilidir, zorunludur.

4.63. AWS – PCI DSS Uyumlu Loglama

⚠️ Bu bölümün kapsamı: Aşağıdaki konfigürasyonlar, AWS’nin ödeme kuruluşunun CDE’si dışındaki iş yükleri için (kurumsal portal, CRM, test/geliştirme ortamları vb.) ya da ödeme kuruluşu olmayan kurumlar için geçerlidir. Türkiye’de faaliyet gösteren bir ödeme kuruluşunun kart verisi ortamı (CDE), audit log arşivi ve yedekleri yurt dışı AWS bölgelerinde tutulamaz (TCMB Bilgi Sistemleri Tebliği birincil/ikincil sistemler Türkiye’de). Yine de bu bölümü okumak gerekir: (a) scope dışı iş yükleriniz büyük olasılıkla bulutta, (b) buradaki kavramlar (audit log ≠ kaynak logu, data events, Object Lock Compliance Mode) yurt içindeki S3-uyumlu on-prem object storage kurgunuza doğrudan uygulanır.

1. CloudTrail (Yönetim + Veri Olayları)
CloudTrail, tüm API çağrılarını ve hesap aktivitesini kaydeder bulut katmanının audit log’udur.

# 🔴 Organization-wide trail - tüm hesaplar, tüm bölgeler
aws cloudtrail create-trail \
  --name PCI-SecurityTrail \
  --s3-bucket-name pci-audit-logs-tr \
  --is-organization-trail \
  --is-multi-region-trail \                # 🔴 Tüm bölgeler (saldırgan pasif bölge kullanır)
  --enable-log-file-validation \           # 🔴 SHA-256 + imza (tamper tespiti - 10.3.4)
  --kms-key-id alias/pci-cloudtrail        # 🔴 Log'lar şifreli (10.3.2 için at-rest)

# 🔴 Data events - S3'teki CHD nesnelerine HER erişim (10.2.1.1)
aws cloudtrail put-event-selectors \
  --trail-name PCI-SecurityTrail \
  --event-selectors '[{
    "ReadWriteType": "All",
    "DataResources": [{
      "Type": "AWS::S3::Object",
      "Values": ["arn:aws:s3:::payment-chd-bucket/"]
    }]
  }]'

🔴 Varsayılan CloudTrail yalnızca management event‘leri tutar. S3’teki kart verisine yapılan GetObject / PutObject gibi erişimler data event‘tir ve ayrıca etkinleştirilmelidir. PCI 10.2.1.1 (“CHD’ye her erişim”) ancak böyle karşılanır.

2. S3 bucket – WORM + Silme Yasağı (6493/TCMB):

# 🔴 Object Lock COMPLIANCE Mode - root dahil kimse silemez (silme yasağı)
aws s3api put-object-lock-configuration \
  --bucket pci-audit-logs-tr \
  --object-lock-configuration '{
    "ObjectLockEnabled": "Enabled",
    "Rule": {"DefaultRetention": {"Mode": "COMPLIANCE", "Years": 10}}
  }'

# 🔴 MFA Delete + versioning
aws s3api put-bucket-versioning \
  --bucket pci-audit-logs-tr \
  --versioning-configuration Status=Enabled,MFADelete=Enabled

⚠️ Governance Mode değil, Compliance Mode. Governance’ta s3:BypassGovernanceRetention yetkisi olan biri silebilir → denetim bulgusu. Compliance Mode’da retention süresi (10 yıl) dolmadan root hesap bile silemez.

3. VPC Flow Logs + GuardDuty:

# VPC Flow Logs - ağ akışı (10.2, segmentasyon doğrulama)
aws ec2 create-flow-logs \
  --resource-type VPC --resource-ids vpc-payment \
  --traffic-type ALL \
  --log-destination-type cloud-watch-logs \
  --deliver-logs-permission-arn arn:aws:iam::...:role/flowlogsRole

# GuardDuty - tehdit tespiti (threat intel + ML, IDS muadili)
aws guardduty create-detector --enable \
  --finding-publishing-frequency FIFTEEN_MINUTES

AWS Kritik CloudTrail Olayları (SIEM’de İzlenecek):

Olay (eventName) Anlam Kritiklik
ConsoleLogin (failure) Başarısız konsol girişi (Windows 4625) 🟠
AttachUserPolicy / PutUserPolicy 🔴 IAM yetki değişimi (Windows 4728) 🔴 P1
CreateAccessKey 🔴 Yeni erişim anahtarı (persistence) 🔴
StopLogging / DeleteTrail 🔴🔴 CloudTrail durduruldu (Windows 1102) 🔴 P1
PutBucketPolicy / PutBucketAcl 🔴 S3 erişim politikası değişti 🔴
DeleteObject (audit bucket) 🔴🔴 Log silme girişimi (6493 ihlali) 🔴 P1
AuthorizeSecurityGroupIngress 🔴 Firewall kuralı açıldı (Windows 4719) 🔴
GetSecretValue (toplu) 🔴 Secret exfiltration 🔴

4.64. Azure – PCI DSS Uyumlu Loglama

1. Activity Log + Diagnostic Settings:

# 🔴 Activity Log → Log Analytics + immutable storage
Set-AzDiagnosticSetting `
  -ResourceId "/subscriptions/" `
  -WorkspaceId "" `        # 🔴 Türkiye/AB region (TCMB!)
  -StorageAccountId "" `
  -Enabled $true `
  -Category @("Administrative","Security","Policy","Alert")

2. Entra ID (Azure AD) Sign-in + Audit logs:

# 🔴 Kimlik olayları - 90 gün Entra'da, uzun vade Log Analytics + arşiv
Set-AzDiagnosticSetting `
  -ResourceId "/providers/microsoft.aadiam/diagnosticSettings" `
  -WorkspaceId "" `
  -Category @("SignInLogs","AuditLogs","RiskyUsers","ManagedIdentitySignInLogs")

3. Immutable Blob Storage – Silme Yasağı (6493/TCMB):

# 🔴 Time-based retention policy - locked (Compliance muadili)
Set-AzRmStorageContainerImmutabilityPolicy `
  -ResourceGroupName "pci-rg" `
  -StorageAccountName "pciauditlogstr" `
  -ContainerName "audit-logs" `
  -ImmutabilityPeriod 3650                    # 🔴 10 yıl

# Policy'yi KİLİTLE - artık kaldırılamaz/azaltılamaz
Lock-AzRmStorageContainerImmutabilityPolicy `
  -ResourceGroupName "pci-rg" `
  -StorageAccountName "pciauditlogstr" `
  -ContainerName "audit-logs" -Etag ""

Azure Kritik Olayları:

Olay Anlam Kritiklik
Sign-in failure (Entra) Başarısız giriş (Windows 4625) 🟠
Microsoft.Authorization/roleAssignments/write 🔴 Rol ataması (Owner/Contributor – Windows 4728) 🔴 P1
Diagnostic setting delete 🔴🔴 Log toplama durduruldu (Windows 1102) 🔴 P1
Microsoft.KeyVault/vaults/secrets/read (toplu) 🔴 Key Vault secret exfiltration 🔴
NSG rule değişimi 🔴 Firewall kuralı değişti (Windows 4719) 🔴
Storage blob delete (audit) 🔴🔴 Log silme girişimi (6493) 🔴 P1
Conditional Access policy değişimi 🔴 MFA/erişim politikası zayıflatıldı 🔴

Microsoft Defender for Cloud + Sentinel: Azure ortamında GuardDuty muadili Defender for Cloud (tehdit tespiti), SIEM olarak Sentinel’dir. Sentinel workspace Türkiye/AB region seçilmeli; Log Analytics retention aşıldıktan sonra immutable storage’a arşivlenmelidir.

4.65. GCP – PCI DSS Uyumlu Loglama (Kısa)

  • Cloud Audit Logs – Admin Activity (varsayılan açık, kapatılamaz ✅) + Data Access (CHD erişimi için ayrıca etkinleştirilmeli – 10.2.1.1)
  • Log sink → Bucket Lock: gcloud logging sinks create ile logları bir bucket’a yönlendir; Bucket Lock retention policy ile WORM (silme yasağı)
  • VPC Flow Logs + Security Command Center (tehdit tespiti)
  • Kritik olaylar: SetIamPolicy (rol değişimi – 4728), google.logging...DeleteSink (log durdurma – 1102), Cloud KMS/Secret Manager toplu erişim

4.66. Bulut – Ortak Silme Yasağı ve Merkezileştirme

Üç bulutta da silme yasağının teknik temeli aynıdır: immutable object storage + retention lock.

Kontrol AWS Azure GCP
Audit log servisi CloudTrail Activity Log + Diagnostic Cloud Audit Logs
WORM (silme yasağı) S3 Object Lock Compliance Immutable Blob (locked) Bucket Lock
Log yazamazsa CloudTrail her zaman yazar; validation ile tespit Admin Activity kapatılamaz
Bütünlük Log file validation (SHA-256 + imza)
Anahtar yönetimi KMS Key Vault / Managed HSM Cloud KMS

🔴 Merkezileştirme kuralı: Bulut hangi bölgede olursa olsun, ham log + audit kaydı yurt içi SIEM’de (QRadar/ELK) merkezileştirilmelidir. Bulutun kendi log servisi (CloudWatch/Sentinel/Cloud Logging) tek başına yeterli değildir. PCI DSS 10.3.3 (merkezi sunucu), 10.4.1.1 (otomatik korelasyon) ve çapraz kaynak korelasyon (bulut + on-prem FortiGate + AD + DB) için SIEM zorunludur.

🔴 Arşiv hedefi de yurt içinde olmalı: Yukarıdaki tablodaki WORM çözümleri (S3 Object Lock, Azure Immutable Blob, GCP Bucket Lock) teknik olarak silme yasağını sağlar; ancak ödeme kuruluşunun 10 yıllık regülatif arşivi bunların yurt dışı bölgelerinde tutulamaz (TCMB). Doğru kurgu: bulut kaynaklı loglar da dahil olmak üzere tüm audit kayıtları yurt içi SIEM → yurt içindeki S3-uyumlu Object Lock (Compliance Mode) veya yurt içi bulut / LTO WORM tape hattına akar. Bölüm 3.2’deki WORM seçenekleri tablosunda hangi çözümün ödeme kuruluşunda kullanılabilir olduğunu (ve MinIO’nun 2026 durumunu) işaretledim.

4.67. Bulut – SIEM Korelasyon Kuralları

🔴 P1 – Anında Alarm

Kural C1 – Bulut Audit Log Durduruldu 🔴🔴 (Windows 1102 Muadili)

  AWS:   eventName IN ("StopLogging","DeleteTrail","UpdateTrail")
  Azure: operationName = "Microsoft.Insights/diagnosticSettings/delete"
  GCP:   protoPayload.methodName CONTAINS "DeleteSink"
  → P1 KRİTİK: PCI DSS 10.7 - kritik güvenlik kontrolü arızası
  → MITRE: T1562.008 (Disable Cloud Logs)

Kural C2 – Ayrıcalıklı Rol/Politika Verildi 🔴 (Windows 4728 Muadili)

  AWS:   eventName IN ("AttachUserPolicy","PutUserPolicy","AddUserToGroup")
         AND policy CONTAINS ("AdministratorAccess","*:*")
  Azure: roleAssignments/write AND roleDefinition IN ("Owner","Contributor")
  GCP:   SetIamPolicy AND role CONTAINS ("owner","editor","admin")
  → P1: CyberArk/PIM oturumu + Change Ticket ile eşleştir
  → MITRE: T1098

Kural C3 – Audit Bucket’ta Silme Girişimi 🔴🔴 (6493 İhlali)

  AWS:   eventName IN ("DeleteObject","DeleteObjectVersion","PutLifecycleConfiguration")
         AND bucket = audit_bucket
  Azure: blob delete on immutable container
  → P1: Object Lock/immutability engellemeli. Engellemediyse config hatalı!
  → MITRE: T1485 / T1070

Kural C4 – CHD Storage’a Anormal Erişim 🔴 (PCI 10.2.1.1)

  AWS:   CloudTrail data event: GetObject on payment-chd-bucket
         AND COUNT > 100 in 5 dk BY same principal
  → PCI DSS 10.2.1.1 - toplu kart verisi erişimi
  → MITRE: T1530 (Data from Cloud Storage)

Kural C5 – Secret/Anahtar Toplu Erişim 🔴

  AWS:   GetSecretValue / kms:Decrypt COUNT > 20 in 5 dk
  Azure: KeyVault secret read (toplu)
  GCP:   SecretManager AccessSecretVersion (toplu)
  → MITRE: T1552.005 (Cloud Secrets Management)

🟠 P2 – Aynı Gün

Kural C6 – Güvenlik Grubu / NSG / Firewall Açıldı

  AWS:   AuthorizeSecurityGroupIngress AND (0.0.0.0/0 OR port IN (22,3389,1433,5432))
  Azure: NSG rule create/update AND source = "Internet"
  → PCI 1.2/1.3 - CDE'ye ağ erişimi genişletildi
  → MITRE: T1562.007

Kural C7 – Impossible Travel (Bulut Konsol)

  Console/portal login SUCCESS country_A FOLLOWED BY country_B WITHIN impossible_travel
  OR login WITHOUT MFA
  → MITRE: T1078.004 (Cloud Accounts)

Kural C8 – Yeni Erişim Anahtarı / Servis Hesabı (Persistence)

  AWS:   CreateAccessKey OR CreateUser
  GCP:   CreateServiceAccountKey
  AND NO change_ticket
  → MITRE: T1098.001

4.68. Bulut – Denetim Kanıtları ve Sık Bulgular

Denetim Kanıt Listesi (Özet)

  • CloudTrail/Activity Log/Cloud Audit multi-region + organization-wide aktif
  • Data events aktif – CHD storage’a erişim loglanıyor (PCI 10.2.1.1)
  • Log file validation (AWS) / bütünlük mekanizması aktif (10.3.4)
  • Audit bucket Object Lock Compliance / immutable locked (silme yasağı – 6493)
  • Log’lar KMS/Key Vault ile şifreli (at-rest)
  • 🔴 Veri lokasyonu: CDE ve audit log Türkiye/onaylı bölgede – TCMB değerlendirmesi
  • Bulut log’ları yurt içi SIEM’e akıyor (10.3.3) – uçtan uca test
  • GuardDuty/Defender for Cloud/SCC (tehdit tespiti) aktif
  • IAM: kök hesap MFA + kullanılmıyor; least privilege; retention 10 yıl

En Sık Denetim Bulguları

Bulgu Sonuç
🔴 CloudTrail data events kapalı CHD storage erişimi loglanmıyor – PCI 10.2.1.1 fail
🔴 Tek bölge trail (multi-region değil) Pasif bölgedeki aktivite görünmez
🔴 S3 Object Lock Governance (Compliance değil) Log silinebilir – 6493 riski
🔴 Azure immutability policy unlocked Retention azaltılabilir/kaldırılabilir
🔴 CDE/audit log global (US/EU) bölgede, TCMB değerlendirmesi yok Veri lokasyonu ihlali riski
🔴 Bulut log’ları SIEM’e gitmiyor, sadece CloudWatch/Sentinel’de 10.3.3 merkezileştirme yok
🔴 CloudWatch/Monitor “audit” sanılıyor Yönetim aktivitesi (CloudTrail/Activity) eksik
🔴 Kök hesap günlük kullanımda / MFA’sız PCI 8.x fail
🟠 Log file validation kapalı Tamper tespiti yok (10.3.4)
🟠 GuardDuty/Defender kapalı Bulut katmanında tehdit tespiti yok

Bulut – Beş Maddelik Ana İlke:

  1. Veri lokasyonu önce gelir – TCMB tebliği CDE’yi Türkiye’de zorunlu kılar; global region için hukuki değerlendirme + risk kabul şart.
  2. CloudTrail/Activity Log/Cloud Audit = bulutun Security Event Log’u CloudWatch/Monitor uygulama logudur, karıştırma.
  3. Data events zorunlu CHD storage’a her erişim (10.2.1.1) ancak data event ile yakalanır.
  4. Immutable object storage Compliance/locked modda silme yasağının bulut karşılığı (6493).
  5. Yurt içi SIEM’de merkezileştir bulutun kendi log servisi çapraz korelasyon ve 10.3.3 için yetmez.

Bu yazıda bulut ortamında log yönetimini; AWS CloudTrail, Azure Activity Log ve GCP Cloud Audit kurgusunu, data event’leri (CHD erişimi), immutable storage’ı ve ödeme kuruluşları için en kritik boyut olan veri lokasyonunu (TCMB) ele aldık. Bulut Loglama – Bölüm 7 böylece tamamlandı.

Serinin son yazısında “XDR/EDR ile Bütünsel Korelasyon ve Otomatik Yanıt” konularına giriyoruz: MITRE ATT&CK eşlemeli korelasyon kuralları, XDR→SIEM mimarisi ve çok aşamalı saldırı zinciri.

Başka bir yazıda görüşmek dileğiyle…

Bir yanıt yazın

Başa Dön