IISLOCKDown und URLSCAN

Wer bis Windows 2000 einen Internet Information Server installiert hat, hat sehr viele Dienste als Standard aktiviert, die ein Server in der Regel nicht braucht, aber die Sicherheit reduzieren. Dazu zählen nicht nur CGI und ASP-Erweiterungen, sondern auch einige zusätzliche Verzeichnisse, die Code enthalten und jeder Windows 2000 Besitzer auf Schwachstellen analysieren kann. Und diese Schwachstellen gibt es und werden auch ausgenutzt, wenn der Administrator nicht das System patched und konfiguriert. So haben Sie bis zum IIS5 folgende Verzeichnisse, die für Exchange nicht erforderlich sind.

  • IISADMIN
    Hierüber können Sie ihren Webserver per Browser verwalten. Ich denke nicht, dass Sie diese Funktion aus dem Internet nutzen wollen
  • IISHELP
    Die Online Hilfe ist eigentlich nichts besonderes. Aber warum sollten gerade Sie diese Information zum Download im Internet anbieten. Als Entwickler oder Administrator haben Sie diese sicher auch auf einem internen Webserver.
  • MSADC
    Der Datenbank Connector ist immer wieder ein Einfallstor für Angreifer, da der IIS hier anhängig von Daten in URLs bestimmte Aktionen durchführt. Nicht immer werden von den DLLs die URLs korrekt analysiert, so dass hierüber eigene Programme eingeschleust werden können
  • PRINTERS
    So schön es ist, die Drucker über eine Weboberfläche anzuzeigen und sogar den Treiber zu installieren. Ich denke nicht, dass sie einem anonymen Anwender im Internet genau dies erlauben möchten. Im schlimmsten Falle könnte er sogar per HTTP drucken.
  • SCRIPTS
    Die guten alten CGI-Scripte waren die ersten Wege, ein wenig dynamische Inhalte bereit zu stellen und Formulare zu verarbeiten. Heute in Zeiten von ASP und .NET wird die CGI-Schnittstelle über das Verzeichnis SCRIPTS fast nur noch von Viren und Würmern genutzt.

Zudem sind einige Erweiterungen aktiv, die ebenfalls für Exchange nicht erforderlich sind. Erst seit Windows 2003 wird der IIS6 nicht mehr automatisch mit installiert, und selbst wenn er installiert wird, dann gibt es nur eine statische Webseite ohne umfangreiche Zusatzfunktionen. Diese müssen alle erst explizit frei geschaltet werden.

IISLOCKD

Ehe Sie nun aber panisch versuchen, ihren IIS zu sichern, sollten Sie das Programm IISLOCKDOWN von Microsoft herunter laden und aufrufen. IISLOCKD fragt sie nach dem Start, welch ein Typ Webserver sie betreiben. Auf einer umfangreichen Auswahlliste gibt es neben den Einstellungen "Kein Webserver" und "Statische Server" auch "Exchange 2000" Server. Sie machen eigentlich nichts falsch, diesen Typ auszuwählen und IISLOCKDOWN den Rest machen zu lassen.

Nach dem Durchlauf sollten Sie alles testen. Wenn etwas nicht wie erwartet funktioniert, dann rufen Sie IISLOCKDOWN einfach noch einmal auf und alle Änderungen des vorherigen Laufs werden rückgängig gemacht. Sie können dann IISLOCKDOWN erneut mit anderen Einstellungen aufrufen.

Sie können z.B. wieder Exchange 2000 auswählen, aber mit der Checkbox am unteren Rand sich die einzelnen Einstellungen anzeigen lassen. Sie sehen dann genau, was IISLOCKDOWN entfernt und umkonfiguriert. In den Fenstern können Sie auch abweichend von der gewählten Vorlage die Einstellungen anpassen. Sie sollten aber immer wissen was sie tun und nicht benötigen.

Exchange benötigt z.B. nur ASP-Unterstützung. Alle anderen dynamischen Dinge werden per Default entfernt:

Ein Webserver sollte nur die Dienste betreiben, die er bereit stellt. Alle zusätzlichen Dienste benötigen nicht nur Speicher und Festplattenplatz sondern könnten auch ein Problem sein, das morgen erst erkannt wird. Speziell wenn Sie ihren Exchange Server über das Internet erreichbar machen.

Aus diesem Grund werden auch die beim IIS4/IIS5 per Default eingerichteten Verzeichnisse entfernt und die Berechtigungen auf einige kritische Dateien so geändert, das anonyme Anwender diese nicht mehr aufrufen können:

Nur bei der Installation von URLSCAN auf der folgenden Seiten sollten Sie vorsichtig sein und entsprechende Vorbereitungen getroffen haben. URLSCAN ist keine "Plug and Play"-Komponente, sondern erfordert manuelle Einrichtungen über eine INI-Datei.

URLSCAN

Allein die sichere Konfiguration des IIS und die Entfernung von virtuellen Verzeichnissen ist nicht ausreichend. Wenn Sie eine Firewall haben, dann können sie die HTTP-Befehle vor dem Eintreffen am IIS einer Plausibilitätskontrolle unterziehen.

Genau das macht auch URLSCAN. URLSCAN ist eine DLL, die sich als ISAPI-Filter in den IIS einbindet und alle Anfragen an den Server überprüfen kann. URLSCAN wird über eine INI-Datei gesteuert, in der die erlaubten und verbotenen Befehle konfiguriert werden können. So können Sie hier z.B. die URL-Pfade vorgeben, die überhaupt an den IIS durchgereicht werden dürfen. für die Einrichtung mit Exchange reichen hier folgende Pfade:

  • exchange
    Hierüber erfolgt der Zugriff auf das Postfach
  • exchweb
    Hier liegen Icons und andere gemeinsam genutzte Daten
  • public
    Hierüber erfolgt der Zugriff auf öffentliche Ordner
  • oma
    Über diesen Pfad können Sie ihre Mailbox per WAP lesen. Siehe auch Exchange 2000 - Mobile Information Server und Exchange 2003 - Outlook Mobile Access.
  • Microsoft Active-Server-Sync
    Über diese URL replizieren sich PocketPCs. Siehe ActiveSync Praxis
  • ExAdmin
    Dies ist nur für die Verwaltung des Servers erforderlich. Wenn Sie für internen und externen Zugriff zwei virtuelle Webserver betreiben, können Sie auf dem externen Webserver diesen Pfad ausschließen.

Wenn Sie in URLSCAN nur diese Pfade zulassen, dann kann ein Virus, eine fehlerhafte Installation oder ein Fehler durch den Admin keinen direkten Schaden anrichten, da Anfragen auf andere virtuelle Verzeichnisse von URLSCAN direkt geblockt werden.

URLSCAN kann noch weiter arbeiten und auch Pfade und Erweiterungen kontrollieren. So könnten Sie verhindern, dass in einer URL z.B.: die Zeichen "..\" vorkommen und damit ein Angreifer den Pfad nach oben wechselt. Ebenso könnten Sie URLSCAN anweisen, dass am Ende einer URL kein ".EXE" steht. Damit könnte Sie verhindern, dass der IIS Programme auf dem Server ausführt. CodeRed nutzt z.B. eine Schwachstelle, um die CMD.EXE als "ROOT.EXE" in das Verzeichnis Scripts zu kopieren und dann aufzurufen.

IISLOCKD und IIS6

Windows 2003 benötigt das Programm IISLOCKD nicht mehr. Der IIS6 ist nach der Installation per default viel stärker zugestopft als der IIS4 oder IIS5. Hier gibt es keine Notwendigkeit, bestimmte Dienste und Verzeichnisse zu entfernen, da Sie von Hause aus nicht da sind. Sie als Administrator müssten die Schwachpunkte des IIS4 und IIS5 erst manuell aktivieren. Wenn Sie aber das tun, dann haben Sie sicher einen Grund dafür und möchten gerade nicht, dass ein Programm wie IISLOCKD ihre Einstellungen wieder rückgängig macht.

Trotzdem gibt es auch für den IIS6 einen IISLOCKD unter http://www.Microsoft.com/windows/reskits/webresources.

Weitere Links