Skip to content

BrkYld/mssql-server-audit-configuration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

mssql-server-audit-configuration

Microsoft sql server configuration for logs

Gereksinimler

  • MS SQL Server kurulu bir makine
  • Microsoft Sql Server Management Studio
  • Server'da Owner yetkisine sahip bir kullanıcı

Giriş

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 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 penceresi çıkar.

    create_audit new_audit_screen

  • 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.

Server Bazlı Audit Kurallarını Belirleme

  • Yeni Audit oluşturma işleminden 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ı istediğimiz olaylar seçilir.

Server_Audit_Specification

  • 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
  • Bu şekilde kayıt ettikten sonra Audit Object ve Audit Specifications nodelarına sağ tıklanarak Enable seçeneğine tıklanarak aktif hale getirilmelidir. Artık belirttiğimiz olayların logları tutulacaktır.

Database Bazlı Audit Kurallarını Belirleme

  • Loglama işlemleri veritabanı bazında da gerçekleştirilebilir. Bu şekilde istenilen tabloların loglarını açıp/kapatabiliriz.
  • Object Explorer üzerinde Databases -> [Veritabanınız] -> Security yolu izlenir.
  • Database Audit Specification nodu üzerine sağ tıklanıp New Database Audit Specification seçeneği seçilir.

DB_Audit_Spec

  • Burada belirtilecek Audit Action tipleri tüm veritabanını gözetleyecek şekilde aramak istenirse Object Class kısmı Database , Object Name kısmı loglamak istenilen veritabanı seçilir. Tüm kullanıcıların izlenebilmesi için Principal Name public seçilmelidir.
  • Audit action tablo bazında loglamak istenirse Object Class kısmı Object seçilir Object Name ' e loglamak istenilen tablo seçilir.

Logları İnceleme

Oluşturulan Logları incelemek için :

  • Object Explorer üzerinde Security -> Audits yolu izlenir.
  • Audits nodu üzerine sağ tıklanıp View Audit Logs seçeneği seçilerek loglar incelenebilir, csv , txt ve log formatlarında export edilebilir.
  • Oluşturulan logların zamanı ile sistem zamanı arasında 3-5 saat arası fark olabilir. Bunun sebebi logların UTC saatine göre oluşturulmasıdır. İstenirse sistem saatine göre log raporu oluşturulabilir. Bunun için Sql komut satırına :
SELECT DATEADD(MINUTE, DATEDIFF(MINUTE, GETUTCDATE(), CURRENT_TIMESTAMP), event_time) AS event_time_afterconvert
    ,getdate() 'Current_system_time'
    ,*
FROM fn_get_audit_file('C:\PATH\*', DEFAULT, DEFAULT)

yazmak yeterlidir.

About

Microsoft sql server configuration for logs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published