A striking abstract cloudscape featuring wispy white clouds against a deep blue sky, evoking a sense of tranquility.

Ankara merkezli özel bir bankada 2025 yılında Defender for Cloud projesi yaptık. Banka, Azure’da 14 subscription içinde 2.800+ kaynak (340 VM, 95 SQL Server, 220 Storage Account, 18 AKS cluster, vs) çalıştırıyordu. BDDK denetiminden gelen “siber güvenlik durum yönetimi şart, bunu kanıtlayın” maddesi bu projenin başlangıç noktasıydı. 5 ay sonunda Secure Score 28’den 78’e çıktı, BDDK denetimi temiz raporla kapandı, aylık güvenlik fatura ~~12.500 USD olarak stabilize oldu. Bu yazı o projeden notlar.

Defender for Cloud’un İki Yüzü: CSPM ve CWP

Microsoft Defender for Cloud’u doğru anlamak için iki ayrı işlevini ayırt etmek gerekiyor:

CSPM (Cloud Security Posture Management) CWP (Cloud Workload Protection)
Ne yapar Konfigürasyon zafiyetlerini tespit eder, öneri sunar Aktif tehditleri tespit eder, runtime saldırı korur
Örnek “Bu Storage public access açık”, “Bu SQL TDE kapalı” “VM’ye brute force RDP saldırısı geliyor”, “SQL injection denenmiş”
SKU Foundational (ücretsiz) + Defender CSPM (ücretli) Defender for X plans (her kaynak için ayrı)
Tipik aylık maliyet $0 – $5/kaynak $15 – $250/kaynak (kaynak tipine göre)

Bankada her iki tarafı da açtık. CSPM denetim için, CWP runtime savunma için.

Defender Plan’ları: Hangileri Açılmalı

Defender plan’ları her resource type için ayrı ayrı açılır:

  • Defender for Servers: VM ve Arc-enabled servers için. Tier 1 (~$5/server/ay) – log collection. Tier 2 (~$15/server/ay) – Microsoft Defender for Endpoint dahil.
  • Defender for SQL: Azure SQL DB, Managed Instance, SQL on VMs. ~$15/server/ay.
  • Defender for Storage: Storage account başına ~$10/ay + transaction başına ücret.
  • Defender for Containers: AKS + ACR için. ~$7/vCore/ay.
  • Defender for Key Vault: Key Vault başına ~$2/100K transaction.
  • Defender for App Service: ~$15/instance/ay.
  • Defender for Resource Manager: Subscription başına ~$4/ay. Yönetim plane saldırılarını tespit eder.
  • Defender for DNS: Sub başına ~$0.7/M query.

Bankada açtıklarımız: Servers Tier 2 (340 VM × $15 = $5.100/ay), SQL ($1.425/ay), Storage ($2.200/ay), Containers ($1.260/ay), Resource Manager (14 sub × $4 = $56/ay), Key Vault, App Service, DNS. Toplam aylık ~$11.000. CSPM Premium’u da aylık ~$1.500 ekliyor. Genel toplam ~$12.500.

Onboarding: Subscription Bazında Plan Aktivasyonu

# Subscription bazında Defender for Servers Plan 2 aç
az security pricing create -n VirtualMachines --tier 'Standard' --subplan 'P2'

# Defender for SQL aç (Azure SQL için)
az security pricing create -n SqlServers --tier 'Standard'

# Defender for Storage aç
az security pricing create -n StorageAccounts --tier 'Standard' 
  --extensions name=OnUploadMalwareScanning isEnabled=True 
  --extensions name=SensitiveDataDiscovery isEnabled=True

# Defender for Containers aç
az security pricing create -n Containers --tier 'Standard'

# Defender CSPM premium aç
az security pricing create -n CloudPosture --tier 'Standard'

14 subscription × 8 plan = 112 manuel komut yerine Bicep modülü ile policy assignment yaptık, MG seviyesinde “Enable Defender for X” policy’leri inherit oldu, tek seferde tüm sub’lara yayıldı.

Secure Score: Anlık Posture Göstergesi

Secure Score 0-100 arası bir skor. Microsoft’un control’lerini ne kadarına uyuyorsun, o kadar yüksek. Bankada başlangıç 28/100. İlk ay yapılan düzeltmeler:

  • “Storage accounts should disallow public access” – 220 storage’ın 47’si açıktı, kapatıldı.
  • “SQL servers should have an Azure AD admin provisioned” – 95 server’ın 78’inde yoktu, AAD admin atandı.
  • “Network Security Groups should restrict SSH from internet” – 22 NSG’de açıktı, JIT’e geçildi.
  • “Diagnostic logs in Key Vault should be enabled” – 80 KV’nin 65’inde diag yoktu, policy ile DeployIfNotExists.

3. ay sonunda Secure Score 65/100. 5. ay 78/100. Geri kalan 22 puanın çoğu “kabul edilen risk” (örn: bir legacy uygulama için public IP gerekli, exemption ile dokümante).

Regulatory Compliance: PCI-DSS, ISO 27001 Dashboard

Bankada PCI-DSS uyumu için özellikle değerli. Defender for Cloud’da Compliance dashboard’a girince:

  • PCI DSS 4.0
  • ISO 27001:2022
  • Microsoft Cloud Security Benchmark
  • NIST SP 800-53
  • CIS Microsoft Azure Foundations Benchmark

