Windows ve Auditing
Merhaba,
IT yöneticilerinin ihtiyaç duydugu bir denetleme mekanizmasinin oldugunu bilmek güzel. Windows 2000’den bu yana Auditing ile herkes öyle ya da böyle hasir nesir olmustur. Windows Server 2008 ile birlikte daha granüler olarak denetleme yapmak da mümkün. Advanced Audit Policy Configuration ile artik daha fazla seçenegimiz var. Bu yazida Auditing ile ilgili temel bilgileri paylasmak ve farkli Auditing seçeneklerinin nasil uygulanmasi gerektigi ile ilgili bilgi vermek ve farkli Auditing seçenekleri için dikkat edilmesi gereken ayarlari paylasmak istedim.
Windows üzerinde Auditing etkinlestirmek için 3 aracimiz bulunuyor:
- Local Policy (gpedit.msc)
- Group policy (GPMC.msc)
- Auditpol.exe
Sadece bir tanesini ya da hepsini birden kullanabilirsiniz. Öncelikle amacimizi belirlememiz gerekiyor. Sadece bir sunucu üzerindeki dosyalara erisimi denetlemek istiyorsak yani file access audit etmek istiyorsak, Local Policy kullanmak mantikli olacaktir. Bunun için yapmak gereken, Object Access auditing’i açmak gerekecektir.
Burada yaptigimiz genel olarak hangi auditing ayarlarina istedigimize karar vermektir. Bundan sonra yapilmasi gereken ise hangi object’nin izlenmesini istiyorsak, o object üzerinde SACL (System Access Control List) ayarlamamiz gerekir. Örnegin, notepad.exe' programini kimin çalistirdigini görmek istiyorsak, notepad.exe üzerinde NTFS ayarlarina girerek, Auditing sekmesinden tercihen Everyone seçerek istedigimiz ACL’leri tanimlamamiz gerekir. Eger çzellikle bir grubu ya da kisiyi izlemek istiyorsaniz, onu da verebilirsiniz. Ancak burada hedef genelde “kim? ” oldugu için bu “herkes (Everyone)” olabilir.
Everyone için ACL’leri seçerken hangi Access’I kontrol etmek istedigimizi belirtmeliyiz. Örnegin, silinmesi ile ilgili olarak sadece “Delete seçebiliriz”. Bu bir klasör olsaydi, “Create files / write data” ile “Traverse folder / execute file” seçebilirdik. Eger hangi Access istedigimizden emin degilsek veya genel olarak tam bir denetim istiyorsak, “Full control” seçmek mantikli olabilir.
Peki nasil monitor edecegiz?
Bunun için yapmamiz gereken Event Viewer üzerinden Security event’lerini açmak olacaktir.
Detaylarina baktigimizda ise, notepad.exe’yi (Object Name) Administrator’in (Account Name) çalistirdigini (Accesses: Execute/traverse) görüyoruz:
Peki Advanced Audit Policy Configuration ki buna bundan sonra AAPC diyecegim, nasil bir detaylandirma getiriyor?
Yukaridaki örnekte sadece bir dosya (notepad.exe) üzerinde Auditing etkinlestirdik. Bunun için AAPC kullanmaya gerek yoktu. Diyelim ki bir klasör altindaki dosyalara erisimi kontrol etmek istiyorsunuz, hatta bunu paylasimda olan klasörler için yapmak isstiyorsunuz. Bunun için yien object access etkinlestirip, izlemek istediginiz klasör üzerinden SACL’leri tanimlamaniz gerekir. Bunun yerine AAPC kullanarak daha kolay bir çözüm üretebiliriz:
Etkinlestirdekten sonra Even Viewer üzerinden baktiginizda 5140 eventlerini analiz edebilirsiniz.
Detaylarina girdiginizde ise hangi kullanicin hangi paylasima erismek istedigini görebilirsiniz:
Local Policy kullanarak yapacaginiz Auditing ayarlarini, AAPC dahil Domain Policy üzerinden de yapabilirsiniz. Sunucu üzerinde hangi Audit policy’lerin uygulandigini görmek için ise gpresult kullanabilirsiniz:
Söyle bir çikti olacaktir:
Burada dikkatinizi çeken herhangi bir sey var mi?
Olmali !!! Evet Auditing üzerinden etkinlestirdigimiz “Object Access” policy’sini görmüyoruz! Gpresult’a güvenmeyip, Auditing için kullanacaginiz bir diger araç Auditpol ile baktigimizda ise:
Yine sadece “File Share” için yaptigimiz AAPC ayarlari görünüyor:
Aslinda bu bekledigimiz bir davranis; eger AAPC kullanmaya basladiysaniz, Audit Policy üzerinde uygulanan policy’ler yok sayilacaktir! Iki yaklasim olabilir, Audit Policy üzerinden verebilecegimiz policy’leri AAPC veya Auditpol ile yapmak ya da Audit Polic'y’nin yok sayilmasini engellemek. Bunuin için “Windows Settings > Security Settings >Local Policies >Security Options” altinda bulunan “Audit: Force audit policy subcategory settings (Windows Vista or later) to override audit policy category settings” policy’sini devre disi birakmak (DISABLED) olacaktir. “Not configured” olarak görseniz dahi varsayilan davranis
Yazinin basinda söyledigim gibi 3 farkli araç kullanarak Auditing ayarlarini Audit Policy veya AAPC için yapabiliriz. Bilmemiz gereken varsayilan olarak AAPC’nin Audit Policy üzerine yazmasi ve ayarlari kontrol ederken kullandigimiz araçlarin sonuçlari farkli gösterebilecegidir. Örnegin RSOP.msc (ya da SECPOL.msc) ile bakarsaniz, AAPC ayarlarini göremezsiniz! Bu yine bekledigimiz bir durumdur. Bunun da nedeni AAPC ayarlarinin audit.csv dosyasinda saklanan bu ayarlari bize döndürmemesidir. Biraz daha detay vermek gerekirse, AAPC ile yapilandirilan local security policy ayarlari %systemroot%\system32\grouppolicy\machine\microsoft\windows nt\audit\audit.csv dosyasina yazilmaktadir, sonrasinda ise ayni dosya %systemroot%\security\audit\audit.csv adresine kopyalanmaktadir. Domain policy uyulandiginda ise tahnin edeceginiz gibi audit.csv dosyasi SYSVOL altinda bulunmakta ve client tarafina kopyalanmamaktadir.
Bence yeni Local Auditing yapilandirmasi için en kullanisli araç auditpol.msc’dir. Burada yaptiginiz ayarlari baseline olarak alip baska sunuculara tasimak isteyebilirsiniz. Bu yöntem ayrica yapilan ayarlari sizin tercih edeceginiz ayarlara geri döndürmek için de kullanilabilir. Bunun için basit iki komut kullanabilirsiniz:
- auditpol /backup /file:test.csv
- auditpol /restore /file:test.csv
Aslinda tüm bu ayarlar registry’e yazilmaktadir ancak bu registry anahtarinin elle degistirilmesi mümkün degildir. Buraya referansini yazmiyorum çünkü bu registry key’de elle yapilacak müdahaleler sistemin boot etmesini engelleyecek kadar önemli sonuçlar dograbilir.
Auditing ayarlarini yaparken mutlaka aklinizda olmasi gereken neyi denetlemek istediginiz ve ayarlar sonucunda neyi denetleyeceginizdir. Çünkü aslinda aramak istediginiz bilgi için çok fazla sayida event elemek zorunda kalabilirsiniz. Bu nedenle dogru Auditing policy’leri seçmeli ve gerekiyorsa SACL’leri ona göre düzenlemelisiniz.
Peki bütün denetimler için mutlaka policy’mi ayarlamamiz gerekiyor?
Hayir! Referans olmasi açisindan bazi varsaylan olarak açik olan Auditing policy’leri vardir. Örnegin :
- Account Management: Varsayilan olarak açiktir ve security principal’lar ile ilgili (groups, users …) ile ilgili denetimleri yapmaktadir.
- Directory Service Access: Varsayilan olarak açiktir ancak denetlenmesi istenilen objeler üzerinde kimin ve neyin denetlenmesi gerektigi SACL ile belirtilmelidir. Configuration veya Schema için SACL’lar önceden belirlenmis ve denetim açik olarak izlenebilmektedir. Diger objeler ile ilgili denetime ise bir sonraki yazimda deginecegim.
Okan Çetinim.