Active Directory Güvenliği için Yapılması Gerekenler Part 2

Active Directory Security Politikaları

Arkadaşlar , Bu yazımızda active directory güvenliği konusunda planlamalara ek olarak uygulama tarafında nelere dikkat etmek gerekmektedir bunlara değineceğiniz.

UYGULANMAMIŞ PLANLAMALAR SADECE KAĞIT ÜZERİNDE KALIR!!!!

Sizlerle planlanan şeylerin nasıl uygulamaya dönüşeceği konusunda bilgi paylaşımı yapacağım

UYGULAMA

1.Güvenlik ve İşletim Sistemi Güncelleştirmeleri

Microsoft tarafında her ayın 2.Salı günü yayınlanan güncelleştirmelerin zamanında uygulanması gerekmektedir. Bu güncelleştirmeleri ortamda SCCM tarzı ürünleriniz varsa bunlara entegre ederek zamanında active directory yüklü olan makineye uygulayınız. Ayrıca güncelleştirmeleri takip ederek kritik acik çıkmış güncellemeleri takip etmenizde yarar vardır.

2.Kullanıcı ve Bilgisayar Politikaları

Kullanıcılar politikaları konusunda planlamalarımızı yaptıktan sonra uygulamaya geçmiş bulunmaktayız. Öncelikle bu kısım biraz uzun olacaktır. Çok detaylı noktalara değineceğiz.

a-Tier Yapısı

Yetkili olacak kullanıcılarımızı belirledik. Şimdi bu yetkileri dağıtmakla işe başlıyoruz. Bu konuda çok önemli bir model örnek alınmaktadır. Tier Modeli bizler için örnek teşkil etmektedir.

Tier Modelinde 3 çeşit hesap türü olmaktadır. Bunlar Tier 0,1,2 olarak sıralanmaktadır. Bu hesapları nasıl kullanacağımızı bir görselle açıklayalım.

Tier 0: Tier yapısında 0 hesaplar sadece domain controller ve critical servers’a erişimi olan kullanıcılardır. Bu hesaplar kesinlikle başka bir amaç için kullanılmaz. Bu hesaplardan sunuculara veya bilgisayarlara erişimi kısıtlanmıştır.

Tier 1: Tier yapısında 1 hesaplar sadece sunucular ve application sunucularına erişim sağlamaktadır. Bu hesaplar kesinlikle başka bir amaç için kullanılmaz. Bu hesaplar DC ye veya Kritik sunuculara erişimi kısıtlanmıştır.

Tier 2: Tier yapısında 2 hesaplar sadece workstationlara erişim sağlanmaktadır. Bu hesaplar kesinlikle başka bir amaç için kullanılmaz. Bu hesaplar DC ye, Kritik sunuculara veya application sunucularına erişimi kısıtlanmıştır.

Bu sadece Domain Controller yani AD ye bağlanan kullanıcıları sınırlamış olduk. Ayrıca her hesabın şifresini farklı ve güçlü yaparak çok önemli bir güvenlik önlemi aldık.

b-PAW( Privileged Access Workstation)

PAW bilgisayar aslında internet saldırılarından izole edilmiş, hassas hesapları kullanmak için bir bilgisayar olarak tanımlanmaktadır. PAW bilgisayar bizi diğer bilgisayarlardan ayırmaktadır. AD güvenliği için bu bilgisayarı sadece DC bağlantılarında kullanacağız. Diğer bilgisayarların DC üzerine bağlanmasını engellemiş olacağız. AD için önemli güvenlik önlemidir.

c-Yetkili kullanıcıların yetkilerini sınırlama

Yetkili olarak bilinen kullanıcılara her türlü yetkiyi tanımlamak gerekmektedir. Bunlara örnek olarak SCCM yöneticisine ekstra olarak Exchange Organization Management grubuna yetki vermek gibi . Bu durumları planlayın her yetkili kullanıcıya işini yapabilecek kadar yetki tanımlayın.

d- Yetkili kullanıcılara parola politikası uygulanması

Yetkili kullanıcılara uygulanacak parola politikası gerçekten belirli standartlara göre belirlenmelidir. Bu hesapların güvenliği için sıkılaştırma yapmanızda fayda vardır. Bu kullanıcıların normal userla aynı parola politikası kesinlikle olmamalıdır.

e-Standart Hesapların Adları ve Şifreleri hakkında

