Blog

Active Directory’de Sahte Parola Değişimi (Fake Password Change) ve Tespit Yöntemleri

Active Directory ortamlarında kullanıcı ve servis hesaplarının parola güvenliği genellikle parola yaşı (password age) üzerinden değerlendirilir. Birçok güvenlik aracı ve denetim mekanizması, bir hesabın parolasının en son ne zaman değiştirildiğini belirlemek için pwdLastSet attribute’unu kullanır. Ancak Active Directory’de uzun süredir var olan bir davranış nedeniyle, bir hesabın parolası gerçekten değiştirilmeden pwdLastSet değeri güncellenebilir. Bu durum, parola güvenliği denetimlerinin yanıltılmasına ve eski parolaların yeni değiştirilmiş gibi görünmesine neden olabilir.

Bu makalede Active Directory’de “Fake Password Change” olarak bilinen bu davranışın nasıl oluştuğu, nasıl tespit edileceği ve güvenlik açısından nasıl yönetilmesi gerektiği ele alınacaktır.

Active Directory’de Parola Değişim Bilgisi Nasıl Tutulur?

Active Directory’de bir kullanıcının parolasının en son ne zaman değiştirildiği pwdLastSet attribute’ü ile takip edilir.

Bu attribute birçok güvenlik kontrolünde temel referans olarak kullanılır. Örneğin:

  • Parola süresinin dolup dolmadığını belirlemek
  • Eski parolaları tespit etmek
  • Güvenlik denetimleri ve compliance kontrolleri

Bu nedenle pwdLastSet değeri birçok organizasyonda parola güvenliği için kritik bir göstergedir.

Fake Password Change Nedir?

Fake password change, bir kullanıcının parolası değiştirilmeden pwdLastSet değerinin güncellenmesi durumudur.

Bu durumda:

  • Parola gerçekte değişmemiştir
  • Ancak sistemde yeni değiştirilmiş gibi görünür

Bu durum özellikle aşağıdaki kontrolleri yanıltabilir:

  • Parola yaşı kontrolleri
  • Service account denetimleri
  • Güvenlik raporları

Bu Davranış Neden Oluşur?

Bu davranış Active Directory’de bulunan “User must change password at next logon” seçeneğinin çalışma mantığından kaynaklanır.

Bu seçenek aktif edildiğinde Active Directory şu işlemi gerçekleştirir:

pwdLastSet = 0

Bu değer, kullanıcının henüz yeni bir parola belirlemediğini gösterir.

Daha sonra bu seçenek kaldırıldığında Active Directory şu varsayımı yapar:

Kullanıcı parolasını değiştirdi.

Bu nedenle pwdLastSet değeri mevcut tarih ve saat ile güncellenir.

Ancak bu işlem sırasında kullanıcı parolası gerçekte değiştirilmemiş olabilir.

Fake Password Change Nasıl Gerçekleştirilir?

Bu davranış oldukça basit bir şekilde tetiklenebilir.

“User must change password at next logon” seçeneği işaretlenir ve apply seçilir

Aşağıda görüldüğü gibi pwdLastSet = 0 olarak güncellendi yani kullanıcının henüz yeni bir parola belirlemediğini gösterir.

Aynı seçenek tekrar kaldırılır ve apply seçilir.

Bu işlem sonrasında pwdLastSet değeri güncel tarih olur. Ancak parolanın kendisi değişmemiştir.

Güvenlik Açısından Riskler

Bu davranış özellikle iki senaryoda güvenlik riski oluşturabilir.

Service Account Yönetimi

Service account parolaları genellikle uzun süre değiştirilmez çünkü parola değişimi uygulama kesintilerine neden olabilir. Bu nedenle bazı yöneticiler gerçek parola değişimi yerine pwdLastSet değerini güncelleyebilir.

Saldırgan Aktivitesi

Bir saldırgan bir hesabın kontrolünü ele geçirdiğinde ve pwdLastSet attribute’unu değiştirme yetkisine sahipse bu tekniği kullanabilir.

Bu durumda saldırgan:

  • Eski parolayı kullanmaya devam eder
  • Ancak sistemde parola yeni değiştirilmiş gibi görünür

Bu durum özellikle eski parolaların tespitine dayanan güvenlik kontrollerini yanıltabilir.

Fake Password Change Nasıl Tespit Edilir?

Bu durumu tespit etmek için yalnızca pwdLastSet değerine bakmak yeterli değildir.

Gerçek parola değişimini doğrulamak için unicodePwd attribute’unun değişim zamanı incelenmelidir.

Active Directory replikasyon metadata’sı kullanılarak attribute değişim zamanları analiz edilebilir.

Örneğin aşağıdaki PowerShell komutu bir hesabın attribute değişim metadata’sını gösterir:

Get-ADReplicationAttributeMetadata

Bu çıktıda özellikle şu iki attribute incelenmelidir:

  • pwdLastSet
  • unicodePwd

Eğer pwdLastSet değeri güncel fakat unicodePwd değişim zamanı eskiyse, bu durum sahte parola değişimine işaret edebilir.

Fake password tespit etmek için aşağıdaki script i de kullanabilirsiniz.

https://github.com/PyroTek3/ActiveDirectory/blob/main/Get-FakePWChanges.ps1

Ölçekli Ortamlarda Tespit

Büyük ortamlarda bu tür durumları manuel olarak tespit etmek zor olabilir. Bu nedenle PowerShell ile domain genelinde tarama yapılabilir.

Bu yaklaşım sayesinde:

  • Domain Admin hesapları
  • Service account’lar
  • Kritik kullanıcılar

gibi hesaplar hızlı şekilde analiz edilebilir.

Önleme ve Güvenlik Önerileri

Bu davranış Active Directory’nin tasarımından kaynaklandığı için tamamen engellenmesi mümkün değildir. Ancak aşağıdaki önlemler riski azaltabilir:

  • Kullanıcı ve servis hesaplarında gereksiz attribute yazma izinlerinin kaldırılması
  • Service account yönetimi için gMSA kullanılması
  • Parola değişimlerinin event log üzerinden izlenmesi
  • pwdLastSet yerine birden fazla veri kaynağı kullanılarak güvenlik analizi yapılması

Active Directory’de pwdLastSet attribute’u birçok güvenlik kontrolünün temelini oluşturur. Ancak bu attribute bazı durumlarda gerçek parola değişimi gerçekleşmeden güncellenebilir.

Bu nedenle parola güvenliği değerlendirmelerinde yalnızca pwdLastSet değerine güvenmek yerine ek log kaynakları ve replikasyon metadata’sı da incelenmelidir.

Doğru izleme ve erişim kontrolü mekanizmaları ile sahte parola değişimleri tespit edilebilir ve güvenlik riskleri azaltılabilir.

İlgili Makaleler

Bir yanıt yazın

Başa dön tuşu