Windows etki alanında NTLM authentication nasıl devre dışı bırakılır?


NTLM (NT LAN Manager), temel Microsoft kimlik doğrulama protokolü Windows NT’den beri uzun süredir kullanılmaktadır. Microsoft, Windows 2000’de daha güvenli olan Kerberos kimlik doğrulama protokolü uygulamasına rağmen, NTLM (genellikle, NTLMv2’dir), Windows etki alanı ağlarında kimlik doğrulama için hala yaygın olarak kullanılıyor. Bu makalede, NTLMv1 ve NTLMv2 protokollerini devre dışı bırakıp Active Directory etki alanınızda Kerberos’u kullanmaya nasıl başlayacağınızı ele alacağız.

NTLMv1 kullanmamanız için birkaç sebep;

  • Zayıf şifreleme. Şifreleme için AES, SHA-256 gibi teknikler kullanılmaz.
  • Farklı araçlar (mimikatz gibi) kullanılarak LSA servisine ulaşılabilir.
  • Bir sunucu ile bir istemci arasında data interception saldırılarına ve ağ kaynaklarına yetkisiz erişime neden olan karşılıklı kimlik doğrulaması bulunmaz. Responder gibi bazı araçlar ağ üzerinden gönderilen NTLM verilerini alabilir ve bunları ağ kaynaklarına erişmek için kullanabilir.

Bu güvenlik açıklarının bazıları, daha güvenli şifreleme algoritmaları kullanan ve popüler NTLM saldırılarını önleyebilen bir sonraki NTLMv2 sürümünde düzeltildi. Ek olarak, NTLMv1 ve LM kimlik doğrulama protokolleri, Windows 7/Windows Server 2008 R2 ile başlayarak varsayılan olarak devre dışıdır.

GPO’yu NTLMv2’yi zorlamak için yapılandırma

Etki alanınızda NTLM kullanımını durdurmayı düşündüyseniz, her şeyden önce daha savunmasız sürümünü – NTLMv1 kullanmadığınızdan emin olmalısınız. Ağınızda NTLMv2 (veya Kerberos) yerine hala NTLMv1 kimlik doğrulaması kullanan birkaç eski cihaz veya hizmet olabilir. Bu nedenle, tamamen devre dışı bırakmadan önce, bu makaledeki NTLM kimlik doğrulama olay denetimi bölümünü okuyun.

Küçük open source ürünler, farklı network scanner’ların eski modelleri (tarananları paylaşılan ağ klasörlerine kaydeder), bazı NAS cihazları ve diğer eski donanım, yazılım ve işletim sistemlerinde NTLMv1’i devre dışı bıraktıktan sonra kimlik doğrulama sorunları olabilir.

Her şeyden önce, etki alanı yöneticisinin NTLM ve LM protokollerinin etki alanında kimlik doğrulaması için kullanılmadığından emin olması gerekir. Çünkü bazı durumlarda saldırgan bir NTLM/LM isteğine yanıt almak için özel istekler kullanabilir.

Tercih edilen kimlik doğrulama türünü group policy kullanarak yapılandırabilirsiniz. Group Policy Management Editor’ü (gpmc.msc) açın ve Default Domain Policy’i düzenleyin. GPO bölümüne gidin. Computer Configurations -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options bölümüne gidin ve Network Security: LAN Manager authentication level seçeneğini bulun.

Gpo ayarlarında 6 seçenek vardır.

  • Send LM & NTLM responses
  • Send LM & NTLM responses – use NTLMv2 session security if negotiated
  • Send NTLM response only
  • Send NTLMv2 response only
  • Send NTLMv2 response only. Refuse LM
  • Send NTLMv2 response only. Refuse LM& NTLM

Varsayılan olarak, Windows 7 ve daha yeni işletim sistemleri Send NTLMv2 response only seçeneğini kullanır. Bu seçenek etkinleştirilirse, istemci bilgisayarlar NTLMv2 kimlik doğrulamasını kullanır. Ancak AD etki alanı denetleyicileri LM, NTLM ve NTLMv2 isteklerini kabul eder.