Active directory içerisinde RID-500 kullanıcısının Administrator kullanıcısının adını kesinlikle değiştirilmesi gerekmektedir. Ayrıca bu hesabın kesinlikle ve kesinlikle kullanılmaması gerekmektir. Bu kullanıcının adını bilinen sistem yönetici isimleri(SYS ,admin , sistemadmin) gibi adları kesinlikle koymamak gerekmektedir. Bu hesabın şifresi çok güçlü şifre koyarak dijital ortamda kesinlikle saklamayanız. Bu hesabı Microsoft ATA honeytoken olarak ekleyin ve izlemeye başlayın.

Ayrıca yetkili hesaplarınızın adını da açık vermemek için bilinen sistem yönetici isimleri koymayınız.

Renamed edilmiş RID-500 hesabını bulmak için ; öncelikle domaine ait sid’i edinin ve bu sid aşağıdaki queryde kullanın

(Get-ADDomain).domainsid
dsquery * -Filter "(objectSID=sid-500)"
f-Inactive User ve Computers

Domain yapısı içerisinde inactive user ve computer objelerini tespit ederek silmek gerekir. Bu objelerin tespitinde kurum tarafından önceden planlanmış süre yapılandırılmalıdır. Örnek olarak 3 ay hiç DC ile konuşmamış objeler gibi. Bu objelerin takibi kesinlikle yapılmalıdır. Tespit etmek için aşağıdaki queryleri kullanabilirsiniz.

$d = [DateTime]::Today.AddDays(-90)

Get-ADUser -Filter '(LastLogonTimestamp -lt $d)' -Properties * | select name

Get-ADcomputer -Filter '(LastLogonTimestamp -lt $d)' -Properties * | select name
g-Disable User ve Computers

DC içerisinde disable user ve computers objelerini tespit ederek silmek gerekir. Bu kullanıcılar gerçekten risk oluşturabilir. Eğer kurum politikalarından silemiyorsanız kesinlikle olan tüm yetkilerini alın. Şu konu önemli dc üzerinde bazı hesaplar disable çalışır krbtgt gibi hesaplara dikkat etmeyi unutmayın.

Get-ADUser -Filter {Enabled -eq $false} | Select-Object name

Get-AdComputer -Filter {(Enabled -eq $False)} |Select-Object Name
h-Admin Count 1

Admin count 1 olan kullanıcıların kontrolleri düzenli olarak yapılmalıdır. Bu konu gerçekten çok kritiktik. Daha detaylı olarak öğrenmek için admincount 1 yazımıza göz gezdirin. Admin count 1 olan kullanıcıları tespit etmek için;

get-Aduser -ldapfilter "(admincount=1)"  | select-object Name
i-Password Never Expire Kullanıcılar

AD içerisinde kesinlikle kullanıcılar Password Never Expire şifre özelliğini vermiyoruz. Burada uygulamaların kendi hesapları hariç (SCCM Push, Scom act) gibi dışında kullanıcılar kesinlikle önceki maddelerde söylediğimiz gibi parola politikası olmalıdır.

Bu kullanıcıları tespit etmek için 2 farklı kod ;


Get-ADUser -Filter ‘useraccountcontrol -band 66048’ -Properties useraccountcontrol
get-aduser -Filter {passwordNeverExpires -eq "true"} |Select-Object name

Bu kullanıcıları normal kullanıcıya çekmek için;

get-aduser "username"| set-aduser -PasswordNeverExpires $false

tüm hepsini normal kullanıcı yapmak için

get-aduser -Filter {passwordNeverExpires -eq "true"} |et-aduser -PasswordNeverExpires $false
ı-Password Not Required User ve Computers

Active Directory güvenliği için Bu özellikle kullanıcılara kesinlikle tanımlama yapmıyoruz. Çünkü bu özellik parolasız kullanıcı hesabının veya bilgisayar hesabının kullanılması demektir.Yani bu hesapların parolası boş olmaktadır. Tespit edilerek bu özelliğin kapatılması gerekmektedir. Düzenli olarak tespit işlemi yapmalısınız.

Get-ADUser -Filter {passwordnotrequired -eq $true} | Select-Object name

Get-AdComputer -Filter {(passwordnotrequired -eq $true)} |Select-Object Name
j-Bad Logonların Tespiti

