Sistem/DevOps•8 dk okuma

Ağ Segmentasyonunda Sıfır Güven (Zero Trust): DMZ Bölgesindeki Web Sunucusundan İç Veritabanına Yalnızca İzinli Port Geçişi

Dış dünyaya açık web sunucusu hacklense bile saldırganın iç ağdaki veritabanına ve Active Directory'ye sıçramasını (lateral movement) engelleyen DMZ segmentasyonu ve Sıfır Güven ilkeleri.

AE

Ahmet Ertekin

14 February 2023

Ağ Segmentasyonunda Sıfır Güven (Zero Trust): DMZ Bölgesindeki Web Sunucusundan İç Veritabanına Yalnızca İzinli Port Geçişi

Ağ Segmentasyonunda Sıfır Güven (Zero Trust): DMZ Bölgesindeki Web Sunucusundan İç Veritabanına Yalnızca İzinli Port Geçişi

Birçok kurumda dış dünyaya açık e-ticaret veya kurumsal web sunucuları, iç ağdaki Active Directory ve veritabanı sunucularıyla aynı yerel ağda (LAN) barındırılır. Bir web açığı (SQL Injection, Log4j veya uzaktan kod çalıştırma) üzerinden web sunucusunu ele geçiren bir saldırgan, elini kolunu sallayarak iç ağdaki tüm dosya sunucularına, muhasebe veritabanlarına ve etki alanı denetleyicilerine erişebilir. Bu felaketi önleyen klasik ama tavizsiz savunma hattı DMZ (Demilitarized Zone - Arındırılmış Bölge) ve Sıfır Güven (Zero Trust) mimarisidir.

1. DMZ Mimarisi ve Çift Yönlü Güvenlik Duvarı Kuralı

DMZ, dış dünya (İnternet) ile iç ağ (LAN) arasında konumlanan izole bir ağ tamponudur:

[İNTERNET (Untrusted)]
         │
         ▼ (Yalnızca Port 80 ve 443 Geçebilir!)
[SOPHOS XGS GÜVENLİK DUVARI]
         │
         ▼
[DMZ BÖLGESİ: Web & E-Ticaret Sunucusu (192.168.100.10)]
         │
         ▼ (KATİ KURAL: DMZ'den İç Ağa Doğru YALNIZCA Port 1433 İzni!)
[İÇ AĞ (LAN): MS SQL Veritabanı Sunucusu (10.10.20.50)]

2. Altın Kural: "DMZ'den İç Ağa Asla Doğrudan Oturum Açılamaz!"

En kritik güvenlik ilkesi şudur:

  • İzin Verilen: DMZ'deki web sunucusu, iç ağdaki SQL sunucusunun yalnızca TCP 1433 portuna bağlanabilir (Web uygulamasının veri çekmesi için).
  • KESİNLİKLE YASAK OLANLAR:
    • DMZ'deki sunucu iç ağdaki hiçbir IP'ye ping atamaz (ICMP Drop).
    • DMZ'deki sunucu iç ağa RDP (3389), SSH (22), SMB (445) veya RPC oturumu açamaz!
    • DMZ'deki sunucu iç ağdaki Active Directory'ye üye yapılamaz (Ayrı bir Workgroup veya izole DMZ Forest olmalıdır).

3. Güvenlik Duvarı Kural Yapılandırması

Kural 1: Web_Inbound
- Source: Any (İnternet) -> Destination: DMZ_Web_Server (192.168.100.10)
- Services: HTTP (80), HTTPS (443) -> ACTION: ALLOW (IPS ve WAF Açık!)

Kural 2: DMZ_to_Database (Katı Kısıtlama)
- Source: DMZ_Web_Server (192.168.100.10) -> Destination: Internal_SQL_Server (10.10.20.50)
- Services: MSSQL (TCP 1433) -> ACTION: ALLOW

Kural 3: DMZ_to_Internal_DenyAll (Çöp Kuralı)
- Source: DMZ_Subnet -> Destination: Internal_LAN
- Services: ANY -> ACTION: DROP & LOG

Karşılaşılan Kritik Hatalar ve Çözüm İpuçları

  • DMZ Sunucusundan İç DNS'e İzin Verme Tuzağı: Web sunucusuna iç ağdaki Active Directory DNS sunucusunun IP'sini verirseniz, saldırgan web sunucusunu ele geçirdiğinde DNS üzerinden iç ağdaki tüm sunucu isimlerini keşfeder. Çözüm: DMZ sunucularına doğrudan Cloudflare (1.1.1.1) veya Google (8.8.8.8) gibi bağımsız genel DNS adresleri tanımlanmalıdır.

Mühendis Notu

Bir web sunucusunu tasarlarken "Bu sunucu yarın hacklenecek" varsayımıyla yola çıkın. Saldırgan web sunucusunun root/admin yetkisini ele geçirse bile, DMZ duvarına çarptığında iç ağdaki hiçbir kritik veriye dokunamadan o izole hücrede hapsolup kalmalıdır.