Active Directory Güvenlik Serisi – Bölüm 3: LDAP Signing Zorunlu Hale Getirme

Active Directory ortamlarında güvenliği artırmanın en kritik adımlarından biri, LDAP trafiğinin güvenli şekilde çalışmasını sağlamaktır. Bu yazıda LDAP Signing kavramını, etkilerini, yanlış anlaşılan noktaları ve gerçek hayatta uygulanması gereken adımları detaylı biçimde ele alıyoruz.

Bu seri boyunca NTLMv2 zorunlu hale getirme, SMBv1’i devre dışı bırakma gibi adımları tamamlamışsanız, sırada LDAP Signing’i devreye almak var. LDAP trafiğinin imzalanması, modern güvenlik standartlarının vazgeçilmez parçalarından biridir; ancak birçok kurumda hala etkin hale getirilmemiş durumdadır. Bunun başlıca nedeni, uygulamalara etkisi hakkında yanlış anlaşılmalar olmasıdır.

LDAP Signing ve Sealing Nedir?

LDAP (Lightweight Directory Access Protocol), Active Directory üzerindeki nesneleri okuma, yazma ve düzenleme işlemlerinde kullanılır. LDAP trafiği güvenlik ayarları uygulanmadığında şifrelenmemiş, imzalanmamış, yani düz metin (clear text) şekilde ağdan geçer.

Bu durumda bir saldırgan:

  • Paketi okuyabilir
  • Kimlik doğrulama bilgilerinin hash’lerini ele geçirebilir
  • Paketi değiştirebilir
  • Oturumu ele geçirip relay saldırıları yapabilir

Bu riskleri azaltmak için iki mekanizma vardır:

LDAP Signing (İmzalama)

Paketlerin bütünlüğünü korur.
Pakette değişiklik yapılıp yapılmadığını tespit eder.
Verinin gizliliğini sağlamaz, ancak manipülasyonu engeller.

LDAP Sealing (Şifreleme)

Veriyi şifreleyerek gizliliği sağlar.

Microsoft LDAP’ta sealing’i zorunlu tutmaz çünkü RFC’de zorunlu kılmayı sağlayan bir mekanizma yoktur. Sealing genellikle Kerberos veya NTLM üzerinden otomatik olarak devreye girer.

Özetle:

MekanizmaSağladığı GüvenlikZorunlu KılınabilirlikSigningVeri manipülasyonunu engellerEvet (GPO ile)SealingVeri gizliliği sağlarHayır (uygulamaya bağlı)

LDAP Signing aktif ama sealing yoksa: Trafik okunabilir ancak değiştirilemez.

LDAP Bağlantı Türleri

Simple Bind

Kullanıcı adı + parola açık şekilde gönderilir. Mutlaka TLS (LDAPS) ile kullanılmalıdır, aksi takdirde şifreler düz metin gider.

SASL Bind

Integrated Authentication’a benzer. NTLM, Kerberos veya client sertifikalarıyla çalışabilir. SASL bind üzerinden Signing ve Encryption (sealing) otomatik olarak sağlanabilir.

LDAP Client Signing Policy

Windows istemcilerde:

Computer Configuration > Windows Settings > Security Settings > Local Policies > Security Options

  • Network security: LDAP client signing requirements

Ayarlar:

DeğerAçıklamaNoneİmzalama yapılmazNegotiateİmzalama isteği gönderilir, sunucu kabul etmezse imzasız devam ederRequire signingSunucu imzalama yapmıyorsa bağlantıyı keser

Windows varsayılanı: Negotiate

Reg anahtarı:

HKLMSystemCurrentControlSetServicesLDAPLdapClientIntegrity

Domain Controller Signing Policy

Domain controller tarafında: Domain controller: LDAP server signing requirements

DeğerAçıklamaNoneDC imzalama teklif eder ama zorunlu kılmazRequire SigningDC, imzasız LDAP oturumlarını reddeder

Reg anahtarı:

HKLMSYSTEMCurrentControlSetServicesNTDSParametersLDAPServerIntegrity

Simple Bind İçin TLS (LDAPS) Devreye Almak

Simple Bind > TLS yoksa şifreler düz metin gider.

TLS için:

  • DC üzerinde uygun bir sertifika olmalı
  • Uygulamalar LDAPS (636) veya StartTLS (389) kullanacak şekilde güncellenmeli

StartTLS de güvenlidir, sadece port değişmez.

Load Balancer (LB) Kullanımında Dikkat Edilecekler

LDAP için load balancer kullanımı çoğu zaman güvenlik riskleri yaratır:

TLS Offloading > LB–DC arasında trafik açık olur
Kerberos çalışmaz (SPN uyuşmazlığı nedeniyle)
Channel Binding devreye girmez
VIP üzerinden LDAP genelde sağlıklı çalışmaz

LDAP uygulamalarının DC Locator mantığını anlaması daha güvenlidir.

İmzasız LDAP Bağlantılarını Tespit Etme (Auditing)

LDAP Signing zorunlu hale getirilmeden önce ortamdaki tüm imzasız bağlantıları bulmak gerekir.

Event ID 2887 — Günlük Özet

Her 24 saatte bir DC üzerinde görünür. Kaç tane imzasız LDAP bağlantısı olduğu bilgisi yer alır. Kaynak bilgisini vermez.

Event ID 2889 — İmzasız LDAP Bağlantı Detayı

Aktif etmek için:

reg add HKLMSYSTEMCurrentControlSetServicesNTDSDiagnostics /v “16 LDAP Interface Events” /t REG_DWORD /d 2

Bu log:

  • Client IP
  • Kullanıcı hesabı
  • Binding Type
    • 0 > SASL (signing yok)
    • 1 > Simple bind (TLS yok)

gibi kritik bilgiler sağlar.

MDI ile Raporlama

Microsoft Defender for Identity kullanıyorsanız:

  • TLS olmadan yapılan simple bind’leri tespit eder.
  • SASL imzasız oturumları raporlamaz.

LDAP Signing Uygulama Süreci

Yapılmaması Gerekenler

  • DC’lerde Require signing açmadan önce log analizi yapmadan zorlamayın.
  • LDAP signing’i zorunlu kılmanın LDAPS zorunlu kıldığı yanılgısına düşmeyin.
  • LB üzerinden gelen trafiğin güvenli olduğunu varsaymayın.
  • SASL signing olmayan oturumları “çok da önemli değil” diye düşünmeyin.

Yapılması Gerekenler

  • Önce 2887 ve 2889 loglarını toplayın.
  • Binding Type ayırımı yapın (SASL vs Simple).
  • Uygulamalarla iletişim kurun; Simple Bind → LDAPS’e geçirilmeli.
  • DC’leri önce None, sonra Require moduna kademeli geçirin.
  • Ortamda NTLM kullanımını azaltın.
  • Channel Binding’i ayrıca ele alın.