Politika değerini en güvenli seçenek olan “Send NTLMv2 response only. Refuse LM& NTLM” ile değiştirebilirsiniz. Bu ayarı bir etki alanı denetleyicilerinde yapılandırırsanız, tüm LM ve NTLMv1 isteklerini reddeder.

NTLMv1’i kayıt defterinden de devre dışı bırakabilirsiniz. Bunu yapmak için, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lsa kayıt defteri anahtarında LmCompatibilityLevel adında ve 0-5 değerinde bir DWORD parametresi oluşturun. Değeri 5 olarak belirlerseniz eğer “Send NTLMv2 response only. Refuse LM NTLM” seçeneğine karşılık gelir.

Network security: Do not store LAN Manager hash value on next password change politikasının aynı GPO bölümünde etkinleştirildiğinden emin olun. Varsayılan olarak Windows Vista/Windows Server 2008 işletim sistemlerinde etkindir ve LM hash oluşturmasını önler.

NTLMv1 kullanmadığınızdan emin olduysanız, daha ileri gidebilir ve NTLMv2’yi devre dışı bırakmayı deneyebilirsiniz. NTLMv2 daha güvenli bir kimlik doğrulama protokolüdür. Ancak güvenlik açısından Kerberos’un çok gerisindedir. NTLMv2’de NTLMv1’de olduğundan daha az güvenlik açığı olmasına rağmen, yine de verilerin yakalanması ve yeniden kullanılması olasılığı vardır.

NTLM’yi devre dışı bırakmanın ana riski, hala NTLM kimlik doğrulamasını kullanabilen eski veya yanlış yapılandırılmış uygulamaların potansiyel kullanımıdır. Bu durumda, Kerberos’a geçmek için bu uygulamaları özel bir şekilde güncellemeniz veya yapılandırmanız gerekecektir.

NTLM Kimlik Doğrulama olay denetimi nasıl etkinleştirilir? (NTLM Authentication Audit Logging)

Etki alanınızdaki NTLM’yi tamamen devre dışı bırakmadan ve Kerberos’a geçmeden önce, etki alanında NTLM kimlik doğrulaması gerektiren ve kullanan hiçbir uygulama kalmadığından emin olun.

NTLM kimlik doğrulaması kullanan hesapları veya uygulamaları izlemek için, GPO’yu kullanarak tüm bilgisayarlarda denetim günlüğü ilkelerini etkinleştirebilirsiniz. Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options bölümünde, Network Security: Restrict NTLM: Audit NTLM authentication in this domain ayarını etkinleştirin.

Aynı şekilde Network Security: Restrict NTLM: Audit Incoming NTLM Traffic ayarını etkinleştirin ve Enable auditing for domain accounts olarak ayarlayın.

Bu politikaları etkinleştirdikten sonra, NTLM kimlik doğrulaması kullanma olayları Application and Services Logs-> Microsoft -> Windows -> NTLM bölümünde görünür. Her sunucudaki olayları analiz edebilir veya merkezi Windows Event Log Collector ile toplayabilirsiniz.

Olayları, Microsoft-Windows-Security-Auditing kaynağından aramanız gerekir. Event ID 4624 olan logları inceleyebilirsiniz. Package Name (NTLM only) değerine bakınız. Bu satır, hangi protokolün (LM, NTLMv1 veya NTLMv2) kimlik doğrulama için kullanıldığını gösterir. Bu sayede, eski protokolü kullanan tüm sunucuları ya da uygulamaları tespit edebilirsiniz.

Tüm etki alanı denetleyicilerinde NTLMv1 kimlik doğrulama olaylarını aramak için aşağıdaki PowerShell betiğini kullanabilirsiniz.

