MBSA

1. Juli 2005: MBSA 2.0 released
http://www.Microsoft.com/technet/security/tools/mbsa2/default.mspx

Bewahren Sie sich den MBSA 1.21 trotzdem noch auf, da der MBSA 2.0 kein NT4 mehr prüfen kann.

Der Microsoft Baseline Security Analyse ist neben den Programmen IISLOCKDown und dem ExBPA ein effektives Mittel um die Aktualität und Sicherheitseinstellungen ihres Servers zu überprüfen. Sie sollten überlegen, ob Sie die Prüfung mit MBSA nicht zu einer regelmäßigen Routine in ihrem Netzwerk werden lassen. Es gibt aber noch weitere Tools wie z. B.

Und sicher haben diverse kommerzielle Anbieter ebenfalls ein paar nette Werkzeuge in ihrer Angebotskisten.

Was prüft MBSA

MBSA möchte sicher stellen, dass ihr System eine gewissen Grundsicherheit erreicht. Dazu gehören:

  • Hardware
    Sind die aktuellen Treiber und BIOS-Versionen installiert ?
  • Betriebssystem
    Sind alle Patches und Update eingespielt.
  • Betriebssystemsergänzungen
    z.B. MDAC, NET-Framework etc. sind hier zu nennen
  • Konten
    Einstellungen bezüglich der Kennwortsicherheit und Benutzerkonten.
  • Serveranwendungen
    Hierunter fallen Exchange, SQL, IIS und andere Anwendungen
  • Clientanwendungen
    Auch Office und andere Anwendungen könnten mit geprüft werden.
  • Dritthersteller
    Sofern dies möglich ist, könnten auch Dritthersteller ihre Informationen einbinden

Einige Funktionen überlappen sich sicherlich mit Update und Patchmanagement) und ExBPA. Auf der anderen Seite wird MBSA z.B.: in SMS und MOM genutzt, um hier die Aktualität zu prüfen.

Angeblich will Microsoft nach und nach alle Produkte in MBSA aufnehmen. Wenn Dritthersteller ebenfalls ihre Daten als XML-Quelle integrieren können, dann könnte MBSA das universelle Werkzeug für die Kontrolle eines Systems auf Aktualität werden. Allerdings ist es heute schon so, dass zwar die wichtigen Updates geprüft werden, aber leider nicht alle. Sie werden daher weiterhin damit leben müssen, dass MBSA nicht die gleichen Update meldet, die Windows Update erkennt.

Die grafische Oberfläche

Doch ehe es soweit ist, müssen Sie erst einmal MBSA von Microsoft herunter laden und starten. Dazu legt MBSA ein Icon auf der Oberfläche ab. Der Start bietet eine grafische Oberfläche zur Auswahl der Aktionen. Es soll aber nicht verschwiegen werden, dass es auch eine Kommandozeilenversion gibt, mit der z.B. ein Administrator per regelmäßigem Job seine Server überprüfen kann.

Wenn Sie nur ihren Server kurz prüfen möchten, dann wählen sie "Einen Computer überprüfen" aus. MBSA kann mit den entsprechenden Berechtigungen auch über das Netzwerk viele andere Systeme überprüfen. MBSA prüft dabei nicht nur die verschiedenen Patches und Updates für das Betriebssystem, sondern auch verschiedene Verletzlichkeiten des Systems und Updates ausgewählter Serveranwendungen. Dies sehen Sie schon beim nächsten Bild:

MBSA 2.0 trägt auch nicht mehr das (c) Shavlik in der Fußzeile und unterstützt den WSUS-Server. Nach dem Start der Überprüfung holt sich MBSA von Microsoft erst einmal die aktuelle Version der MSSECURE.CAB. Dieses Archiv enthält die Datenbank für MBSA mit allen Patches und Einstellungen, die ein sicheres System beschreiben.

Wenn der Download nicht möglich ist, dann nutzt MBSA die vorhandene XML-Datei im Programmverzeichnis. Sie können diese auch selbst einspielen.

