Windows Server Güvenlik Açığı Tarama: Microsoft Baseline Security Analyzer Kullanımı

Yıllar önce bir müşterimin sunucusuna bağlandığımda gördüğüm manzarayı hala unutamıyorum: 847 adet yamlanmamış güvenlik açığı, aktif Administrator hesabı, açık Guest hesabı ve üstüne üstlük IIS 6.0. Adam “ama hiç sorun yaşamadık” diyordu. Üç gün sonra ransomware yedi. İşte bu yüzden güvenlik açığı taraması, sistem yöneticilerinin erteleye erteleye sonunda pişman olduğu o kritik görevlerden biridir. Microsoft Baseline Security Analyzer (MBSA), her ne kadar artık resmi olarak desteklenmese de, Windows ortamlarında temel güvenlik denetimi için hala referans alınan ve mirasını sürdüren bir araçtır. Bu yazıda MBSA’yı derinlemesine ele alacak, pratik kullanım senaryolarını işleyecek ve modern alternatiflere de değineceğiz.

Microsoft Baseline Security Analyzer Nedir?

MBSA, Microsoft’un ücretsiz olarak sunduğu ve Windows sistemlerindeki güvenlik yapılandırma hatalarını, eksik yamaları ve zayıf güvenlik ayarlarını tespit eden bir araçtır. 2004 yılında hayatımıza giren bu araç, sistem yöneticilerine tek bir konsoldan onlarca makineyi tarama imkanı sunuyordu.

MBSA’nın temel olarak kontrol ettiği alanlar şunlardır:

  • Windows güncellemeleri: Hangi KB makalelerinin uygulanmadığını raporlar
  • Parola politikaları: Zayıf veya boş parolalı hesapları tespit eder
  • Yönetici hesabı yapılandırması: Varsayılan hesap isimleri ve gereksiz hesapları kontrol eder
  • Dosya sistemi güvenliği: NTFS olmayan sürücüleri işaretler
  • IIS güvenlik ayarları: Web sunucu yapılandırma hatalarını raporlar
  • SQL Server güvenliği: SA hesabı ve boş parola kontrolü yapar
  • Otomatik güncelleme ayarları: Windows Update servis durumunu kontrol eder
  • Firewall durumu: Windows Firewall’un aktif olup olmadığını doğrular

Önemli Not: MBSA, resmi olarak Windows Server 2012 R2 ve önceki sistemleri tam olarak destekler. Windows Server 2016 ve sonrası için Microsoft, Security Compliance Toolkit ve Defender for Endpoint gibi araçlara yönlendirmiştir. Ancak MBSA’nın çalışma mantığını anlamak, modern güvenlik denetim araçlarını da anlamanızı kolaylaştıracaktır.

MBSA Kurulumu ve İlk Yapılandırma

MBSA’yı indirdikten sonra kurulum son derece basittir. Ama kurulum öncesinde bazı gereksinimleri kontrol etmeniz gerekir.

Sistem gereksinimleri:

  • Windows XP SP2 veya üzeri (yönetim istasyonu için)
  • .NET Framework 2.0 veya üzeri
  • XML Parser 3.0 veya üzeri
  • Internet Explorer 5.01 veya üzeri
  • Taranacak makinelere yönetici erişimi

Kurulumdan sonra MBSA’yı hem grafiksel arayüzden hem de komut satırından kullanabilirsiniz. Komut satırı aracı olan mbsacli.exe ile toplu tarama senaryolarında gerçek gücü görürsünüz.

# MBSA komut satırı aracının temel kullanımı
mbsacli.exe /target 192.168.1.100 /n os+iis+sql+password

# Parametreler:
# /target: Hedef IP adresi veya hostname
# /n: Tarama kapsamını belirler
# os: İşletim sistemi güvenlik kontrolleri
# iis: IIS web sunucu kontrolleri
# sql: SQL Server güvenlik kontrolleri
# password: Parola güvenlik kontrolleri

Komut Satırından Etkili Kullanım