$ADDCs = Get-ADDomainController -filter
$Now = Get-Date
$Yesterday = $Now.AddDays(-1)
$NewOutputFile = “c:\Events\$($Yesterday.ToString(‘yyyyddMM’))_AD_NTLMv1_events.log”
function GetEvents($DC){
Write-Host “Searching log on ” $DC.HostName
$Events = Get-EventLog “Security” -After $Yesterday.Date -Before $Now.Date -ComputerName $DC.HostName -Message “V1” -instanceid 4624
foreach($Event in $Events){
Write-Host $DC.HostName $Event.EventID $Event.TimeGenerated
Out-File -FilePath $NewOutputFile -InputObject “$($Event.EventID), $($Event.MachineName), $($Event.TimeGenerated), $($Event.ReplacementStrings),($Event.message)” -Append
}
}
foreach($DC in $ADDCs){GetEvents($DC)}

Etki alanınızda NTLM kullanan kullanıcıları ve uygulamaları bulduktan sonra, onları Kerberos (muhtemelen SPN kullanarak) kullanmaya geçirmeyi deneyin. Bazı uygulamaların Kerberos kimlik doğrulamasını kullanmak için yeniden yapılandırılması gerekebilir. Kendi tecrübelerime göre, büyük ticari ürünlerin bile Kerberos yerine NTLM kullandığını görüyorum. Bazı ürünler için güncelleme veya yapılandırma değişikliği gerekiyor.

Kerberos kimlik doğrulaması için IP adresi yerine sunucunuzun DNS adını kullanmanız gerekir. Kaynaklarınıza bağlanırken IP adresini belirlerseniz, NTLM kimlik doğrulaması kullanılır.

Kerberos kullanamayan uygulamalar istisnalara eklenebilir. Bu, etki alanı düzeyinde devre dışı bırakılsa bile, NTLM kimlik doğrulamasını kullanmalarına izin verir. Bunu yapmak için, Network security: Restrict NTLM: Add server exceptions for NTLM authentication in this domain politikasına istisnaları ekleyin. Özel durum listesine NTLM kimlik doğrulamasının kullanılabileceği sunucuların adlarını da ekleyin. İdeal olarak, bu istisna listesinin boş olması gerekir. * karakterini kullanabilirsiniz.

Active Directory Etki Alanında NTLM’yi tamamen kısıtlama

NTLM’siz kimlik doğrulamanın etki alanınızdaki farklı uygulamalar için nasıl çalışacağını kontrol etmek için, kullanıcı hesaplarını “Protected Users” grubuna ekleyebilirsiniz. Bu özellik Windows Server 2012 R2’den beri kullanılabilir durumdadır. Bu güvenlik grubunun üyeleri yalnızca Kerberos kullanarak kimlik doğrulama yapabilir. NTLM, Digest Authentication ya da CredSSP’ye izin vermez. Böylece, Kerberos kullanıcı kimlik doğrulamasının (user authentication) farklı uygulamalarda düzgün çalıştığını doğrulayabilirsiniz.

Ardından, Active Directory etki alanındaki NTLM’yi Network Security: Restrict NTLM: NTLM authentication in this domain ilkesinde kullanarak tamamen devre dışı bırakabilirsiniz.

Politikanın 5 seçeneği vardır.

  • Disable: politika devre dışı bırakılır. Etki alanında NTLM kimlik doğrulamasına izin verilir.
  • Deny for domain accounts to domain servers: Etki alanı denetleyicileri, etki alanı hesapları altındaki tüm sunucular için NTLM kimlik doğrulama girişimlerini reddeder ve “NTLM is blocked” hatası görünür.
  • Deny for domain accounts: Etki alanı denetleyicileri, tüm etki alanı hesapları için NTLM kimlik doğrulama girişimlerini engeller ve “NTLM is blocked” hatası görünür.
  • Deny for domain servers: “Network security: Restrict NTLM: Add server exceptions for NTLM authentication in this domain” politikasında sunucu adı istisna listesinde olmadığı sürece, tüm sunucular için NTLM kimlik doğrulama istekleri yasaktır.
  • Deny all: Etki alanı denetleyicileri, tüm etki alanı sunucuları ve hesapları için tüm NTLM isteklerini engeller.

KAYNAKWINDOWS