Windows'da SIEM Entegrasyonu

Windows'da SIEM Entegrasyonu

Bölümler:

  1. Giriş ve Temel Kavramlar - Neden bu izinler gerekli?
  2. Adım Adım Yapılandırma - Grup üyelikleri, WMI, Event Log, DCOM, WinRM
  3. Otomatikleştirme Script'leri - PowerShell ile tam otomatik yapılandırma
  4. Test ve Doğrulama - Kapsamlı kontrol süreçleri
  5. Sorun Giderme - Sık karşılaşılan problemler ve çözümleri
  6. Güvenlik Best Practices - Minimum yetki prensibi ve güvenlik önerileri

Özellikler:

  • Praktik odaklı - Her adım için çalışır kod örnekleri
  • Kapsamlı - Tüm gerekli izin türlerini kapsıyor
  • Test edilebilir - Doğrulama script'leri ile sonuçları kontrol edebilme
  • Güvenlik odaklı - Güvenlik best practices'i dahil
  • Sorun giderme rehberi - Yaygın problemler ve çözümleri

Kullanıcı İzinlerini Doğru Yapılandırma

SIEM (Security Information and Event Management) sistemleri, kurumsal güvenlik altyapısının temel taşlarından biridir. Ancak Windows sunuculardan log toplarken en sık karşılaşılan sorunlardan biri, izin ve erişim problemleridir. Bu yazıda, Windows'da SIEM kullanıcısı için gerekli tüm izinleri PowerShell ile nasıl yapılandıracağınızı ve doğrulayacağınızı detaylı olarak anlatacağım.

Neden Bu İzinler Gerekli?

SIEM sistemleri Windows sunuculardan veri toplarken şu kaynaklara erişim sağlamalıdır:

  • Event Logs: Güvenlik, Sistem ve Uygulama logları
  • WMI (Windows Management Instrumentation): Sistem bilgileri ve performans verileri
  • WinRM (Windows Remote Management): Uzak yönetim ve komut çalıştırma
  • DCOM (Distributed Component Object Model): Distributed uygulamalar arası iletişim

Bu erişimlerin her biri farklı izin seviyelerinde yapılandırma gerektirir.

Adım 1: Temel Grup Üyelikleri

SIEM kullanıcısının öncelikle belirli Windows gruplarında olması gerekir:

# Kullanıcıyı gerekli gruplara ekle $Groups = @( "Performance Monitor Users", "Event Log Readers", "Distributed COM Users" ) foreach ($Group in $Groups) { Add-LocalGroupMember -Group $Group -Member "siem_user" Write-Host "✓ $Group grubuna eklendi" } 

Bu Grupların İşlevleri:

  • Performance Monitor Users: Performans sayaçlarına ve WMI verilerine erişim
  • Event Log Readers: Event Log'larını okuma yetkisi
  • Distributed COM Users: DCOM uygulamalarını kullanma yetkisi

Adım 2: WMI Namespace İzinleri

WMI, Windows sistem bilgilerine programatik erişim sağlar. SIEM sistemleri bu verilere ihtiyaç duyar:

# WMI namespace'lerine erişim izni ver $WmiNamespaces = @("root\cimv2", "root\default", "root\wmi") foreach ($Namespace in $WmiNamespaces) { # Manuel yapılandırma: wmimgmt.msc kullanılması önerilir Write-Host "WMI Namespace: $Namespace yapılandırılıyor..." } 

Manuel WMI Yapılandırması:

  1. wmimgmt.msc çalıştırın
  2. WMI Control (Local)PropertiesSecurity
  3. Root namespace'ini seçin → Security
  4. SIEM kullanıcısını ekleyip şu izinleri verin:
    • Execute Methods
    • Provider Write
    • Enable Account
    • Remote Enable

Adım 3: Event Log İzinleri

Event Log'larına erişim için registry seviyesinde izinler gereklidir:

# Event Log registry anahtarlarına erişim izni $EventLogs = @("Application", "System", "Security") foreach ($LogName in $EventLogs) { $RegPath = "HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\$LogName" $Acl = Get-Acl $RegPath $AccessRule = New-Object System.Security.AccessControl.RegistryAccessRule( "COMPUTERNAME\siem_user", "ReadKey", "ContainerInherit,ObjectInherit", "None", "Allow" ) $Acl.SetAccessRule($AccessRule) Set-Acl -Path $RegPath -AclObject $Acl Write-Host "✓ $LogName Event Log izni verildi" } 

