Active Directory Güvenlik İpuçları
Merhabalar,
Bu yazımızda ağ ortamında bulunan active directory üzerinde yapılması gereken bazı güvenlik ipuçlarından bahsedeceğiz. Bu güvenlik ipuçları ağ ortamında güvenli yapılandırılmamış active directory ve domain controllerların ne kadar tehlikeli olabilecekleri konusunda bize bilgi verecek.
Active Directory Nedir?
Microsoft tarafından Windows sunucularda kullanılmak üzere geliştirilen ve ldap protokolünü kullanabilen, ağ ortamında yönetimi sağlayabilmemize olanak veren sunucu rolüdür. Active Directory ile yönetimi sağlamamıza olanak tanıyan ve üzerinde local domain kurulu bulunan makinelere genel olarak domain controller denmektedir. Bu sunucular yardımı ile ağ ortamını, ortamda bulunan bilgisayarları, grupları, kullanıcıları ve daha birçok objeyi yönetebiliriz.
Yazımızda herhangi bir rol ve özellik kurulumundan bahsetmeyeceğiz. Hali hazırda kurulu bulunan ortamlar üzerinde kısa ekran görüntülerini sizlere sunarak konulara açıklama getireceğiz.
1-) Yönetici hesaplarının ayrıştırılması ve kullanılmayan hesapların pasif hale getirilmesi
Ağ ortamına active directory ve domain controller yapılandıran her sistem yöneticisinin bilmesi gereken en önemli şeylerden biriside; domain yapılandırma aşamaları tamamlandıktan sonra varsayılan olarak gelen administrator hesabının devre dışı bırakılmasıdır. Administrator hesabı varsayılan olarak brute force saldırılarında otomatik olarak kilitlenmemektedir. Bu sebepten dolayı saldırganlar ağ ortamında direkt olarak administrator hesaplarına saldırı vektörleri deneyeceklerdir.
Görüntü: Hesabı devre dışı bırakmak 1.1
Ağ ortamında administrator yetkisi her kullanıcıya verilmemelidir. Her kullanıcı yapması gereken iş kadar erişim yetkisine sahip olmalıdır.
2-) Parola politikalarının belirlenmesi
Ağ ortamında var olan DC makine üzerinden group policy yapılandırması gerçekleştirilerek kullanıcı hesaplarına bazı güvenlik politikaları uygulanmalıdır. Bunlardan en önemlisi parola politikasıdır. Kullanıcılar kullandıkları en son 5 parolayı tekrar kullanamamalıdırlar. Belirleyecekleri parolalar minimum 12 karakterden oluşmalı ve özel karakterleri, büyük küçük harf ve rakamları içermelidir. Her kullanıcı parola bilgisini 30-45 gün arasında değiştirilmeye zorlanmalıdır.
Görüntü: Parola politikası 1.2
Brute force saldırılarına karşı hesap sahipleri sınırlı sayıda yanlış parola deneme hakkına sahip olmalıdırlar. Belirli bir sayıda yanlış parola girildikten sonra hesap minimum 10-15 dakika kilitli kalmalıdır.
Kullanıcının 10-15 dakika içerisinde deneyebileceği maximum parola sayısı 5-10 ile sınırlandırılmalıdır. Ek olarak kurum veya firma çalışanlarına siber güvenlikle alakalı farkındalık eğitimleri verilmelidir.
3-) Audit Policy’ler
Audit policyler olay yönetimi açısından çok önemlidir. Kullanıcıların active directory ortamında yaptıkları her hareketin belirlenebilmesi ve takip edilebilmesi için birçok audit policy uygulanabilir. Ağ ortamında oluşturulan her kullanıcı, her grup veya kullanıcılara ait hesaplar üzerinde yapılan değişiklik, parola oluşturma veya değiştirme işlemleri audit policyler yardımı ile denetim altına alınıp gözlemlenmelidir. Afet anı yönetiminde ağ ortamında ne olup ne bittiği sistem yöneticileri tarafından kolaylıkla çözümlenebilmelidir. Kullanıcıların oturum açarken yaşadıkları başarılı ve başarısız girişleri Audit Account Logon Events policy ile kayıt altına alınmalıdır.
Görüntü: Audit policy yapılandırması 1.3
4-) Desteklenmeye işletim sistemlerinin kullanılmaması
Geriye dönük destek verilmesi durdurulan Windows işletim sistemleri ağ ortamında barındırılmamalıdır. Bunlar Windows xp, server 2003, Windows Vista ve benzeri işletim sistemleridir. Group policy ve WSUS rolleri/özellikleri kullanılarak belirli tarihler arasında ağ ortamındaki hizmeti aksatmayacak şekilde güncelleme işlemleri otomatik olarak gerçekleştirilmelidir.
5-) Oturum açılan bilgisayarda işlem tamamlandıktan sonra oturum mutlaka sonlandırılmalıdır
Yapılan sızma testleri sırasında birçok kez karşılaşılan durumlardan biri ise daha önce herhangi bir sebepten dolayı makine üzerinde oturum açmış olan kullanıcıların oturumlarını sonlandırmamaları sonucu LSASS üzerinden elde edilebilen parola bilgilerinin dump edilmesi durumudur. Bu tür durumlar sunucunun herhangi bir sebepten dolayı ele geçirilmesi durumunda yetki yükseltmelerin önünü açmaktadır. Saldırganlar girdikleri makine üzerinde ilk olarak yapacakları şeylerden birisi eğer kısıtlı bir kullanıcı ile makineye erişmiş iseler yetkilerini yükseltme olacaktır. Bunun için SAM veritabanı ve LSASS process’in o anki dump’ını almak yetki yükseltmede saldırganların elini kolaylaştıracaktır. Alınan SAM ve LSASS dump dosyaları mimikatz ve samdump2 tarzı araçlarla açılabilmekte ve bazı durumlarda parola özetleri, hatta plain text parola bilgileri ele geçirilebilmektedir. Kullanıcılar kullandıkları bilgisayarlar üzerinde gerçekleştirdikleri işlemler tamamlandıktan sonra oturum sonlandırmalı ve hatta memory tarafından elde edilebilecek herhangi bir dump sızıntısına karşı makineyi restart etmelidirler. Restart sonrası makine yeniden başlayacak ve memory üzerindeki hesap bilgileri uçacaktır.
6-) Ağ ortamındaki paylaşım klasörleri ve sunucuları
Ağ ortamındaki paylaşım klasörleri ve sunucuları genelde ağ ortamında kullanılan, kullanıcıların çeşitli belgelere kolaylıkla erişmelerini sağlayan kaynaklar olmaktadırlar. Gene yapılan birçok güvenlik testi göstermektedir ki, ağ ortamlarında bulunan paylaşım kaynaklarına everyone read, write erişimleri hala oldukça yaygındır. Saldırganlar ağ ortamında eriştikleri herhangi bir yedek sunucusu üzerindeki kaynakları sömürebilmekte ve bu kaynakları kendi bilgisayarına kopyalayabilmektedir. Write, Read hakkı yalnızca ağ ortamında ki yetkili kişilere verilmelidir. Örneğin muhasebe bilgileri her günün sonunda ağ ortamında bulunan bir paylaşım sunucusu üzerindeki ‘muhasebe’ klasöründe tutulmaktaysa, o klasöre yalnızca muhasebe departmanın da çalışan kullanıcıların erişim hakları bulunmalıdır. Bu durumda bile erişimler ince eleyip sık dokunmalı, yalnızca yazma izni verilmesi gereken kullanıcılara yazma izni verilmelidir. Aynı şekilde yazma izni gerekmeyen, yalnızca okuma işlemleri gerçekleştirmekle görevli olan kullanıcılara da bu yönde sadece okuma izni verilmelidir. Saldırganlar elde ettikleri herhangi bir kullanıcı adı parola bilgisi ile ağ ortamında ki paylaşıma açık klasörler üzerine kendi zararlı dosyalarını enjekte etmeye çalışacaklar ve buradan oturum elde etmeye uğraşacaklardır. Bu tür durumlar için kullanılan araçlardan en bilindik olanlarından birisi psexec’dir.
Kısaca ağ ortamında herhangi bir klasöre everyone read, write yetkisi verilmemelidir. Kullanıcıların erişmek istedikleri her klasör üzerinde yetkileri sorgulanmalı ve yalnızca kendi oturum bilgileri ile erişim sağlayabilmelidirler.
7-) Ağ ortamında kullanılmayan sunucuların devre dışı bırakılması ve izole edilmesi
Maalesef yapılan güvenlik testlerinde en çok karşılaşılan durumlardan bir diğeri de budur. Testin gerçekleştirildiği subnet üzerinde var olan ve atıl vaziyette kalmış eski sunucular ağ ortamında unutularak üzerinde barındırdıkları kimlik bilgileri ile ortamda saldırganlara atak imkânı hazırlamaktadır.
İlgili makineler genelde güncelleştirmeleri unutulmuş veya yamaları alınmamış durumda olmaktadırlar. Bu tarz bir makineye erişim sonrasında yetkili kişiden gelen savunma maalesef;
-“Biz o sunucuyu zaten kullanmıyoruz, ağ ortamında onu yakında kapatacağız.” şeklinde olmaktadır.
Saldırgan bu tür bir sunucuya erişim sonrası o sunucudan yukarıda bahsedilen yöntemlerle elde edilebilecek herhangi bir kimlik bilgisini gerçek anlamda kullanabilir ve ağ ortamındaki active directory sunucusu üzerinde bu bilgilerin hala güncelliğini koruması durumunda faydalanabilir. Bu sebepten ötürü, kullanılmayan sunucular ad ortamından çıkartılmalı, erişime kapatılmalı, fişi çekilmelidir.
8-) İkincil DNS sunucuları yapılandırılmalıdır
Ağ ortamında var olan ve o an active directory ile entegre halde çalışan primary dns sunucularının herhangi bir felaket anında hizmetten düşmesi ağ ortamındaki hizmeti ciddi manada kesintiye uğratacaktır. Bu sebepten dolayı ikincil dns sunucuları her daim yapılandırılmış vaziyette bulunmalıdırlar. Bu sunucular birincil sunucularla zone-transfer yönetmi ile aynı anda entegre çalışmalı ve kayıtları güncel tutulmalıdır. Hizmetlerde herhangi bir aksaklık olmaması için çift taraflı isim çözümleme yapabilmelidirler.
9-) Zone Transfer saldırılarının önüne geçilmelidir
İkincil dns sunucuları yapılandırılırken yapılan büyük hatalardan birisi de zone-transfer özelliği kullanılarak birincil dnsten güncel kayıtların çekilmesi esnasında, birincil dns üzerine gelecek olan sorguların hangi ipli sunucular üzerinden gelmelerinin kısıtlanmamasıdır. Bu durum zone transfer özelliği yapılandırılırken erişim imkânı ve izni verilecek olan spesifik bir sunucu ip adresinin belirtilmemesinden kaynaklanmaktadır. Aşağıdaki ekran görüntüsü tipik bir zone-transfer zafiyetine sebep olabilecek bir zafiyetli yapılandırmanın örneğidir.
Görüntü: Zone transfer saldırısı 1.4
Görüldüğü üzere zone transfer allow durumdadır ve to any server option olarak seçilmiştir. Bu demektir ki ilgili sunucuya gelecek bir zone transfer isteği ile tüm zonelara erişim sağlayabilir. Saldırganlar bu şekilde herhangi bir çaba sarf etmeden tüm alt zoneları (A – AAAA- MX – CNAME – NS vb.) görüntüleyebilir.
10-) Group policy yardımı ile komut satırı ve powershell erişimlerini kısıtlayın
Bu yöntem son kullanıcının, ağ ortamındaki herhangi bir kullanıcının kullandığı bilgisayar üzerinde cmd.exe ve powershell.exe dosyalarına erişimini kısıtlamak üzere gerçekleştirilen bir yöntemdir. Bu durum bilgili bir hacker tarafından kolaylıkla aşılabilmektedir fakat son kullanıcı cmd ve powershell gibi kavramlardan nadiren haberdar olacağı için erişmeye çalıştıklarında erişim hatası alacaklardır. Aynı şekilde kullanıcıların internet üzerinden edindikleri herhangi bir yazılım arka planda powershell ve cmd arayüzlerine path bilgilerini ve dosya isimlerini kullanarak erişmeye çalışırsa erişemeyecektir. Bunun gerçekten çözüm getiren bir önlem olmadığını bilerek bu yönteme başvurmanızda fayda var. Saldırganlar bununda üstesinden gelebilecek bilgiye sahip olabilirler.
Görüntü: Dosya ismi ile kısıtlama 1.5
11-) Şifrelenmemiş herhangi bir protokolü kullanmayın, portları kapatın
Ağ ortamında telnet ve ftp gibi, iletildiği paketlerin şifrelenmediği protokolleri kullanmaktan kaçının. Saldırganlar arp poisining, mitm vb saldırılarda ağ ortamında gidip gelen paketleri okuyabilir ve sizin veya son kullanıcılardan herhangi ek şifreleme yöntemi kullanmadan gerçekleştirdiğiniz erişimlere ait bilgileri görüntüleyebilir. Tıpkı yukarıda ki birçok durumda olduğu gibi yapılan iç ağ sızma testleri sırasında kullanılmayan veya unutulmuş birçok şifrelenmemiş protokolün kullanımına sıklıkla rastlanılmaktadır. Dosya paylaşımları SSH üzerinden SCP kullanılarak gerçekleştirilebilir ve telnet ara yüzü yerine ek şifreleme katmanı ile korunmuş SSH protokolü tercih edilebilir.
12-) Sunucu ve disklerin mutlaka yedekleri bulunmalı
Yedek sunucuları, active directory sunucuları vb. sunucuların mutlaka yedeklerinin güvenli bir dış ortamda tutulmaları gerekebilir. Umulmadık bir felaket sonucunda sunucuların ve bilgisayarların hasar alması ihtimalini göze alarak yedek diskleri mutlaka güncel tutulmalıdır. Alınan yedek diskleri mutlaka bitlocker tarzı önlemlerle şifrelenmelidir. Disklere ait şifreler gerekirse A4 kâğıtlarına yazıcılar ile çıktı alınıp bu çıktılar çelik kasalarda muhafaza edilmelidir.
13-) Kullanılmayan hesaplar devre dışı bırakılmalıdır
Kurum veya firmanızdan ayrılan herhangi bir kullanıcıya ait hesap, o kişinin işten ayrılma gününde devre dışı kalmalıdır. Olmasını ummadığınız bir durumda, işten ayrılan kişi kendi oturum bilgilerini kullanarak ummadık şeyler gerçekleştirebilir. Kullanıcının e-posta oturumlarının yedeklenmesi sağlanmalı ve ileride gerçekleşebilecek olan sorunlara karşı yedekler güvenli bir ortamda muhafaza edilmelidir. (yedek sunucularında veya sabit disklerde)
Güvenlik testleri sırasında işten ayrılmış herhangi bir kullanıcıya ait parola bilgisinin yetki elde edilen diğer makineler üzerinde bulunması ve bu kullanıcıya ait parola özetini kullanarak gerçekleştirilebilecek olan saldırıların sonucunda, o kişinin aslında çalışan olmadığının anlaşılması işleri daha da karmaşıklaştırabilir.
14-) Ağ ortamında NTLM kullanımına izin verilmemelidir.
NTLM kullanımı yerine daha güvenli olan NTLMv2 tercih edilmelidir. Bu sayede saldırganların parola kırma saldırılarını az da olsa zorlaştırmış olacaksınız. NTLMv2 parola özetinin NTLM v1 parola özetine göre daha karmaşık ve güvenilir olması tercih sebebi olabilir. Group policy kullanarak ‘LAN Manager authentication level’ politikasını ‘NTLMv2 response only/refuse LM and NTLM’ olarak ayarlayabilir ve bunu tüm bilgisayarlarda uygulayabilirsiniz.
Görüntü: NTLM v2 kullanımı 1.6
15-) BIOS şifrelemeleri aktif olmalıdır.
Son kullanıcı bilgisayarları üzerinde BIOS erişim parolaları belirlenmelidir. Bu parolalar her son kullanıcı bilgisayarı için farklı olmalıdır. Aksi takdirde elde edilen bir parola diğer bilgisayarlar üzerinde de denenebilir. Bilgisayarın fiziksel olarak ele geçirilmesi durumunda BIOS’a koyulan şifre oluşabilecek bazı durumların bertaraf edilmesi konusunda ek güvenlik önlemi sağlayacaktır.
Mehmet Kelepçe
Senior Penetration Tester | Gais Red Team