Gerçek iş ortamında grafik arayüz genellikle yetersiz kalır. Onlarca, yüzlerce sunucunuz varsa otomasyona ihtiyacınız vardır. İşte burada mbsacli.exe devreye girer.

Tekil Sunucu Taraması

# Tek bir sunucuyu tüm kontroller ile tara
mbsacli.exe /target srv-web01 /n os+iis+sql+password /o "%D - %C - Report"

# Parametreler:
# /o: Çıktı dosyası isim formatı
# %D: Tarih damgası
# %C: Bilgisayar adı
# /nd: Domain controller'a sorgu yapmadan tara
# /nr: Update katalog sorgusunu atla (offline ortamlar için)

IP Aralığı ile Toplu Tarama

# Belirli bir IP aralığındaki tüm makineleri tara
mbsacli.exe /r 192.168.1.1-192.168.1.254 /n os+iis+sql+password /o "C:MBSA_Reports%D_%C"

# Domain üzerindeki tüm makineleri tara
mbsacli.exe /d SIRKETIM.LOCAL /n os+iis+sql+password /catalog C:MBSAwsusscn2.cab

Offline Katalog ile Tarama

İnternet erişimi olmayan kapalı ağ ortamlarında MBSA’yı kullanmak için WSUS katalog dosyasına ihtiyacınız vardır. Bu senaryo özellikle fabrika ortamları, sağlık kurumları ve finans şirketlerinde çok karşılaşılan bir durumdur.

# Önce wsusscn2.cab dosyasını Microsoft'tan indirin
# Sonra bu katalog ile offline tarama yapın
mbsacli.exe /target 10.0.0.50 /catalog C:MBSAwsusscn2.cab /n os+iis+sql+password

# WSUS sunucusu üzerinden katalog kullanımı
mbsacli.exe /target 10.0.0.50 /sus http://wsus.sirketim.local:8530 /n os+iis+sql+password

PowerShell ile MBSA Entegrasyonu

Modern Windows ortamlarında MBSA’yı PowerShell scriptleri ile entegre etmek, raporlama ve otomasyon açısından büyük avantaj sağlar. Aşağıdaki script ile tüm domain makinelerinizi otomatik olarak tarayabilir ve sonuçları merkezi bir konuma toplayabilirsiniz.

# PowerShell ile tüm domain makinelerini MBSA ile tara
# Bu scripti Domain Controller üzerinde çalıştırın

$MBSAPath = "C:Program FilesMicrosoft Baseline Security Analyzer 2"
$ReportPath = "C:MBSA_Reports"
$LogFile = "C:MBSA_Reportstarama_log_$(Get-Date -Format 'yyyyMMdd').txt"

# Rapor dizini yoksa oluştur
if (-not (Test-Path $ReportPath)) {
    New-Item -ItemType Directory -Path $ReportPath | Out-Null
}

# Active Directory'den tüm Windows sunucularını çek
$Sunucular = Get-ADComputer -Filter {OperatingSystem -like "*Windows Server*"} `
    -Properties OperatingSystem | Select-Object -ExpandProperty Name

Write-Host "Toplam $($Sunucular.Count) sunucu bulundu. Tarama basliyor..." -ForegroundColor Green

foreach ($Sunucu in $Sunucular) {
    Write-Host "Taraniyor: $Sunucu" -ForegroundColor Yellow
    
    # Ping kontrolü yap
    if (Test-Connection -ComputerName $Sunucu -Count 1 -Quiet) {
        
        $TaramaKomutu = "$MBSAPathmbsacli.exe"
        $Parametreler = "/target $Sunucu /n os+iis+sql+password /o `"$ReportPath$(Get-Date -Format 'yyyyMMdd')_$Sunucu`""
        
        Start-Process -FilePath $TaramaKomutu -ArgumentList $Parametreler -Wait -NoNewWindow
        Add-Content -Path $LogFile -Value "$(Get-Date): $Sunucu - TARANDI"
    } else {
        Add-Content -Path $LogFile -Value "$(Get-Date): $Sunucu - ERISIM YOK"
        Write-Host "  $Sunucu erisilemez durumda, atlaniyor." -ForegroundColor Red
    }
}