Adım 4: DCOM Yapılandırması

DCOM izinleri, uzak WMI erişimi için kritiktir:

# DCOM Component Services yapılandırması # Manuel yapılandırma gerekli: dcomcnfg.exe 

Manuel DCOM Yapılandırması:

  1. dcomcnfg.exe çalıştırın
  2. Component ServicesComputersMy ComputerDCOM Config
  3. "Windows Management Instrumentation" bulun → Properties
  4. Security tab'ında:
    • Launch and Activation Permissions → Edit
    • Access Permissions → Edit
    • SIEM kullanıcısını ekleyip tüm izinleri verin

Adım 5: WinRM Yapılandırması

Uzak erişim için WinRM'in doğru yapılandırılması gerekir:

# WinRM temel yapılandırması winrm quickconfig -y winrm set winrm/config/service '@{AllowUnencrypted="true"}' winrm set winrm/config/service/auth '@{Basic="true"}' # Listener kontrolü winrm enumerate winrm/config/listener # Servis durumu kontrolü Get-Service WinRM | Start-Service 

Yapılandırma Script'i

Tüm bu işlemleri otomatikleştiren kapsamlı bir PowerShell script'i:

param($SiemUsername) $TestResults = @() # Grup üyeliklerini test et $Groups = @("Performance Monitor Users", "Event Log Readers", "Distributed COM Users") foreach ($Group in $Groups) { $Members = Get-LocalGroupMember -Group $Group if ($Members.Name -contains "$env:COMPUTERNAME\$SiemUsername") { $TestResults += "✓ $Group: BAŞARILI" } else { $TestResults += "✗ $Group: BAŞARISIZ" } } # WMI erişim testi try { Get-WmiObject -Class Win32_ComputerSystem | Out-Null $TestResults += "✓ WMI Erişim: BAŞARILI" } catch { $TestResults += "✗ WMI Erişim: BAŞARISIZ" } # Event Log testi try { Get-WinEvent -LogName Application -MaxEvents 1 | Out-Null $TestResults += "✓ Event Log: BAŞARILI" } catch { $TestResults += "✗ Event Log: BAŞARISIZ" } # WinRM testi $WinRMTest = Test-NetConnection -ComputerName localhost -Port 5985 -WarningAction SilentlyContinue if ($WinRMTest.TcpTestSucceeded) { $TestResults += "✓ WinRM: BAŞARILI" } else { $TestResults += "✗ WinRM: BAŞARISIZ" } # Sonuçları göster Write-Host "Test Sonuçları:" -ForegroundColor Cyan $TestResults | ForEach-Object { Write-Host $_ }

 

İzinleri Doğrulama ve Test Etme

Yapılandırma sonrası mutlaka test edilmelidir:

# 1. Grup üyeliklerini kontrol et Get-LocalGroupMember -Group "Performance Monitor Users" Get-LocalGroupMember -Group "Event Log Readers" Get-LocalGroupMember -Group "Distributed COM Users" # 2. WMI erişim testi Get-WmiObject -Class Win32_ComputerSystem Get-WmiObject -Class Win32_Service | Select-Object -First 5 # 3. Event Log erişim testi Get-WinEvent -LogName Application -MaxEvents 5 Get-WinEvent -LogName System -MaxEvents 5 # 4. WinRM bağlantı testi Test-NetConnection -ComputerName localhost -Port 5985 winrs -r:localhost -u:siem_user cmd # 5. Credential ile test $Credential = Get-Credential "COMPUTERNAME\siem_user" Get-WmiObject -Class Win32_ComputerSystem -Credential $Credential 

Doğrulama Script'i

Test sürecini otomatikleştiren doğrulama script'i:

param($SiemUsername) $TestResults = @() # Grup üyeliklerini test et $Groups = @("Performance Monitor Users", "Event Log Readers", "Distributed COM Users") foreach ($Group in $Groups) { $Members = Get-LocalGroupMember -Group $Group if ($Members.Name -contains "$env:COMPUTERNAME\$SiemUsername") { $TestResults += "✓ $Group: BAŞARILI" } else { $TestResults += "✗ $Group: BAŞARISIZ" } } # WMI erişim testi try { Get-WmiObject -Class Win32_ComputerSystem | Out-Null $TestResults += "✓ WMI Erişim: BAŞARILI" } catch { $TestResults += "✗ WMI Erişim: BAŞARISIZ" } # Event Log testi try { Get-WinEvent -LogName Application -MaxEvents 1 | Out-Null $TestResults += "✓ Event Log: BAŞARILI" } catch { $TestResults += "✗ Event Log: BAŞARISIZ" } # WinRM testi $WinRMTest = Test-NetConnection -ComputerName localhost -Port 5985 -WarningAction SilentlyContinue if ($WinRMTest.TcpTestSucceeded) { $TestResults += "✓ WinRM: BAŞARILI" } else { $TestResults += "✗ WinRM: BAŞARISIZ" } # Sonuçları göster Write-Host "Test Sonuçları:" -ForegroundColor Cyan $TestResults | ForEach-Object { Write-Host $_ } 

Sık Karşılaşılan Sorunlar ve Çözümleri

1. WMI Access Denied Hatası

Çözüm: DCOM izinlerini manuel kontrol edin

dcomcnfg.exe # Windows Management Instrumentation → Security → Launch and Activation Permissions 

2. Event Log Erişim Reddi

Çözüm: Registry izinlerini kontrol edin

$RegPath = "HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\Security" Get-Acl $RegPath | Format-List 

3. WinRM Bağlantı Sorunları

Çözüm: Güvenlik duvarı ve servis durumunu kontrol edin

Get-Service WinRM Get-NetFirewallRule -DisplayName "*WinRM*" netstat -an | findstr :5985 

4. DCOM Timeout Hataları

Çözüm: DCOM timeout değerlerini artırın

# Registry: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID\{APPID} # RemoteServerName ve AuthenticationLevel değerlerini kontrol edin 

Güvenlik Konuları

SIEM kullanıcısı için güvenlik best practices:

1. Minimum Yetki Prensibi

# Sadece gerekli izinleri verin # Administrator grubuna eklemeyin # Gerekli olmayan servislere erişim vermeyin 

2. Güçlü Parola Politikası

# Karmaşık parola kullanın # Düzenli parola değişimi # Service account olarak işaretleyin 

3. Audit ve İzleme

# SIEM kullanıcısının aktivitelerini izleyin # Başarısız giriş denemelerini loglanın # Yetkisiz erişim girişimlerini tespit edin 

4. Network Güvenliği

# HTTPS/SSL kullanın (Port 5986) winrm create winrm/config/Listener?Address=*+Transport=HTTPS # Unencrypted bağlantıları sınırlandırın winrm set winrm/config/service '@{AllowUnencrypted="false"}' 

Sonuç

Windows'da SIEM entegrasyonu için kullanıcı izinlerini doğru yapılandırmak kritiktir. Bu rehberde:

  • Grup üyelikleri ile temel izinler
  • WMI namespace erişimi için detaylı yapılandırma
  • Event Log okuma izinleri
  • DCOM yapılandırması
  • WinRM uzak erişim ayarları
  • Kapsamlı test ve doğrulama süreçleri

Bu adımları takip ederek, SIEM sisteminizin Windows sunuculardan güvenilir ve kesintisiz veri toplamasını sağlayabilirsiniz. Önemli Hatırlatma: Yapılandırma sonrası mutlaka sistemi yeniden başlatın ve tüm testleri tekrarlayın. SIEM entegrasyonunda güvenlik ve işlevsellik dengesini korumak için düzenli olarak izinleri gözden geçirin.


Bu rehber, Windows Server 2016/2019/2022 ve Windows 10/11 işletim sistemleri için geçerlidir. Farklı SIEM çözümlerinin kendine özgü gereksinimleri olabileceğini unutmayın.

Önceki Yazı DC-DC Düşürücü Voltaj Regülatörü (Buck Converter)
DC-DC Düşürücü Voltaj Regülatörü (Buck Converter)

Bu devrenin temel amacı, daha yüksek bir doğru akım (DC) giriş voltajını ...

Sonraki Yazı Siber Güvenlik Analistleri için Vazgeçilmez Windows Komutları
Siber Güvenlik Analistleri için Vazgeçilmez Windows Komutları

Siber güvenlik dünyasında, grafik arayüzlerin (GUI) rahatlığına rağmen, ...