Kullanıcılarımızın kesinlikle bad logonlarının bir takibini yapmalıyız. Bunun için group policy üzerinde 5 defa yanlış şifrede lock olma durumu gibi politikaları planlamalıyız. Bad logon kullanıcının belki kendisi belkide başkası şifresini denemektedir. Bu sebepten dolayı kesinlikle çok dikkatli olunması gerekmektedir.


get-aduser -filter * -properties * |sort-object badpasswordtime | ft name , badpwdcount
k-KRBTGT hesabının kontrolü

DC üzerinde bulunan kurulumdan sonra otomatik olarak default oluşan krbtgt hesabı KDC(Key Distribution Center) servisi için servis hesabı olarak kullanılır. Bu hesap kullanıcıların TGT(ticket granting ticket) taleplerini hesabın şifresinden ürettiği anahtar ile şifrelemektedir. Bu ticket önce şifre ile hashlenmektedir. Bu hesabı adı değiştirilemez , silinemez ve hesap disable olarak gelir enable edilemez.

Bu hesabın şifresi ele geçirilirse AD içindeki kullanıcıların kimlikleri kopyalanabilir. Active Directory güvenliği için Bu çok kritik güvenlik açıklarına sebep olmaktadır. Bu sebepten dolayı şifresi Microsoft’un önerdiği şekilde 6 ayda 1 kez 1 gün aralıkla şifresi değiştirilmesidir. Şifresini sıfırlamak için makaleyi kesinlikle okumalısınız.

Güvenlik izlemelerinde krbtgt hesabının passwordlastset bizler için çok çok önemlidir. Ortamda Ata veya SCOM varsa olası ataklarda Golden-Ticket uyarısı vermektedir.

Get-aduser krbtgt -properties passwordlastset
l-Service Account Kontrolü

Servis hesabı olarak kullandığınız hesapların güvenliği için bu hesapları sensitive olarak belirleyin ve düzenli olarak bağlantı kontrolleri yapınız. Kurumun belirlediği standartlarda şifre resetlemelerini kesinlikle yapınız. Bu hesapları başka işler için kesinlikle kullanmayın.

3-NTLM vs Kerberos

Önemli konulardan biri domain yapısında ntlm yapısı ve kerberos yapısı kullanılması. Burada güvenlik açıklarından biri ntlm v1’in kullanılmasıdır. Sizlere kerberos ve ntlm authentication modelini resimle paylaşayım sizlerde ona göre hangisi daha güvenli bakın.

NTLM bir bağlantı

  • kullanıcı önce servera bağlanma isteğini belirtir.
  • Server kullanıcıdan dc den kdc den alınmış ticket ister.
  • Ticket alan kullanıcı bunu sunucuya sunar
  • Sunucu kabul eder ve kullanıcıdan username ve password ister.
  • Sonuç olarak NTLM = username ve password
Active Directory güvenliği kerberos

Kerberosta iş biraz daha farklıdır;

  • Kullanıcı dc’ye bilete ihtiyacı olduğunu söyler
  • DC bilet verir ve bu bileti şifresiyle dekripto etmesini ister.(Password ister)
  • Kullanıcı DC ye biletini gönderir ve servis bileti talep eder
  • DC buna karşılık kullanabileceği 10 saat geçerli bir servis bileti verir
  • Kullanıcı bu bilet ile bağlanmak istediği sunucuya bağlantı sağlar.

Yukarıda kerberos ve ntlm farklarını anlattık. NTLM kerberosa göre güvensiz olarak nitelendirilir. Bide ortam NTLM V1 e izin veriliyorsa daha da büyük güvenlik açıkları oluşturulur. Önerilen her zaman NTLM V2 kullanılabilir olup NTLM V1 ve LM refuse edilmelidir. NTLM V2 diğer NTLM versiyonlarına göre biraz daha güvenilirdir.

Fakat bunu bir anda kapatamıyoruz. Bunun için event loglar üzerinde 4624 event idler kontrol edilmelidir.

4-Kritik Gruplar

DC üzerinde bulunan çok kritik olarak nitelendirdiğimiz gruplar bulunmaktadır. Bu grupların içerisine dahil olacak kullanıcıları çok iyi belirlenmesi gerekmektedir. Bu grupların yetkisinden bahsedersek ;

PRINT OPERATORS Grubunun üyelerinin Shut Down System Yapabildiğini biliyormuydunuz ?

