4 Eylül 2012 Salı

Windows 2008'de Servis Başlatma/Durdurma Denetimi - Nass oluyor da oluyor?

Windows 7 ve sonrası işletim sistemlerinde,Microsoft sağolsun, bir servisi hangi kullanıcı hesabının durdurduğu ya da başlattığı bilgisini vermemek için elinden geleni yapmış.Varsayılan kurulumda herhangi bir Windows servisini durdurduğunuzda ya da başlattığınızda event log'da görüp görebileceğiniz kayıt aşağıdaki ekran görüntüsündeki gibi;


Event log kaydından görüleceği gibi servisi kimin,hangi kullanıcı hesabının başlattığı ya da durdurduğu bilgisi yok.Bu bilgiyi kayıtlara düşürebilmek için servisin güvenlik tanımında (Security Descriptor) ve yine Windows 7 ve sonrası işletim sistemleriyle gelen Advanced Audit Policy Configuration ayarlarında bir takım değişiklikler yapmalısınız. Ne yazık ki işletim sisteminin tüm servisleri için denetim kayıtlarını etkinleştirmeye imkan sağlayan bir sihirbaz vs yok. Hangi servislerin audit kayıtlarını görmek istiyorsanız tek tek o servislerin güvenlik tanımlarını değiştirmelisiniz.

Örnek olması açısından Background Intelligent Transfer Service adındaki serviste değişiklikleri yapacağım. Servisin güvenlik tanımında değişiklik yapmaya başlamadan önce ilgili servisin görünen adını değil servis adını belirlemeniz gerekiyor,bu bilgiyi aşağıdaki ekran görüntüsünde gösterildiği gibi Servis Yönetim konsolundan 


veya "sc query" komutuyla komut satırından aldıktan sonra

sıra servisin mevcut Security Descriptor tanımını öğrenmeye gelir. Bu bilgiyi de "sc sdshow " komutuyla aldıktan sonra işin içine biraz SSDL ( Security Descriptor Definition Language ) girecek. 


"sc sdshow" komutuyla edindiğiniz Security Descriptor , DACL(Discretionary Access Control List ) ve SACL (System Access Control List) olmak üzere iki tip ACL ( Access Control List ) içerebilir, ACL leri ise parantez içinde belirtilen ACE'ler ( Access Control Entry ) oluşturur. "D:" ile başlayan ve parantez içerisindeki her karakter dizisi aslında bir DACE'i (yukardaki ekran görüntüsünde 4 DACE var) , "S:" ile başlayanlar ise SACL'i (yukardaki ekran görüntüsünde bu servis için bir SACE var) ifade ediyor. DACL ifadeleri ile objeye erişebilecek veya erişmesi yasaklanan trustee denen kullanıcı hesabı, grup hesabı ya da logon sessionları belirlenir. SACL ifadeleri de bu nesnelere erişme teşebbüslerini ( başarılı ya da başarısız) kayıt altına almaya yarar. Dolayısıyla Security Desccriptor ifadesinde değişiklik yaparken çok dikkatli olmalısınız, nesneye gereğinden fazla erişim verebilir ya da nesneyi kullanılmaz hale getirebilirsiniz.

Security Descriptor'ı Notepad'e kopyaladıktan sonra SACL'lerin sonuna aşağıdaki ACE'i ekleyin

(AU;SAFA;RPWPDT;;;WD)


Eğer Security Descriptor'ınızda "S:" ile başlayan SACL yoksa parantez içindeki bu ACE'i 

S:(AU;SAFA;RPWPDT;;;WD)  

şeklinde DACL'lerin sonuna eklemelisiniz.
Eklenen yeni ACE'i bileşenlerine ayıracak olursak;

Ace Type = AU = SYSTEM_AUDIT_ACE_TYPE
Ace Flags = (SA = SUCCESSFUL_ACCESS_ACE_FLAG) + (FA=FAILED_ACCESS_ACE_FLAG)
Rights = (RP=ADS_RIGHT_DS_READ_PROP) + (WP=ADS_RIGHT_DS_WRITE_PROP) + (DT=ADS_RIGHT_DS_DELETE_TREE)
Account SID = WD = Everyone

Yeni bu ACE tüm kullanıcıların (WD) bu servise okuma (RP),yazma (WP) ve servis ile servise bağlı objeleri silme ( DT) erişimlerini başarılı olsun ya da olmasın ( SA & FA ) loglayacaktır (AU), olay bundan ibaret.

Elde ettiğiniz yeni SD'yi ise "sc sdset BITS " komutuyla servise uygulayın. 


Servisin Security Descriptor'ında değişiklik yaptıktan sonra durdurma/başlatma gibi olaylara ilişkin kayıtları Security Event Log'a düşürmek için yapılması gereken son bir şey var, Advanced Audit Policy Configuration ayarlarında "Object Access" öğesinde "Audit Other Object Access Events" ve "Audit Handle Manipulation" ayarlarını aktive etmek;


Tüm bu düzenlemelerden sonra - inanmayacaksınız belki ama işletim sistemini yeniden başlatmaya gerek olmadan - Background Intelligent Transfer Service isimli servisin durdurulması ve başlatılmasıyla ilgili kayıtlar "Security Event Log"da 4656 Event ID'si ve "SC Manager" Object Server değeri  ile görünmeye başlayacaktır.

Security Descriptorlarınızdaki ACE'leri değiştirerek objelere erişimleri kontrol altına alabilir, normal şartlar altında obje kullanma,çalıştırma yetkisi olmayan sınırlı kullanıcıların yetkilerini obje bazında artırabilir ya da tam tersini yapabilirsiniz.
System Audit Policy'de belirtilen değişikliği yapmak Güvenlik Olay Kayıtlarınıza haddinden fazla 4656 Event ID'li kayıt atılmasına sebep olacaktır. Dolayısıyla audit mekanizmasını etkinleştirmeden önce attığınız taşın ürküteceğiniz kurbağaya değip değmeyeceğini iyi düşünün.

Hiç yorum yok:

Yorum Gönder