SQL server audit işlemi için 2 farklı loglama biçimi sunmaktadır. Bunlar Windows Event Log ve Binary File formatlarıdır. Windows event log formatında kayıt yapmak mantıklı gözükmektedir. Çünkü birçok log yönetim çözümü bu formatı desteklemektedir. Ancak güvenlik ve performans açısından daha çok önerilen yöndem binary file formatı ile kayıt etmekdir. Dosyaya yazmak daha hızlı olduğu için performans sebebiyle Windows tarafından da bu yöntem önerilir. Bu kayıtların ele geçirilmiş yönetici hesaplarından gelebilecek olası saldırılar gibi çeşitli sebeplerle dosyalar halinde ve farklı bir server üzerinde tutulması en güvenli ve hızlı yol olacaktır.
Audit Konfigürasyonu
Audit seçeneği Express sürümlerde bulunmamaktadır. Anlatımda SQL Server Enterprise
2008 sürümü kullanılmıştır. Audit konfigürasyonu yapmak için SQL Server Management Studio açılır , 'Object Explorer' üzerinde 'Security -> Audits' yolu izlenir. 'Audits' nodu üzerine sağ tıklanıp 'New Audit' seçeneği seçildiğinde karşımıza 'Create Audit' pencerisi çıkar.
'Audit name' kısmına Audit objesinin ismi yazılır. 'Destination' kısmında File, Security log, Application log seçenekleri seçilebilir. File seçeneğini seçerek dosyanın kayıt edilmesi gerektiği yeri 'File Path' bölümünde gösterebiliriz. Security ve Application log seçenekleri ile ise logların windows event log formatında olması sağlanabilir. Bu işlemden sonra hangi olayların loglanacağını belirlemek için Object Explorer üzerinde 'Server Audit Specification' nodu üzerine sağ tıklanıp 'New Server Audit Specification' seçeneği seçilir. 'Audit Action Type' içerisinden loglanmasını
Burada bir önceki bölümde oluşturulan Audit objesine verilen isim seçilmelidir. Güvenlik ihlallerinin tespiti açısından mümkün olduğunca fazla bilgi olması işimize gelir ancak performans ve bazı diğer sebeplerden dolayı bu çoğu zaman mümkün olmamaktadır. Güvenlik açısından bakıldığında aşağıdaki olayların işaretlenmesi genel olarak önerilmektedir:
Audit Act'on Gruplari
Windows logları görüntülenebilir. Örneğin aşağıda örnek bir brute force kayıtlarını inceleyebiliriz.
Destination olarak file seçeneği seçildiğinde Binary File formatı geçerli olur ve belirtilen adrese log dosyaları yazılır. Bu dosya dizin üzerinden erişilip açılırsa binary formatta olduğu için okunamaz. Okumak için yine Object Explorer üzerinde Security -> Audits yolu takip edilir ve oluşturduğumuz Audit objesine sağ tıklanarak view audit log seçeneğine tıklanır.
Referanslar
https://www.manageengine.com/products/eventlog/help/getting-started/enable-mssql-audit-logs.html
https://msdn.microsoft.com/en-us/library/cc280663.aspx
Bu makale İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü öğrencisi stajyerimiz Cemal Türkoğlu tarafından geliştirilmiştir.
Audit Konfigürasyonu
Audit seçeneği Express sürümlerde bulunmamaktadır. Anlatımda SQL Server Enterprise
2008 sürümü kullanılmıştır. Audit konfigürasyonu yapmak için SQL Server Management Studio açılır , 'Object Explorer' üzerinde 'Security -> Audits' yolu izlenir. 'Audits' nodu üzerine sağ tıklanıp 'New Audit' seçeneği seçildiğinde karşımıza 'Create Audit' pencerisi çıkar.
'Audit name' kısmına Audit objesinin ismi yazılır. 'Destination' kısmında File, Security log, Application log seçenekleri seçilebilir. File seçeneğini seçerek dosyanın kayıt edilmesi gerektiği yeri 'File Path' bölümünde gösterebiliriz. Security ve Application log seçenekleri ile ise logların windows event log formatında olması sağlanabilir. Bu işlemden sonra hangi olayların loglanacağını belirlemek için Object Explorer üzerinde 'Server Audit Specification' nodu üzerine sağ tıklanıp 'New Server Audit Specification' seçeneği seçilir. 'Audit Action Type' içerisinden loglanmasını
Burada bir önceki bölümde oluşturulan Audit objesine verilen isim seçilmelidir. Güvenlik ihlallerinin tespiti açısından mümkün olduğunca fazla bilgi olması işimize gelir ancak performans ve bazı diğer sebeplerden dolayı bu çoğu zaman mümkün olmamaktadır. Güvenlik açısından bakıldığında aşağıdaki olayların işaretlenmesi genel olarak önerilmektedir:
- FAILED_LOGIN_GROUP
- SUCCESSFUL_LOGIN_GROUP
- DATABASE_OBJECT_CHANGE_GROUP
- DATABASE_PRINCIPAL_CHANGE_GROUP
- SCHEMA_OBJECT_CHANGE_GROUP
- SERVER_PRINCIPAL_CHANGE_GROUP
- LOGIN_CHANGE_PASSWORD_GROUP
- SERVER_STATE_CHANGE_GROUP
- Server-level : Bu olaylar yönetimde yapılan değişikliklerini, logon/logoff gibi server operasyonlarıyla ilgili olaylardır.
- Database-level : Data manipulation language ve Data definition language operasyonlarını kapsar. Database, tablo, fonksiyon, stored procedur gibi schema objelerini ilgilendiren olaylardır. Örneğin SELECT, ALTER gibi SQL komutlarını loglamak için
- Audit-level : Auditing process'iyle ilgili olayları içerir.
Windows logları görüntülenebilir. Örneğin aşağıda örnek bir brute force kayıtlarını inceleyebiliriz.
Destination olarak file seçeneği seçildiğinde Binary File formatı geçerli olur ve belirtilen adrese log dosyaları yazılır. Bu dosya dizin üzerinden erişilip açılırsa binary formatta olduğu için okunamaz. Okumak için yine Object Explorer üzerinde Security -> Audits yolu takip edilir ve oluşturduğumuz Audit objesine sağ tıklanarak view audit log seçeneğine tıklanır.
Referanslar
https://www.manageengine.com/products/eventlog/help/getting-started/enable-mssql-audit-logs.html
https://msdn.microsoft.com/en-us/library/cc280663.aspx
Bu makale İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü öğrencisi stajyerimiz Cemal Türkoğlu tarafından geliştirilmiştir.