1️⃣ “Jump-Box Forest” (Bastion Forest) Tasarımı
Amaç: Domain Admin kimliklerini “internet-yüzlü” veya üretim sunucularından fiziksel olarak ayırmak. Böylece bir üretim sunucusu pwn’lense bile etki alanı tamamen gidemez.
Hızlı Ölçüt: Tier-0 admin’in girebildiği tek makineler = bastion forest içindeki DC’ler + PAW’lar. Prod sunucuya asla interaktif logon yok, sadece Privileged Session Manager tüneli.
2️⃣ Credential Guard + VBS (Virtualization-Based Security)

Nasıl Açılır?
# VBS + Credential Guard GPO Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard" ` -Name EnableVirtualizationBasedSecurity -Value 1 -Type Dword Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\LSA" ` -Name LsaCfgFlags -Value 1 -Type Dword # 1=CG on, 2=off, 0=not set
Kontrol: msinfo32
→ “Device Guard – Credential Guard running: Yes”.
Gotcha’lar • Klasik smart-card CSP’leri, bazı VPN sürücüleri ve eski AV çekirdek modülleri uyumsuz kalabilir. • Nested Hyper-V içinde VBS desteklenmez; fiziksel host’ta aç. • Beltek’ten Pass-the-Hash denemeleri direkt LSASS dışında kaldığı için başarısız olur.
3️⃣ TPM-Tabanlı BitLocker (OS & Data Disks)
- TPM’i hazırlayın:
tpm.msc
→ “Prepare the TPM”. BIOS’ta PTT/fTPM değil, donanım çipi olması tercih.- BitLocker-TPM Mode:
Enable-BitLocker -MountPoint "C:" -TpmProtector -UsedSpaceOnly ` -SkipHardwareTest
- Recovery Key Yönetimi • Azure AD hybrid iseniz otomatik olarak Azure’daki cihaz objesine yüklenir. • On-prem ise GPO →
Save BitLocker recovery information to AD DS
.- Network Unlock (isteğe bağlı): 2012+ DHCP/WDS sunucusu, RFC 7030 sertifika.
- Pre-Boot PIN? Yalnızca yüksek tehdit modelleri için; aksi hâlde HSM’deki TPM + Secure Boot zaten dizin dışı anahtarı kurtarır.
Golden rule: TPM 2.0 + Secure Boot + Measured Boot + BitLocker = disk çalıp offline kurcalama ≈ boşuna.
4️⃣ Azure Arc & Defender for Cloud ile Hibrit Sertleştirme
Azure Arc Onboarding
# 1. Indir + kur Invoke-WebRequest -Uri https://aka.ms/AzureArcAgent -OutFile ArcSetup.msi msiexec /i ArcSetup.msi /l*v log.txt # 2. Azure CLI login az connectedmachine connect --resource-group RG-OnPrem \ --name ANT-FSRV01 --location westeurope
• Sonrasında makine “Connected Machine” türünde görünür; Tag = Environment=OnPrem
. • Arc Policy Guest Config sayesinde CIS ‑ Server 2019 denetimlerini istediğin OU’ya zorlayabilirsin.
Defender for Cloud

5️⃣ Hardware-Rooted Güvenlik: UEFI Secure Boot + Measured Boot + DRTM
Etkinleştirme Hız Turu
- BIOS →
Secure Boot: Enabled
,Trusted Execution: On
. - Windows Features → “Device Health Attestation” ve “Hyper-V-Hypervisor” ( lazım ise).
- Shielded VM senaryosu: Host-Guardian Service (HGS) kur; önyükleme ölçümlerini karşılaştırıp yalnız temiz host’ta VM açtır.
Birlikte Çalışınca Ne Oluyor?
- Jump-Box Forest Tier-0 admin kimliklerini ayırır.
- PAW + Credential Guard bu kimliklerin RAM’de bile sızdırılmasını engeller.
- TPM + BitLocker disk çalınsa bile offline saldırıları reddeder.
- Secure Boot / DRTM işletim sistemi zincirinin ilk bit’ine kadar bütünlüğü ölçer.
- Azure Arc + Defender katmanı, bulut-temelli sürekli konfig uyumu + XDR izleme sunar.
🔒 Sonuç: Saldırgan, tek bir sunucudan içeri girse bile domain komple gitmez; kalıcılık kuramaz; sızma erken görünür.
Daha da Derine İnmek İstersek
- Windows Hello for Business (Key Trust) ile admin smart-card bağımlılığını kaldır.
- Hyper-V “vTPM” + Shielding Data = production VM’leri de hardware-root’lu yap.
- Attested Boot sonuçlarını Azure Policy’de “deny” olarak ayarla → temiz boot etmeyen makine CI/CD pipeline’a bile giremesin.
- Intune + Config Mgr Co-Mgmt; PAW’lar için tam disk şifreleme, application allow-listing (WDAC) politikalarını hibrit dağıt.
- PKI Rollup: Bastion forest içinde offline-root + online-issuing CA kur; tüm cihaz sertifikalarını buradan ver, güven kökü yine Tier-0’da kalsın.
1️⃣ Risk-Bedel Çizelgesi
Aşağıdaki tabloyu kendi ortamınızın gerçek tehdit modeline (ör. regülasyon, bütçe, SLA) göre tartın.
“Bedel” satırında 1 = ucuz / düşük efor, 5 = pahalı / yüksek efor; “Risk Azaltma”da 1 = kozmetik, 5 = oyun-değiştirici.
Hızlı karar kuralı: CapEx < 2 & Risk ≥ 4 ise “hemen yap”; CapEx ≥ 4 & Risk ≤ 3 ise POC → C-seviyesinde onay.
📁 0. Pre-Flight
# ScriptRunner.ps1 Install-Module -Name PSWindowsUpdate, Az.Accounts -Force -Scope CurrentUser Import-Module PSWindowsUpdate Write-Host "✅ Modüller hazır" # Güvenli icra politikası Set-ExecutionPolicy AllSigned -Scope Process -Force
🏰 1. Jump-Box Forest Kurulumu
# 1_Create-BastionForest.ps1 $SecForestName = "contoso-sec.local" $SecNet = "10.10.0.0/24" $DCEdition = "Server2019Standard" Install-WindowsFeature AD-Domain-Services -IncludeManagementTools Install-ADDSForest ` -DomainName $SecForestName ` -DatabasePath "D:\NTDS" -SysvolPath "D:\SYSVOL" ` -SafeModeAdministratorPassword (Read-Host -AsSecureString "DSRM PW") # Tek-yön trust (Prod→Bastion güven) New-ADTrust -Name $Env:USERDNSDOMAIN ` -TargetForest $SecForestName ` -Direction Outbound -Forest -Confirm:$false
Devam eden görevler
Tier0-Admins
global grubunu oluştur, üyelerini yalnız bastion DC’de tut.- GPO: “Deny log on locally” → Domain Admin’leri ürün DC’lerinde engelle.
🛡️ 2. Credential Guard + VBS
# 2_Enable-CredGuard.ps1 $Servers = @("PAW01","PAW02") Invoke-Command -ComputerName $Servers -ScriptBlock { Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard ` -Name EnableVirtualizationBasedSecurity -Value 1 -Type DWord Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\LSA ` -Name LsaCfgFlags -Value 1 -Type DWord gpupdate /force } Write-Host "Credential Guard tetiklendi; reboot şart"
test
Invoke-Command $Servers { Get-CimInstance Win32_DeviceGuard }
🔑 3. TPM BitLocker Devreye Alma
# 3_Enable-BitLocker.ps1 $Targets = Get-Content .\servers-bitlocker.txt # her satır FQDN foreach ($srv in $Targets) { Invoke-Command $srv -ScriptBlock { Enable-BitLocker -MountPoint "C:" -TpmProtector -UsedSpaceOnly ` -RecoveryPasswordProtector ` -SkipHardwareTest } }
Recovery Keys On-prem AD:
🔐 4. Secure Boot + DRTM Doğrulaması
# 4_Verify-SecureBoot.ps1 $report = foreach ($srv in $Targets){ $sb = Confirm-SecureBootUEFI -ErrorAction SilentlyContinue $tpm = Get-Tpm [PSCustomObject]@{ Host = $srv; SecureBoot = $sb; TPM20 = $tpm.TpmSpecVersion } } $report | Export-Csv .\SecureBootStatus.csv -NoType
DRTM’i (Intel TXT) BIOS’ta açtıktan sonra Device Health Attestation (DHA) servisi otomatik ölçü alır; Arc Policy ile “BootAttestation = Compliant” zorlayabilirsiniz.
☁️ 5. Azure Arc + Defender Birlikte
# 5_Arc-Defender.ps1 Connect-AzAccount $rg = "RG-OnPrem" $loc = "westeurope" # Sunucuları Arc’e bağla $Srv = @("ANT-FSRV01","ANT-SQL01") foreach ($s in $Srv){ Start-Process "https://aka.ms/AzureArcAgent" -Wait -ArgumentList "/quiet" az connectedmachine connect --resource-group $rg --name $s --location $loc } # Otomatik Defender planı az security auto-provisioning-setting update ` --name default --auto-provision On
🔄 İş Akışı & Zaman Çizelgesi (Fast-Track)

Ek Bilgi
- Budget-Savvy Taktik – Defender lisansını “per-server on-demand” aç; yalnız Tier-0 ve DMZ makinelerinde 7×24 tam EDR, kalanında CSPM.
- DSC / Ansible – Yukarıdaki playbook’u
ConfigurationData
dosyasıyla DSC’ye çevir; drift → Teams alert’i. - Supply-Chain Alarmı – UEFI Secure Boot ölçü verisini “Azure Attestation” ile CI/CD pipeline’ına entegre et; bozuk imajın prod’a çıkmasını blokla.