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 URLScan 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:

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:

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:

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:

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 kennen 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

Keywords:MBSA