Kerberos Delegasyonu Nedir? Kısıtlı Yetkilendirmenin Güvenliğini Sağlama
Siber suç günümüz toplumunda büyüyen bir endişedir; özellikle mobil cihazlara yönelik artan risklerle birlikte bu sorunun daha da kötüleşmesi bekleniyor. Buna yanıt olarak güvenlik uzmanları siber güvenliği artırmak için sürekli olarak yeni stratejiler arıyor. Böyle bir strateji, güvenilmeyen ağlardaki güvenilen ana bilgisayarlar arasındaki hizmet isteklerini doğrulayan bir ağ güvenlik protokolü olan Kerberos'un kullanılmasıdır. MIT tarafından geliştirilen Kerberos, artık diğer işletim sistemlerine yönelik uygulamalarla birlikte Microsoft Windows tarafından kullanılan varsayılan yetkilendirme teknolojisidir. Adını efsanevi üç başlı köpekten alan bu protokol, paylaşılan gizli kriptografi aracılığıyla güvenli kimlik doğrulama ve bilet verilmesini sağlar, gizlice dinleme ve tekrarlama saldırılarına karşı koruma sağlar.
Kerberos Delegasyonu Nedir?
Kerberos delegasyonu, Windows Server 2000'e kadar uzanan uzun bir geçmişe sahiptir. Bununla birlikte, Active Directory ile çalışan birçok mühendis genellikle Kerberos delegasyonunun çeşitli uygulamalarına, bunların amaçlarına ve kötüye kullanım potansiyeline aşina değildir. Bireylerin yanlışlıkla Kerberos delegasyonunu devredilen izinlerle eşitlemesi yaygındır. Kerberos delegasyonunun pratik uygulaması, bir uygulamanın farklı bir sunucuda depolanan kaynaklara erişimini kolaylaştırmaktır. Örneğin, bir web sunucusunun, bir web sitesi için başka bir yerde barındırılan SQL veritabanı gibi kaynaklara erişmesi gerekebilir. Web sunucusunun hizmet hesabına veritabanına doğrudan erişim izni vermek yerine, hizmet hesabı SQL sunucusu hizmetine devredilebilir. Bir kullanıcı web sitesinde oturum açtığında hizmet hesabı, kullanıcı adına SQL sunucu hizmetine erişim talebinde bulunacaktır. Bu, kullanıcının, web sunucusunun hizmet hesabı için herhangi bir erişim sağlamaya gerek kalmadan, yetkilendirildiği veritabanındaki içeriğe erişmesine olanak tanır.
Kerberos Delegasyonu Türleri
Yıllar geçtikçe Kerberos delegasyonunun çeşitli varyasyonları ortaya çıktı. Kısıtlanmamış delegasyon olarak bilinen ilk uygulama, Windows Server 2000'de tanıtıldı. Ancak o zamandan bu yana, kısıtlı delegasyon ve kaynak tabanlı kısıtlı delegasyon gibi daha güvenli delegasyon versiyonları geliştirildi. Aşağıdaki bölümlerde her bir delegasyon türü daha ayrıntılı olarak ele alınacaktır. Bir bilgisayarda veya kullanıcı hesabında temsilci atamayı ayarlamak için Active Directory Kullanıcıları ve Bilgisayarları'ndaki Temsilci Seçme sekmesine gidin. Kullanıcı hesaplarına bir servicePrincipalName (SPN) atanmış olması gerektiğini unutmamak önemlidir. Sekmedeki ilk seçenek, bir hesabın, yetkilendirme için güvene açıkça izin vermeyecek şekilde yapılandırılmasına olanak tanır. Bu ayar genellikle hiçbir zaman yetki vermek için kullanılmaması gereken hassas veya idari hesaplara uygulanır. İkinci seçenek, bir hesap için sınırlandırılmamış yetkilendirmeye izin verirken üçüncü seçenek, kısıtlı yetkilendirme için yapılandırmayı kolaylaştırır.
Kısıtsız Delegasyon
Bu, delegasyonun orijinal uygulamasıdır ve aynı zamanda en az güvenli olanıdır. “Kısıtlanmamış yetkilendirme” etkinleştirildiğinde nesnenin userAccountControl özelliğine “TRUSTED_FOR_DELEGATION” bayrağı eklenir. Bu, nesnenin, kısıtlanmamış yetkilendirmenin etkin olduğu bir ana bilgisayarda kimlik doğrulaması yaptığında, bilet veren bileti (TGT) bellekte saklamasına olanak tanır. Sonuç olarak, ana bilgisayar daha sonra gerekirse bu kullanıcının kimliğine bürünebilir. Ayrıcalıklı bir hesabın, kısıtlanmamış yetkilendirmenin etkin olduğu bir ana bilgisayarda kimlik doğrulaması yaptığı bir senaryoyu düşünün. Bu hesap, ayrıcalıklı kullanıcı olarak etki alanı içinde yapılandırılmış herhangi bir hizmete erişebilir. Daha da kötüsü, ayrıcalıklı hesapları otomatik olarak ana makinenizde kimlik doğrulaması yapmaya zorlayan yöntemler olsaydı ne olurdu? "Yazıcı hatasını" kullanarak, bir etki alanı denetleyicisini ana makinenizde kimlik doğrulaması yapmaya zorlayabilir ve böylece o hesabın TGT'sini bellekte bırakabilirsiniz.
Kısıtlı Delegasyon
Windows Server 2003'te tanıtılan bu özellik, bir hesabın devredilebileceği hizmetlerin yapılandırılmasına olanak tanır ve böylece bir tehlike durumunda olası riskleri sınırlandırır. Kısıtlı delegasyonun farklı ormanlarda çalışmadığına dikkat edilmelidir.
Bir hesaba kısıtlı yetkilendirme uygulandığında iki işlem gerçekleşir:
- userAccountControl özelliği “TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION” bayrağıyla güncellenir.
- msDS-AllowedToDelegateTo özniteliği, temsilci sekmesinde belirtilen SPN ile doldurulur.
Kısıtlı yetkilendirmeden yararlanmak, kısıtlanmamış yetkilendirmeden yararlanmaktan farklıdır. Olası bir kötüye kullanım yöntemi, kısıtlı yetkilendirme için yapılandırılmış bir kullanıcı hesabının düz metin parolasına veya NTLM karmasına erişim elde etmeyi içerir. Saldırganlar, Kekeo gibi bir araç kullanarak ele geçirilen hesap için bir TGT (Bilet Verme Bileti) talebinde bulunabilir, herhangi bir kullanıcı için ('Hassas' olarak etiketlenenler hariç) bir TGS (Bilet Verme Hizmeti) isteği yürütebilir ve ardından bileti o kullanıcı olarak istenen hizmete erişim elde edin.
Kaynak Tabanlı Kısıtlı Yetkilendirme
Windows Server 2012'de tanıtılan kaynak tabanlı kısıtlı yetkilendirme özelliği, güvenler arasında kısıtlı yetkilendirmeyi ayarlama şeklinizi değiştirir. Hangi nesnenin belirli bir hizmete yetki verebileceğini belirlemek yerine, hizmeti barındıran kaynak artık hangi nesnelerin kendisine yetki vermesine izin verileceğini belirliyor. Yönetimsel açıdan bakıldığında bu, kaynağın sahibinin ona kimlerin erişebileceği üzerinde kontrole sahip olmasını sağlar. Örneğin, WebSunucusu hizmet hesabının, veritabanına erişmek için SQL Hizmeti hesabına temsilci seçebileceğini belirtmek yerine, artık SQL sunucusu hizmet hesabının, WebSunucusu hizmet hesabı tarafından kendisine erişim yetkisi verme izinlerine sahip olduğunu belirtebilirsiniz. Kaynak tabanlı kısıtlı yetkilendirmeyi yapılandırmak için, hedef kaynaktaki msDS-AllowedToActOnBehalfOfOtherIdentity özniteliğini, kendisine temsilci atamasına izin verilen yetkili nesnenin güvenlik tanımlayıcısıyla (SID) doldurmanız gerekir. Active Directory Kullanıcıları ve Bilgisayarlarında grafik kullanıcı arabirimi (GUI) bileşeni bulunmadığından ve Öznitelik Düzenleyicisi sayfası bu özniteliğin manuel olarak değiştirilmesine izin vermediğinden, bu yapılandırma yalnızca PowerShell kullanılarak yapılabilir.