Write-Host "Tarama tamamlandi. Raporlar: $ReportPath" -ForegroundColor Green

MBSA Raporlarını Yorumlamak

MBSA raporları XML formatında kaydedilir ve MBSA arayüzünden görüntülenebilir. Raporlardaki renk kodlaması şu şekildedir:

  • Kırmızı X: Kritik güvenlik açığı veya eksik yama
  • Sarı Uyarı: Önemli güvenlik önerisi
  • Yeşil Onay: Kontrol başarılı
  • Mavi Bilgi: Bilgilendirme amaçlı not

Raporu otomatik parse etmek için PowerShell kullanabilirsiniz:

# MBSA XML raporunu parse et ve kritik bulguları listele
$RaporDosyasi = "C:MBSA_Reports20240115_SRV-WEB01.mbsa"

# MBSA rapor dosyası aslında XML formatındadır
[xml]$Rapor = Get-Content $RaporDosyasi

# Kritik bulguları filtrele
$KritikBulgular = $Rapor.SelectNodes("//Check[@Result='0']")

Write-Host "=== KRITIK GUVENLIK BULGULARI ===" -ForegroundColor Red
Write-Host "Sunucu: $($Rapor.SecScan.Machine)" -ForegroundColor Cyan
Write-Host "Tarama Tarihi: $($Rapor.SecScan.Date)" -ForegroundColor Cyan
Write-Host ""

foreach ($Bulgu in $KritikBulgular) {
    Write-Host "[-] $($Bulgu.Advice)" -ForegroundColor Red
    Write-Host "    KB Makalesi: $($Bulgu.Detail)" -ForegroundColor Yellow
}

# Sonucu CSV'ye aktar
$KritikBulgular | Select-Object Advice, Detail | 
    Export-Csv "C:MBSA_Reportskritik_bulgular.csv" -NoTypeInformation -Encoding UTF8

Gerçek Dünya Senaryosu: Üretim Ortamı Güvenlik Denetimi

Geçen yıl bir lojistik firmasında yaptığım güvenlik denetimini paylaşmak istiyorum. Firma 23 Windows Server 2012 R2 ve 8 Windows Server 2016 makine çalıştırıyordu. MBSA taraması sonucunda ortaya çıkan tablo şok ediciydi.

Karşılaşılan kritik sorunlar:

  • 23 sunucunun 17’sinde 90 günden fazla uygulanmamış kritik yamalar
  • 6 sunucuda boş parola ile yerel hesaplar
  • 11 sunucuda Guest hesabı aktif
  • 4 sunucuda NTFS olmayan C: sürücüsü
  • 3 sunucuda IIS anonymous authentication açık bırakılmış
  • Hiçbir sunucuda Windows Firewall aktif değil

Bu durumu raporladıktan sonra önce düşük asılı meyveleri (low-hanging fruit) topladık:

# Tüm sunucularda Guest hesabını devre dışı bırak
# Bu scripti her sunucuda veya GPO ile uygula

$GuestHesap = [ADSI]"WinNT://./Guest,user"
$GuestHesap.UserFlags = $GuestHesap.UserFlags.value -bor 0x0002
$GuestHesap.SetInfo()
Write-Host "Guest hesabi devre disi birakildi." -ForegroundColor Green

# Administrator hesabini yeniden adlandır
$YeniAd = "IT_Admin_2024"
$AdminHesap = [ADSI]"WinNT://./Administrator,user"
$AdminHesap.PSBase.Rename($YeniAd)
Write-Host "Administrator hesabi '$YeniAd' olarak yeniden adlandirildi." -ForegroundColor Green

# Windows Firewall'u aktifleştir
netsh advfirewall set allprofiles state on
Write-Host "Windows Firewall tum profillerde aktif edildi." -ForegroundColor Green