Die Überprüfung selbst dauert je nach System und Netzwerkanbindung bis zu einige Minuten pro Server. Danach existiert je Server ein eigener Report als XML-Datei. Den Namen können Sie vorgeben. Die Auswertung der Fehler zeigt, welche Einstellungen nach Ansicht von Microsoft verändert werden sollten und welche Updates fehlen. Die Liste der Auswertung kann etwas länger werden:

im wesentlichen ist dieser Server sicher. MBSA findet einige Benutzerkonten, deren Kennworte nicht ablaufen. Das ist z.B. das Konto für den Virenscanner, die Datensicherung und die beiden Konten für den INETUSR. Die automatischen Updates sind deaktiviert, da ich eine eigene Aktualisierung vornehme und der Server sowieso keine Verbindung zum Internet hat.

MBSA schreibt die Reports pro System in eine eigene Datei. Diese liegt per Default im Profilverzeichnis des Benutzers im Verzeichnis "SecurityScans".

MBSA ist "ReadOnly", d.h. verändert keine Einstellungen. Insofern ist es einfach und problemlos möglich, mit MBSA ihre produktiven Systeme zu prüfen.

MBSA 1.21 skripten

Ich habe Anfangs schon gesagt, dass MBSA auch von MOM und SMS eingesetzt wird. Es gibt daher eine Kommandozeilenversion, die entsprechend aufgerufen werden kann.

Wenn Sie nicht "remote" Scannen, dann muss MBSA zuerst auf dem System installiert werden. Dies können sieh auch "silent" mit folgendem Aufruf tun:

msiexec.exe /i "some path here\MBSASetup-EN.msi" /qn

Weiterhin benötigt MBSA eine Datei mit den Informationen, was wie zu prüfen ist. Dazu stellt Microsoft eine MSSECURE.CAB unter mehreren Adressen bereit. Leider gibt es immer mehrere Versionen hiervon.

Dritthersteller können sicher auch eigene CAB-Dateien bereitstellen, wenn Sie die Engine von MBSA nutzen wollen. Der Download kann natürlich auch durch WGET, MBSACLI oder andere Programme zentral erfolgen. Denkbar ist auch ein zentraler Download und die Bereitstellung über eine Dateifreigabe oder das Intranet.

Als nächstes muss MBSA dann als Kommandozeilenversion mit den passenden Parametern gestartet werden. Dazu dienst das Programm MBSACLI.EXE. Durch die Option "-nvc" wird MBSACLI angewiesen nicht nach einer neuen Version zu suchen.

History Patch

mbsacli.exe -hf -sms -x "MSSecure.cab" -f "HistScan.xml" -unicode -nvc -history 1

In der HostScan.XML finden Sie dann als Dateistruktur die Geschichte ihres PCs im Hinblick auf bereits installierte Patches

PatchScan

mbsacli.exe -hf -sms -x "MSSecure.cab" -f "PtfScan.xml" -unicode -nvc

Hier legt MBSACLI eine Datei PtfScan.xml im Programmverzeichnis ab, in dem für jedes Produkt der aktuelle Patchstand angezeigt wird.

VulnerabilityScan

mbsacli.exe -n Updates -o VScanNew -nvc

Das Ergebnis dieses Scans wird als Liste auf dem Bildschirm ausgegeben. Zusätzlich erstelle MBSACLI in diesem Beispiel eine Datei VSCANNEW.XML im Verzeichnis C:\Dokumente und Einstellungen\%Username%\SecurityScans angelegt.

Angeblich soll MBSA auch Einträge in das Eventlog schreiben können, z.B.

Source Microsoft Baseline Security Analyzer MP
ID: 22760
Description SecurityPatch/Servicepack not installed

Das konnte ich selbst aber noch nicht entdecken. Aber von der Erkennung zur Installation der Patches bis zur Installation ist noch ein weiter Weg.

MBSA 1.21 in unternehmen

Mit den ganzen Skripten und Kommandozeilen und der Möglichkeit, dass MBSA auch über das Netzwerk Systeme abscannt oder jeder PC sich selbst bei jedem Start (Gruppenrichtlinie, Taskplaner) überprüft, kann natürlich ganz ohne kostenpflichtige Software eine Systemanalyse durchgeführt werden. Interessanter Weise gibt es dazu sogar von Microsoft direkt entsprechende fertige Skripte

