“Jump-Box Forest” (Bastion Forest)

“Jump-Box Forest” (Bastion Forest)

jump box forest nedir

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ç.

  • Pass-the-Hash denemeleri 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 TPM + Secure Boot zaten yeterlidir.
    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.

Pro İpucu: Arc-enabled sunucuyu “Auto-Provisioning = On” yap; Defender ajanı elle kurma. Alert’leri Sentinel’le birleştir, MITRE ATT&CK takibi hazır gelir.

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”.

  • Shielded VM senaryosu: 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 prod 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:

Get-BitLockerRecoveryPassword -MountPoint "C:" | Out-File "\\SEC-DC\Share\Recovery\$env:COMPUTERNAME.txt"

🔐 4. Secure Boot + DRTM Doğrulaması

# 4_Verify-SecureBoot.ps1
$report = foreach ($srv in $Targets){
 $sb = Confirm-SecureBootUEFI -ErrorAction SilentlyContinue
 $tpm = Get-Tpm
 @{ Host = $srv; SecureBoot = $sb; TPM20 = $tpm.TpmSpecVersion }
}
$report | Export-Csv .\SecureBootStatus.csv -NoType

DRTM BIOS’ta açıldıktan sonra Device Health Attestation servisi ölçü alır; Arc Policy ile “BootAttestation = Compliant” zorlanabilir.

☁️ 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.

  • DSC / Ansible – Playbook’u DSC’ye çevir; drift → Teams alert’i.

  • Supply-Chain Alarmı – UEFI Secure Boot ölçü verisini “Azure Attestation” ile CI/CD pipeline’ına entegre et.

Önceki Yazı Windows Client DNS Sıralaması: Gerçekten Sıralı mı Çalışır?
Windows Client DNS Sıralaması: Gerçekten Sıralı mı Çalışır?

DNS (Domain Name System) çözümlemesi, modern bilgisayar ağlarının en kriti...

Sonraki Yazı Jump-Box Forest nedir
Jump-Box Forest nedir

Active Directory ortamlarında güvenlik amaçlı oluşturulan ayrı bir forest ...