Bu gruplar ;

  • Enterprise Admins: Forest seviyesinde en yetkili gruptur.
  • Schema Admins: Active Directory şema üzerinde tam yetkili gruptur.
  • Domain Admins: Sadece kendi domaininde en yetkili gruptur.
  • Administrators: Kurulumda gelen en yetkili gruptur.
  • Account Operators: Grup ve kullanıcılar üzerinde oluşturma silme işlemleri , okuma işlemi , password reset , dc lokal bağlantı, sistemi kapatma gibi yetkilere sahip gruptur.
  • Backup Operators:DC lokal bağlantı , sistemi kapatma ve backup and restore yetkisine sahip

Bunun gibi olan birçok grup bulunmaktadır . Hepsini yazma çok uzun süreceğinden linkten bakabilirsiniz . Ayrıca sizlere güvenlik açısından bir kaç örnek vermek istiyorum. Backup aldığınız bir 3.parti yazılım var bu hesabın DC den backup almak için domain admine ihtiyaçı yoktur. Backup operators bu hesap için yeterlidir. Sizlerde kullanıcı ve servis hesaplarına gerekli olan gruplara ekleme yapın daha fazlasına gerek yoktur. Uygun grup bulamazsanız delagasyon işlemini kullanabilirsiniz.

5-DC üzerinde Task Schedule, Application , Share

DC üzerinde çalışan TASK Schedule lar düzenli olarak kontrol edilmelidir. Burada bulunan task ler dokümante edilmelidir.

Get-ScheduledTask

DC üzerine yüklenilen uygulamaları düzenli olarak kontrol etmelisiniz. Sizin bilginiz dışında herhangi bir uygulama var mı yok mu her zaman kontrol edilmeli ve dokümante edilmelidir.

Get-WmiObject -Class Win32_Product

DC üzerinde NETLOGON ve SYSVOL share bulunur. Bu share üzerindeki yetkilere bakılmalıdır. Ayrıca başka share var mı ve ne amaçla açılmış bunların hepsi dokümante edilmelidir.

get-WmiObject -class Win32_Share
Get-SMBshareaccess -name shareadı

6-SMB

SMB ağ üzerinden dosya ve yazıcı paylaşımında kullanılan bir servistir .DC üzerinde manuel olarak SMB V1 ‘i kesinlikle kaldırın. SMB servisleri üzerinden son zamanlarda çok fazla tehdit yaratıldığını bilmekteyiz. SMB ataklarla ilgili tüm analizler için linke tıklayınız.

Get-SMBServerConfiguration

7-ORTAMDA ANTİ-VİRÜS PROGRAMI

Sisteminizde kesinlikle bir antivirüs programı bulundurun. Evet sektörde çok net biliyoruz antivirüs yazılımlarının sistemleri yavaşlattığını fakat sistem güvenliğiniz için güncel ve aktif bir yazılım kullanın.

8-GROUP POLICY

Policylerinizi kesinlikle iyi planlamalısınız. Özellikle Default Domain Controller Policy, Default Domain Policy ,Audit Policy yapılandırılması dünyada standart olmuş policy örneklerine göre yapılandırın. Link verilmemiş policy veya disable policyler sistemlerinizde bulundurmayın. Herhangi bir saldırganın bu policyleri açma ihtimalini hesaba her zaman katın.

9-ÇOKLU KİMLİK DOĞRULAMA

Sistemlerinizde gelişen teknoloji ile SMS,mail vb. çoklu kimlik doğrulama tiplerini kullanınız. PAW bilgisayarında parmak izi doğrulayıcıda kullanılabilir.

10-İZLEME YAZILIMI

Ortamınızda kesinlikle en az bir tane izleme yazılımı bulundurun. Group değişiklikleri , kullanıcı hesap oluşturma , gpo değişikleri , ticket meseleleri , batch logon , DNS kaydı girişleri gibi durumları kesinlikle izleyin ve raporlayın. Part 1 de belirtiğim gibi ATA,SCOM,MANAGE ENGINE gibi uygulamalar kullanabilirsiniz.

Ayrıca kendinize ait dashboardlar oluşturun , Diğer yazılımlara bağlı kalmayın POWER BI kullanarak , SQL Reporting kullanarak izleme yazılımı oluşturun, ya da powershell scriptler çalıştırarak sisteminizi düzenli kontrol edin.

Active Directory Güvenliği için yapmanız gereken bir çok adımı anlattık. Güncel kalın ve yeni teknolojileri her zaman takip edin.

Bu yazımızın devamını Active Directory Güvenliği için Yapılması Gerekenler Part 3 de bulabilirsiniz.