Sie müssen damit nur noch alle Systeme mit MBSA abscannen. Das können Sie aus der Ferne über das LAN machen, so Sie ausreichend Rechte und eine entsprechende Verbindung haben und natürlich das System angeschaltet und erreichbar (Firewall ?) ist. Und dann kann es schon losgehen. für ein Netzwerk sind folgende Beispielskripte interessant:

  • Batchscan
    Damit können Sie eine ganze Liste von Systemen (IP-Adresse oder Name) aus der Ferne abscannen lassen. Die Ergebnisse des Scans landen dann in ihrem Profil unter C:\Dokumente und Einstellungen\%Username%\SecurityScans.
  • rollup.js
    Dieses Script nimmt dann die gesammelten Securityreports und erstellt eine konsolidierte Ansicht. Allein über Aufrufe wird definiert, welche Checks,  Security Updates etc. angezeigt werden sollen.
    Ein Check auf MSADC startet man mit: cscript.exe /nologo rollup.js -c 415 >GroupIDRollupDemo.xml

Leider kenne ich noch keinen Weg, einfach ALLE Informationen auf einen Schlag auszugeben.

Einen ähnlichen Report können Sie auch für die verschiedenen Security Bulletins erstellen lassen.

Sie können sehr gut sehen, welche Server noch nicht den erforderlichen Patch haben. MBSA ermitteln nur die Patches als fehlend and, die wirklich auch erforderlich sind.

Natürlich sollte ihr Netzwerk sehr viel besser und sicherer sein. Da Sie nun wissen, dass es schon fertige Tools gibt, sollten Sie als erfahrener Administrator mit etwas Skriptkenntnis aussagekräftige Reports erstellen können. Sie werden sicher sowohl die Pfade als auch die Aufrufmethoden anpassen wollen. Interessant wird es, wenn z.B. ein Domain Controller jeden Tag die wichtigen Systeme abprüft und z.B. die PCs sich selbst prüfen und den Report an eine zentrale Stelle ablegen. MBSACLI kann aber nicht über einen UNC-Pfad gestartet werden. Sie müssen dann das Programm auf dem PC installieren.

MBSA 1.21 im LAN

MBSA ist ein geniales Tool, um viele Server im LAN zu analysieren. MBSA wird z.B. auch von SMS und MOM2005 verwendet, um fehlende Patches etc. festzustellen. für den einfachen Einsatz in kleinen und mittleren Netzwerken wären aber einige Zusatzprogramme und Skripte sehr hilfreich. für den Administrator gibt es da erst mal zwei verschiedene Optionen:

  • MBSA über LAN
    Sie können als Administrator mit ausreichend Berechtigungen auf den Zielsystemen über das LAN mit MBSA mehrere Systeme aus der Ferne überprüfen. Dazu muss auf dem System niemand angemeldet sein. Es reicht aus, wenn das Zielsystem eingeschaltet und am Netzwerk ist und natürlich keine Firewall die Verbindung über den Serverdienst verhindert.
    Das größte Problem ist dabei sicher, dass der PC eingeschaltet sein muss. Das ist für Server kein Problem aber taugt wenig zur Überwachung von Arbeitsstationen.
  • MBSA lokal starten
    Daher können Sie MBSA auch auf dem PC selbst starten. Allerdings muss der Aufruf ebenfalls geplant werden. Hierzu könnten Sie mit Gruppenrichtlinien z.B. beim Hochfahren von dem System MBSA starten lassen. Damit wird jeder PC in der Domäne mindestens bei jedem Start geprüft. Allerdings hilft dies nicht, wenn der PC über RAS arbeitet, da dann die Skripte in Gruppenrichtlinien nicht ausgeführt werden oder der PC eben eingeschaltet bleibt oder nur in den Schlaf oder Ruhemodus versetzt wird.