Her standart için %X uyumlu raporu otomatik. PCI-DSS’de “Requirement 8.2.4: Privileged accounts must use multi-factor authentication” gibi maddelerin Azure’daki karşılığını kontrol ediyor. Eksik olanlar için “Remediation steps” sunuyor.

Banka denetiminde BDDK denetçisine bu dashboard’un screenshot’larını teslim ettik, “kanıtlanabilir kontrol noktaları” maddesini kapattık.

JIT VM Access: RDP/SSH’i Sürekli Açık Tutmama

Just-In-Time VM Access ile yönetici RDP/SSH’i sürekli açık tutmak yerine talep ettiğinde NSG kuralı geçici olarak (varsayılan 3 saat) açılıyor.

az security jit-policy create 
  --name "default" 
  --resource-group rg-prod-vms 
  --location turkeywest 
  --kind "Basic" 
  --virtual-machines '[
    {
      "id":"/subscriptions/.../resourceGroups/rg-prod-vms/providers/Microsoft.Compute/virtualMachines/sql-prod-01",
      "ports":[
        {"number":22,"protocol":"TCP","allowedSourceAddressPrefix":"VirtualNetwork","maxRequestAccessDuration":"PT3H"},
        {"number":3389,"protocol":"TCP","allowedSourceAddressPrefix":"VirtualNetwork","maxRequestAccessDuration":"PT3H"}
      ]
    }
  ]'

Yönetici “Request access” portal’a tıklar, sebep girer (audit log’a kaydolur), NSG kuralı 3 saat aktif olur, sürenin sonunda otomatik kapanır. Bankada 47 production VM’de aktif. Aylık ortalama 130 access request, hepsi audit’e düşüyor.

File Integrity Monitoring

Defender for Servers Plan 2 ile FIM dahil. Kritik dosyaların (Windows registry, Linux config files) değişimlerini izliyor.

Bankada FIM kuralları:

  • /etc/passwd, /etc/shadow, /etc/sudoers değişiklikleri
  • HKLMSOFTWAREMicrosoftWindowsCurrentVersionRun kayıtları
  • web server config (httpd.conf, nginx.conf)
  • SSH authorized_keys

Değişim tespit edildiğinde alert tetikleniyor, SOC ekibi 30 dakika içinde gözden geçiriyor. 6 ayda 4 gerçek incident tespit edildi (3 yetkili admin değişikliği, 1 unauthorized config change → o gece SOC müdahale ettik).

Multi-Cloud: AWS ve GCP’yi Defender’a Bağlama

Bankanın AWS’de de bazı kaynakları vardı (S3 buckets, EC2 instances). Defender for Cloud, AWS ve GCP’yi connect edebiliyor:

  1. Defender for Cloud → Environment Settings → Add Environment → AWS
  2. AWS Account ID gir
  3. CloudFormation stack download et
  4. AWS console’da deploy et (Defender’a okuma izni veriyor)
  5. Defender, AWS kaynaklarını keşfediyor, CSPM ve CWP uyguluyor

Tek pane of glass: hem Azure hem AWS güvenlik durumu aynı dashboard’da. Bankada AWS S3 bucket’ları için “public access açık” alert’ları aldık, biraz unutulmuş bucket düzeltildi.

Sahada Düşülen Üç Tuzak

  1. Tüm Defender plan’larını yüksek tier’da açmak: Test/dev subscription’larında Plan 2 gereksiz, Plan 1 (sadece monitoring) yeter. Production’da Plan 2 + ek özellikler. Bu ayrım ile aylık fatura %35 düşürülebilir.
  2. Recommendations’ı aksiyona dönüştürmemek: Defender 200+ recommendation listeler, hepsi takip edilmezse “havuz” oluşur. Subscription owner’lara monthly review session koy, top 10 öncelikli recommendation’a aksiyon planı.
  3. Storage Defender’ın transaction maliyeti: Defender for Storage’da malware scanning ve sensitive data discovery aktifse transaction başına ücret var. Bir DataLake Storage’da günlük milyonlarca transaction varsa fatura katlanıyor. Selectively enable: critical bucket’larda aç, log/temp bucket’larda kapat.

Sonuç: Defender Tek Başına Güvenlik Değil, Bir Görünürlük Aracı

Defender for Cloud kurmak güvenliği “sağlamaz”, görünürlüğü sağlar. Asıl iş bulguları aksiyona dönüştürmek. Bankada başarılı olduğumuz model: Aylık Security Council toplantısı, Secure Score değişimi review, top 5 incident analizi, action item takibi. Bu disiplin olmasa Defender pahalı bir log collector olarak kalırdı.

CloudSpark olarak Azure güvenlik posture assessment, Defender for Cloud implementasyon ve sürekli güvenlik operasyonu (Managed SOC) hizmetleri sunuyoruz. Mevcut Azure ortamınız için bir kerelik ücretsiz Secure Score değerlendirmesi yapıyoruz.

🇹🇷 Türkçe🇬🇧 English🇩🇪 Deutsch🇫🇷 Français🇸🇦 العربية🇷🇺 Русский🇪🇸 Español