MSSQL Veri Tabanlarına Yapılan Saldırılar Kapsamında Toplanması Önerilen Loglar

Yüksek derece gizlilik seviyesine sahip verileri barındıran veri tabanlarına karşı yapılan saldırı ve veri sızdırma girişimlerinin önüne geçilmesi noktasında bahse konu veri tabanı sunucularından elde edilen logların optimize edilerek toplanması ve sonrasında SIEM‘e gönderilmesi bilindiği üzere oldukça önemli bir husus. Saldırganların (iç ve dış) MSSQL kapsamında yaptıkları keşif, sızma ve veri sızdırma girişimlerinin tespiti kapsamında neler yapılabileceği kapsamında yazılan bu yazı temel olarak üç aşamadan oluşuyor.

1- MSSQL Audit Ayarları

2- MSSQL Alert Ayarları

3- Loglar

Başlıklara geçmeden önce, daha önce aşağıdaki ayarları MSSQL üzerinde yapmadıysanız aşağıdaki uyarıları göz önünde bulundurmanızda fayda var.

  • İlgili ayarları mutlaka öncelikle lab. ortamında deneyin.
  • Aşağıdaki ayarlar
  • Audit ayarlarından özellikle “Successful Logins” ayarı aşırı şekilde log üretebilir. Çalıştığın şirketin güvenlik yaklaşımına göre karar verilmesinde fayda var.
  • MSSQL audit loglarını SIEM’e gönderdikten sonra ilgili logların sunucuda alındığı saatle, SIEM’e gönderilen logların arasındaki saat farkını mutlaka kontrol edin. Olay müdahalesi sürecinde bu husus oldukça önemli.
  • “sa” kullanıcısını disable etmeniz mümkün değilse sa kullanıcısı ile birden fazla login denemesi olmasıyla ilgili alarm ürettirin.

Ekstra okuma ve izleme listesi:

Girişten sonra ilk bölümle başlayalım.

1- MSSQL Audit Ayarları

Bu bölümde yer alan “Audit Action Type” seçenekleri “best practice” seçenekler olmayıp diğer aksiyon tiplerini de araştırmanız da fayda var. Audit ayarlarını açmak için MSSQL sunucusunun “Properties” ekranını açalım.

Sonrasında Security > Login auditing > Failed logins only seçeneğini seçelim. Şayet başarılı login denemelerini de toplamak (yukarıda yazılan uyarıları da göz önüne alarak) istiyorsanız “Both failed and successful logins” seçeneğiyle devam edebilirsiniz.

Diğer adımda Security > Audits (sağ tık) > New Audit seçeneğiyle ilerleyelim.

Audit ayarına isim verdikten sonra “On Audit Log Failure” seçeneğinden Continue seçeneğiyle devam edelim. Bu noktada diğer iki seçeneğin iş sürekliliğini tehlikeye atabileceğini de aklımızda tutalım.

Audit Destination seçeğinde toplamda üç seçenek var: Application Log, Security Log ve File. Kullandığınız SIEM’in log toplama yeteneklerine göre uygun seçeneği belirleyebilirsiniz (File seçeneğinde yapılan yanlış ayarlar sunucunun diskini hızlı şekilde doldurabilir.)

Sunucu audit ayarını açtıktan sonra Server Audit Specifications > New Server Audit Specifications yolunu izleyelim.

Auditleri isimlendirelim. Aşağıda yer alan “Audit Action Type” bölümü oldukça önemli. Örneğin auditlerin kapanması durumunda, yönetici rol değişimlerinde, kullanıcı hak ve yetkilerinde logların oluşması oldukça önem arz eden bir konu.

Audit Action Type konusuyla ilgili daha detaylı bilgi için:

1- Rapid7’nin yönergesi

2- Netsurion’un yönergesi

Yapılan ayarlardan sonra iki audit ayarını “Enable” edelim.

2- MSSQL Alert Ayarları

SQL Server Agent sekmesi altındaki Alerts bölümünde port taraması yapılması, başarısız loginler vd. gibi durumlar için direkt e-posta göndermek mümkün.

Alert örnekleri:

Kaynak: https://eitanblumin.com/2020/03/09/finding-details-missing-sql-server-failed-logins-audit/

Örnek alarm listesini aşağıdaki ekran alıntısına ekledim. İlgili alertlerin tek tek incelemeden açılması halinde çok fazla özellikle Nessus taramasında e-posta gelme olasılığı yüksek.)

3- Loglar

Nmap ile veri tabanı sunucusunu 1433 üzerinden tarayalım. Saldırgan IP: 192.168.56.1

Oluşan Log: Error 17832, başarısız login denemesi, Saldırgan IP -> 192.168.56.1

Farklı kullanıcılar için dictonary attack denemesi yapalım.

Oluşan Log: Error 18452 ve 17806, Saldırgan IP -> 192.168.56.1

testuser adında yeni bir kullanıcı ekleyelim. Oluşan EventID: 33205, CREATE LOGIN, ID: testuser

testuser kullanıcını sysadmin yapalım. Oluşan EventID: 33205, ALTER SERVER ROLE, ID: testuser

disableuser kullanıcısını disable edelim. Oluşan EventID: 33205, ALTER LOGIN, ID: disableuser

Audit ayarlarını kapatalım. Oluşan EventID: 33205, ALTER SERVER AUDIT SPECIFICATION, STATE OFF

Audit ayarlarının yanı sıra oluşturulan örnek senaryolara göre logları da SIEM’e gönderme konusuyla iki örnek verdikten sonra yazıyı sonlandıralım.

Herhangi bir veri tabanının dumpını .bak olarak alalım ve diske kaydedelim. Oluşan ve toplanması gereken log:

Advanced options ve xp_cmdshell’i açıp whoami sorgusunu çekelim.

Oluşan ve toplanması gereken log:

Faydalı olması dileğiyle…

Kaynaklar:

1- https://eitanblumin.com/2020/03/09/finding-details-missing-sql-server-failed-logins-audit/

2- https://www.cisecurity.org/benchmark/microsoft_sql_server

3- https://www.irs.gov/pub/irs-utl/safeguards-scsem-sql-server.xlsx

4- https://docs.rapid7.com/insightidr/database-audit-logs/

5- https://www.irs.gov/pub/irs-utl/safeguards-scsem-sql-server.xlsx

6- https://www.netsurion.com/Corporate/media/Corporate/Files/Support-Docs/How-to-Configure-Microsoft-SQL-Server-to-forward-logs-to-EventTracker.pdf

7- https://www.sqlshack.com/various-techniques-to-audit-sql-server-databases/

8- https://nxlog.co/documentation/nxlog-user-guide/mssql.html

Yorum bırakın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.