Also wäre der beste Weg, wenn MBSA auf allen Systemen einfach regelmäßig ausgeführt werden würde. Das ist zwar eher die Aufgabe für eine Softwareinventarisierung aber auch der Windows Zeitplandienst kann dazu missbraucht werden. Sie können z.B. MBSA auf alle PCs über eine Gruppenrichtlinie verteilen, die dann auch gleich einen täglichen Job im Taskplaner einstellt. Dieser Job sollte dann einfach ein Skript starten, welches MBSA bei Bedarf aktualisiert, ausführt und am Ende das Ergebnis an eine zentrale Stelle hoch lädt. Das kann wiederum über einen einfachen "COPY", per SMTP mittels Blat, per FTP oder sonst wie erfolgen. Das könnte so aussehen:

REM Installation von MBSA auf dem PC per GPO
if exist "c:\Programme\Microsoft Baseline Security Analyzer\mbsacli.exe" goto next1
echo %DATE% %TIME% Installing MBSA on %Computername% START >>c:\mbsa.log
start /wait msiexec /i c:\download location\mbsasetup.msi /q
echo %DATE% %TIME% Installing MBSA on %Computername% ENDE >>c:\mbsa.log
:next1
echo %DATE% %TIME% Kopiere mssecure.cab START >>c:\mbsa.log
copy \\servername\quelle\mssecure.cab "c:\Programme\Microsoft Baseline Security Analyzer\"
echo %DATE% %TIME% Kopiere mssecure.cab ENDE >>c:\mbsa.log

echo %DATE% %TIME% Scanne System START >>c:\mbsa.log
start /wait mbsacli /f c:\mbsa-%computername%.xml -nvc
REM leider kann man MBSACLI 1.2.1 nur im HF-Mode den Downloadversuch der MSSECURE.CAB abschalten
echo %DATE% %TIME% Scanne System ENDE >>c:\mbsa.log

echo %DATE% %TIME% upload XML-Ergebnis START >>c:\mbsa.log
COPY c:\mbsa-%computername%.xml \\servername\freigabe
echo %DATE% %TIME% upload XML-Ergebnis ENDE >>c:\mbsa.log
XML-Datei wird auf Server kopiert

Als Administrator haben Sie dann in einem zentralen Verzeichnis die Liste der letzten Scans der Systeme. Natürlich können Sie die MSSECURE.CAB auch von jedem Client aus dem Internet über einen Proxyserver laden und die Diagnosemeldungen in das Eventlog schreiben lassen. Perfekt wird das Verfahren, wenn die Gruppenrichtlinie nicht nur selbst die Analyse startet, sondern bei Bedarf einen geplanten Task einträgt und sich damit immer wieder startet.

Nach einiger Zeit finden sich von jedem frisch gestarteten Client die Ergebnisse an zentraler Stelle ein. Anhand des Dateidatums wissen sie auch, wann der Scan stattgefunden hat. Wenn sich "Veränderungen " erkennen wollen, dann sollten Sie den Namen der Datei ebenfalls mit einem Datum versehen. Über das alter können Sie z.B: einfach erkennen, welche Systeme schon lange keine Prüfung mehr durchgeführt haben.

Dan fehlt nur noch das Programm, welches eben diese Scans konsolidiert und entsprechend grafisch aufbereitet. Leider hatte ich bislang noch nicht die Zeit dazu, daher erst einmal die Ideen:

  • MBSA Logkonsolidierung
    Gibt es schon ein VBScript, welches diese XML-Dateien einfach einliest und z.B.: in Excel schön tabellarisch aufführt ?
  • MBSA-Patchfolger
    Wenn MBSA schon die fehlenden Patches findet, dann könnte ein Script diese ja gleich downloaden oder von einer internen Quelle installieren. Per WMI könnte das funktionieren.

Auf http://sourceforge.net/projects/mbsafu/ gibt es sogar einen Ansatz, mit MBSA die Patches zu erkennen und zu installieren. Leider habe ich damit noch keine Erfahrungen machen können. Welche Lösungen können Sie rund um MBSA ?

Dieses Verfahren können Sie natürlich noch ausweiten, indem Sie z.B.: mit VBScript die Hardware und Software auslesen. Dazu können Sie auch MSINFO.EXE zweckentfremden. Nur eines kann diese Lösung nicht: Da es keinen Agenten gibt, können Sie einen eingeschalteten PC nicht einfach anstoßen, jetzt etwas zu tun. Durch die eines Agenten oder eine Lösung mit RCMD und anderen Tools wäre dies möglich.

Weitere Links