Bu basit adımlarla bile saldırı yüzeyini ciddi ölçüde azalttık.

MBSA’nın Sınırlamaları ve Dikkat Edilmesi Gerekenler

MBSA’yı kullanırken bazı önemli noktalara dikkat etmek gerekir:

Desteklenen işletim sistemleri:

  • Windows Server 2003, 2008, 2008 R2, 2012, 2012 R2 için tam destek
  • Windows Server 2016 ve 2019 için sınırlı destek, bazı kontroller çalışmayabilir
  • Windows Server 2022 için resmi destek bulunmuyor

Bilinen sınırlamalar:

  • Katalog güncelliği: MBSA, güncel XML katalog dosyasına ihtiyaç duyar. Bu dosyayı düzenli güncellemelisiniz.
  • Ağ gereksinimleri: Uzak tarama için WMI, RPC ve SMB portlarının açık olması gerekir.
  • UAC sorunları: Windows Vista ve sonrası için UAC ayarları taramayı etkileyebilir.
  • Yanlış pozitifler: Bazı yapılandırmalar MBSA tarafından yanlış değerlendirilebilir.
# MBSA için gerekli firewall kurallarını aç (taranacak sunucularda)
# WMI
netsh advfirewall firewall set rule name="Windows Management Instrumentation (WMI-In)" new enable=yes

# File and Printer Sharing (SMB)
netsh advfirewall firewall set rule name="File and Printer Sharing (SMB-In)" new enable=yes

# Remote Administration
netsh advfirewall firewall set rule name="Remote Administration (NP-In)" new enable=yes

Write-Host "MBSA tarama portlari acildi." -ForegroundColor Green

MBSA’nın Mirası: Modern Alternatifler

Microsoft, MBSA’nın geliştirilmesini durdurmuş olsa da bu araçtan öğrendiğimiz güvenlik denetim mantığı hala geçerlidir. Modern ortamlar için şu alternatiflere yönelmenizi öneririm:

Microsoft Security Compliance Toolkit (SCT):

  • MBSA’nın resmi halefi olarak gösterilir
  • Group Policy Object (GPO) tabanlı güvenlik baseline yönetimi yapar
  • Policy Analyzer ile mevcut politikaları karşılaştırabilirsiniz

Microsoft Defender for Endpoint:

  • Sürekli güvenlik açığı değerlendirmesi
  • Tehdit ve güvenlik açığı yönetimi modülü
  • CVSS skorlaması ile önceliklendirme

Windows Admin Center:

  • Azure Security Center entegrasyonu
  • Gerçek zamanlı güvenlik durumu izleme

Ücretsiz alternatifler:

  • OpenVAS/Greenbone: Açık kaynak, güçlü tarama motoru
  • Nessus Essentials: 16 IP’ye kadar ücretsiz
  • Tenable.sc: Kurumsal ortamlar için
# Microsoft Security Compliance Toolkit ile baseline karşılaştırması
# SCT'yi indirip Policy Analyzer'ı çalıştırın

# Mevcut GPO'yu dışa aktar
$GpoAdi = "Default Domain Policy"
$CiktiDizini = "C:SCT_Analysis"

Backup-GPO -Name $GpoAdi -Path $CiktiDizini

# PolicyAnalyzer ile karşılaştırma için
# PolicyAnalyzer.exe'yi çalıştırın ve Microsoft baseline'ları ile karşılaştırın
Write-Host "GPO yedegi alindi: $CiktiDizini" -ForegroundColor Green
Write-Host "Policy Analyzer ile karsilastirma icin SCT'yi kullanalim..." -ForegroundColor Yellow

Periyodik Tarama Planı Oluşturma

Güvenlik taraması tek seferlik bir eylem değil, sürekli bir süreçtir. Aşağıdaki Windows Scheduled Task ile MBSA’yı otomatik olarak çalıştırabilirsiniz:

# Windows Task Scheduler ile haftalık otomatik MBSA taraması planla
$TaramaScripti = @"
@echo off
set MBSA_PATH="C:Program FilesMicrosoft Baseline Security Analyzer 2mbsacli.exe"
set RAPOR_DIZIN=C:MBSA_ReportsHaftalik
set TARIH=%DATE:~-4,4%%DATE:~-7,2%%DATE:~0,2%

if not exist %RAPOR_DIZIN% mkdir %RAPOR_DIZIN%

%MBSA_PATH% /d SIRKETIM.LOCAL /n os+iis+sql+password /o "%RAPOR_DIZIN%%TARIH%_%COMPUTERNAME%" /catalog C:MBSAwsusscn2.cab

echo Tarama tamamlandi: %DATE% %TIME% >> C:MBSA_Reportstarama.log
"@

$TaramaScripti | Out-File "C:Scriptsmbsa_haftalik_tarama.bat" -Encoding ASCII

# Scheduled Task oluştur
$Eylem = New-ScheduledTaskAction -Execute "C:Scriptsmbsa_haftalik_tarama.bat"
$Tetikleyici = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At "02:00AM"
$Ayarlar = New-ScheduledTaskSettingsSet -RunOnlyIfNetworkAvailable -WakeToRun
$Kimlik = New-ScheduledTaskPrincipal -UserId "SIRKETIMsvc_mbsa" -LogonType Password -RunLevel Highest

Register-ScheduledTask -TaskName "MBSA Haftalik Tarama" `
    -Action $Eylem `
    -Trigger $Tetikleyici `
    -Settings $Ayarlar `
    -Principal $Kimlik `
    -Description "Her Pazartesi gece 02:00'de tum domain makinelerini tara"

Write-Host "Haftalik MBSA tarama gorevi olusturuldu." -ForegroundColor Green

Tarama Sonrası Aksiyon Planı

Tarama sonuçları elde etmek güzel, ama asıl önemli olan bu bulgular üzerine harekete geçmektir. Ben her zaman üç aşamalı bir yaklaşım öneririm:

Acil müdahale (0-72 saat):

  • CVSS skoru 9.0 ve üzeri kritik açıkların kapatılması
  • Boş ve zayıf parolalı hesapların düzeltilmesi
  • Gereksiz açık portların kapatılması

Kısa vadeli aksiyonlar (1-4 hafta):

  • Eksik güvenlik yamalarının test ortamında uygulanması ve üretim geçişi
  • IIS ve SQL Server güvenlik sertleştirmesi
  • GPO tabanlı güvenlik politikalarının uygulanması

Uzun vadeli iyileştirmeler (1-3 ay):

  • Otomatik yama yönetimi altyapısı kurma (WSUS veya SCCM)
  • Sürekli güvenlik izleme sisteminin devreye alınması
  • Güvenlik farkındalık eğitimlerinin planlanması

Sonuç

MBSA, yaşını başını almış ama temel güvenlik denetim felsefesini bize öğretmiş değerli bir araçtır. Artık aktif olarak geliştirilmese de Windows Server 2012 R2 ve önceki ortamlarda hala kullanılabilir ve özellikle bütçesi kısıtlı kurumlarda işe yarar. Daha da önemlisi, MBSA’nın kontrol ettiği alanları anlamak, herhangi bir güvenlik denetim aracını daha etkin kullanmanızı sağlar.

Modern ortamlarda Microsoft Security Compliance Toolkit, Defender for Endpoint veya açık kaynak alternatiflere geçmek mantıklı bir adımdır. Ama hangi aracı kullanırsanız kullanın, önemli olan düzenli tarama yapmak, bulgular üzerine harekete geçmek ve bu döngüyü sürekli tekrarlamaktır.

Güvenlik bir ürün değil, bir süreçtir. MBSA bize bunu en net şekilde öğreten araçlardan biri olmuştur. Şimdi gidin, sunucularınızı tarayın. Kaç yıldır yamalanamayan KB makalesi bekliyordur kim bilir.

Yorum yapın