Sicherheit für die Internetinformationsdienste (IIS)
Vorwort
IIS 6.0 (Internet Information Serices, Internetinformationsdienste) ist ein
vollständiger Webserver, der in allen Ver-
sionen von Windows Server 2003 vorhanden ist. IIS wurde für Intranets,
Extranets, und das Internet entwickelt
und ermöglicht Organisationen beliebiger Größe eine schnelle
und einfache Bereitstellung leistungsfähiger Web-
sites, Anwendungen und Webdienste. Außerdem bietet IIS 6.0 eine Hochleistungsplattform
für Anwendungen,
die mithilfe des Microsoft .NET Framwework erstellt wurden.
Änderungen seit Windows
2000 Server
Frühe IIS-Versionen waren beliebte Angriffsziele, und Sicherheitslücken
in IIS waren Ursache dafür, dass viele
Windows Computer geknackt werden konnten. Um die Angriffsfälche der Webinfrastruktur
zu verringern, wird IIS
6.0 unter Windows Server 2003 nicht standardmäßig installiert. Sie
müssen IIS 6.0 unter allen Mitgliedern der
Windows Server 2003 Familie mit Ausnahme von Windows Server 2003 WebEdition
explizit auswählen und
installieren. Das bedeutet, dass Sie IIS jezt nach der Windows-Installation
nciht mehr deinstallieren müssen.
IIS 6.0 wird zudem deaktiviert, wenn ein Server auf Windows Server 2003 aktualisiert
wird, sofern nicht das
IIS 5.0 Lockdown Tool vor der Aktualisierung installiert oder ein Registrierungsschlüssel
konfiguriert wurde.
Wird IIS nicht verwendet, dann sollten Sie es mithilfe von Gruppenrichtlinieneinstellungen
explitit deaktivieren.
IIS wird bei der Installation in einem gesperrten Zustand
konfiguriert. Nach der Installation akzeptiert IIS 6.0
nur Anforderungen für statische Dateien, bis es für die Bereitstellung
dynamischer Inhalte konfiguriert wird.
Alle Zeitlimits und Einstellungen haben extrem sicherheitsbezogene Werte. Programmierfunktionalitäten,
wie
sie etwa von den ISAPI-Erweiterungen (Internet Server API) oder Common Gateway
Interfaces (CGI) vermitt-
elt werden, müssen durch einen IIS 6.0 Administrator manuell aktiviert
werden. ISAPI und CGI erweitern die
Funktionalität Ihrer Webseiten und heißen deswegen Webdiensteerweiterungen.
Damit beispielsweise die
Active Server Pages (ASP) mit dieser Version von IIS 6.0 laufen, muss die Datei
Asp.dll explizit als Web-
diensteerweiterung aktiviert werden. Auch die Microsoft Front Page Servererweiterungen
und Microsoft
ASP.NET müssen aktiviert werden, bevor ihre Funktionalität zur Verfügung
steht. Mithilfe der Webdienste-
erweiterungen können Websiteadministratoren IIS 6.0 Funktionen basierend
auf den individuellen Bedürf-
nissen der Organisation gezielt ein- und ausschalten. Diese Funktionalität
wird auf dem gesamten Server
global erzwungen. IIS 6.0 bietet Programmier- und Befehlszeilenschnittstellen
sowie eine grafische Ober-
fläche zur Aktivierung der Webdiensteerweiterungen.
Standardmäßig werden IIS 6.0 Arbeitsprozesse, die
Webdiensteerweiterungen ausführen, unter einem
Netzwerkdienstekonto ausgeführt. Das Netzwerkdienstkonto ist ein neus vordefiniertes
Konto mit genau
sieben Berechtigungen:
Anpassen von Speicherkontingenten für einen Prozess
Generieren
von Sicherheitsüberwachungen
Anmelden
als Dienst
Ersetzen
eines Tokens auf Prozessebene
Annehmen
der Clientidentität nach Authentifizierung
Lokal anmelden
zulassen
Auf diesen
Computer vom Netzwerk aus zugreifen
Die Ausführung über ein Konto mit wenigen Rechten
ist eines der wichtigsten Sicherheitsprinzipien.
Die Möglichkeit, eine Sicherheitslücke auszunutzen, wird effizient
verringert, wenn der Arbeitsprozess
nur über sehr wenige Rechte für das zugrundeliegende System verfügt.
Administratoren können den
Anwendungspool bei Bedarf über ein beliebiges Konto (z.B. Netzwerkdienst,
Lokales System, Lokal-
er Dienst oder ein speziell konfiguriertes Konto) ausführen lassen.
Konfigurieren der Anwendungsserverrolle
Sie können IIS Installieren, indem Sie ds Fenster Windows-Komponenten
hinzufügen/entfernen öffnen
und die Komponente Anwendungsserver installieren.
Eine weitere Möglichkeit IIS und dessen Sich-
erheitseinstellungen zu installieren und konfigurieren, besteht in der Installation
der Rolle Anwendungs-
server über das Fenster Serververwaltung.
Der Anwendungsserver ist eine neue Serverrolle unter
Windows Server 2003, die IIS 6.0, das .NET Framework, ASP.NET, ASP, UDDI-Dienste
(Universal
Description Discovery and Integration), COM+ und Microsoft Message Queuing (MSMQ)
zusammen-
fasst. Gehen Sie wie folgt vor, um die Rolle Anwendungsserver zu installieren:
IIS Unterkomponenten
Wenn Sie zur Installation den Weg über Windows-Komponenten hinzufügen/entfernen
wählen, können
Sie sehr genau steuern, welche IIS-Unterkomponenten installiert werden. Zu wissen,
welche dieser
Komponenten benötigt werden, damit Ihre Anwendung läuft, ist unumgänglich.
Ohne die notwendigen
Komponenten werden Teile Ihrer Webanwendung schlicht und einfach nicht laufen.
Die Installation
unnötiger Komponenten hingegen kann ein vermeidbares Sicherheitsrisiko
für Ihren Server darstellen.
Die folgende Tabelle beschreibt die verfügbaren IIS Unterkomponenten und
listet auf, welche Kompo-
nenten beim Hinzufügen der Rolle Anwendungsserver automatisch installiert
werden.
Unterkomponente | Beschreibung | Standardeinstellung |
BITS-Servererweiterungen (Background Intelligent Transfer Service) | Eine im Hintergrund agierende Dateiübertragungsmethode, die von Windows Update und der Automatischen Aktualisierung verwendet wird. die Komponente wird benötigt, wenn Windows Update oder automatische Aktualisierungen zum selbsttätigen Anwenden von Service Packs und Hotfixes auf einen IIS-Server verwendet werden. | Deaktiviert |
Gemeinsame Dateien | Dateien, die von IIS benötigt werden. Diese müssen auf IIS-Servern immer aktiviert sein. | Aktiviert |
FTP-Dienst (File Transfer Protocol) | Ermöglicht IIS-Servern die Bereitstellung von FTP_Diensten. Dieser Dienst wird für dezitierte IIS-Server nicht benötigt. | Deaktiviert |
FrontPage-Server- erweiterungen 2002 | Ermöglicht FrontPage-Support zur Administration und Veröffentlichung von Websites. Deaktivieren Sie diese Komponente auf dedizierten IIS-Servern, wenn keine Website vorhanden ist, die die FrontPage-Erweiterungen verwendet. | Deaktiviert |
Internetinformatios- dienste Manager |
Administrationsoberfläche für IIS | Aktiviert |
Internetdrucken | Ermöglicht eine webbasierte Druckerverwaltung und die gemeinsame Nutzung von Druckern über HTTP. Wird auf dedizierten IIS-Servern nicht benötigt. | Deaktiviert |
NNTP-Dienst | Ermöglicht Verteilung, Anforderung, Auffinden und Versand von Usenet-Newsartikeln im Internet. Wird auf dedizierten IIS-Servern nciht benötigt. | Deaktiviert |
SMTP-Dienst | Unterstützt die E-Mail Übertragung. Wird auf dedizierten IIS-Servern nicht benötigt. | Deaktiviert |
WWW-Dienst | Stellt Webdienste sowie statische und dynamische Inhalte für Clients bereit. Diese Komponente wird auf dedizierten IIS-Servern benötigt. | Aktiviert |
Einschränkungen für IP-Adressen
und Domänennamen
IIS kann eingehende Anforderungen basierend auf der Quell-IP-Adresse, dem Netzwerk,
aus dem die An-
forderung stammt, oder dem Domänennamen der Quell-IP-Adresse zulassen oder
verweigern. Obwohl
diese Methoden zur Erhöhung der Webseitensicherheit beitragen können,
kann man sie wohl kaum als un-
angreifbar bezeichnen. Quell-IP-Adressen können gefälscht werden,
und Domänennamen-Lookups sind im-
mer nur so sicher wie der DNS-Server, der die Reverse-Lookupdomäne zur
Verfügung stellt. Ungeachtet
dessen können sie aber als Teil einer stufenbasierten Sicherheitsstrategie
nützlich sein, wenn sie in
Verbindung mit anderen Sicherheitsmethoden verwendet werden.
Gehen Sie wie folgt vor, um die Einschränkungen für IP-Adressen und
Domänennamen für IIS zu konfigu-
rieren:
Wenn Sie den Zugriff nach dem Domänennamen beschränken, führ
IIS einen Reverse-Lookup für jede neue
Quell-IP-Adresse durch, die eine Anforderung sendet. Auf diese weise wird die
Reaktionszeit der ersten
aufgerufenen Webseite verlangsamt, worüber Ihr Webmaster wohl nicht besonders
glücklich sein dürfte.
Ferner können, wenn Ihre Website gut besucht ist, all diese DNS-Anforderungen
Ihren DNS-Server erhe-
blich überlasten.
Überlegungen zur Protokollierung
Standarmäßig protokolliert IIS Informationen zu allen eingehenden
Anforderungen in einer Protokoll-
datei im Textformat, die sich im Verzeichnis %SystemRoot%\System32\LogFiles\W3SVCx
befindet.
diese Protokolldateien sind vollständig von den Protokollen getrennt, die
sich mit der Ereignisanzeige be-
trachten lassen. Jede Website erstellt eine separate Protokolldatei, di Informationen
wie etwa die Quell-
Ip-Adresse, die Anzahl der gesendeten und empfangenen Bytes, den Benutzernamen
(sofern dieser vom
Browser übermittelt wurde) und den Typ des Browsers enthält, der für
die Anforderung verwendet wurde.
Hier ein Beispiel aus einen einzelnen Protokolldateieintrag, der erstellt wurde,
als der Benutzer "Admini-
strator" die Seite /autoupdate/administration/default.asp
angefordert hat.
2005-08-14 13:25:33 127.0.0.1 GET \autoupdate\administration\default.asp
-
80 LABDOMAIN1\Administrator
127.0.0.1 Mozilla /
4.0+(compatible;+MSIE+6.0;+Windows+NT+5.2;+NET+CLR+1.1.4332= 200 0 0
Die Informationen in dieser Protokolldatei sind in erster Linie für eine
nicht sicherheitsbezogene Ana-
lyse des Datenverkehrs auf der Website gedacht. So können etwa Mitarbeiter
der Marketingabteilung
anhand dieser Daten bestimmen, welche Partnerwebsites die größte
Anzahl von Benutzern auf die
Site geleitet hat. Sie sollten allerdings mit IIS-Protokolldateien vertraut
sein, denn Websites werden
von Angreifern häufig als Ansatzpunkt verwendet, und die Analyse von IIS-Protokolldateien
kann offen-
baren, dass Sie von einem böswilligen Benutzer angegriffen wurden und welche
Methode dieser
Angreifer hierzu verwendet hat. Zudem lassen sich der Datei häufig auch
Informaitonen zur Identität
des Angreifers entnehmen.
Praxistipp:
Wenn Sie eine Website öffentlich zugänglich machen, werden Sie früher
oder später angegriffen
werden. Genauer gesagt, werden Sie sehr bald angegriffen werden, und das Dutzende
Male täglich.
Es gibt Tausende von Systemen, die mit Würmern infiziert sind, welche automatisierte
Angriffe
gegen zufällig ausgewählte Webserver durchführen, und viele dieser
Würmen suchen gezielt nach
ölteren, nicht aktualisierten IIS-Versionen. Aufgrund dieser Tatsache sollten
Sie Ihre IIS-Protokolle
regelmäßig durchsehen. Wenn Sie über keine Software verfügen,
die speziell für die Analyse von
IIS-Protokollen entwickelt wurde und Sie über Angriffe informiert, können
Sie die Daten auch manu-
ell durchsuchen und nach ungewähnlichen Mustern suchen. Achten Sie insbesondere
auf Anforder-
ungen von Dateien, die nicht existieren, und Anforderungen, die sich regelmäßig
wiederholen.
Wenn Ihnen auffällt, dass jemand mehrmals täglich bei Ihnen auftaucht
und in Ihre Wohnung ge-
langen will, werdne Sie wahrscheinlich die Polizei informieren. Im Internet
jedoch finden viel zu
viele Angriffe statt, als dass man jedes Mal die Behörden informieren könnte.
Bleiben Sie ruhig,
wenn Sie tatsächlich auf Spuren eines webbasierten Angriffs stoßen.
Untersuchen Sie zunächst
die Anforderungen von der IP-Adresse des betreffenden Benutzers, um festzustellen,
ob der An-
griff von einem Wurm ausgeführt wurde. Ist dies der Fall, dann vergewissern
Sie sich einfach, dass
Ihr System nicht für Angriffe durch diesen Wurm anfällig ist, und
lassen Sie es dabei bewenden.
Es ist utopisch, jeden wurmverseuchten Host im Internet zur Strecke bringen
zu wollen.
Wenn Sie den Eindruck haben, dass ein Angriff von jemanden ausging, der gezielt
Ihre Computer-
systeme angreifen wollte - z.B. ein ehemaliger Mitarbeiter oder ein Konkurrent
- dann sollten Sie
den Angriff nachverfolgen. Wenn Sie der Ansicht sind, dass der Angreifer bestraft
werden müsste,
sollten Sie den Vorfall zur Anzeige bringen. Hinweise zur Vorgehensweise erhalten
Sie etwa
auf der Seite "How to Report Internet-Related-Crime" des amerikanischen
Justizministeriums, zu
finden unter http://www.cybercrime.gov/reporting.htm.
Ist der Angriff nicht so schwerwiegend, dass eine Verfolgung durch die Behörden
gerechtfertig wäre,
Sie aber den Internetdiensteanbieter (Internet Service Provider, ISP) des Benutzers
in Kenntnis
setzen wollen, dann suchen Sie die IP-Adresse des Benutzers aus der IIS-Protokolldatei
heraus
und geben Sie sie auf der Seite http://whois.arin.net
ein. Auf dieser Seite der amerikanischen
Regierungsbehörde ARIN (American Registry for Internet Numbers) erhalten
Sie Informationen
zum ISP oder zu der Organisation, die den IP-Adressbereich besitzt. Ferner finden
Sie hier auch
eine Mailadresse und eine Telefonnummer, um den Missbrauch zu melden. Ob und
wie der ISP
auf Ihre Beschwerde reagiert, ist allein seine Angelegenheit. Er kann dem Benutzer
eine Warnung
zukommen lassen, seinen Zugang komplett sperren, oder auch einfach nichts tun.
Die IIS-Protokolldateien können auch direkt an eine Datenbank gesendet
werden. Dies ist nützlich,
wenn Sie mehrere Webserver verwalten. Außerdem erhöhen Sie so die
Sicherheit der Protokollda-
teien selbst. Wenn ein Angreifer Ihren Webserver knackt, muss er sich in diesem
Fall Zugang zu
einem zweiten System - dem Datenbankserver - verschaffen, um die Spuren seines
Angriffs aus der
Protokolldatei zu tilgen. Außerdem können Protokolldateien auch mithilfe
eines UNC-Pfades
(Universal Naming Convention) über das Netzwerk auf eine Remotefreigabe
geschrieben werden.
Die Remoteprotokollierung erlaubt Administratoren die Konfiguration einer zentralisierten
Protokoll-
ierung und Sicherung der Protokolldateien. Allerdings kann das Schreiben der
Protokolldatei über
das Netzwerk sich negativ auf die Leistungsfähigkeit Ihres Servers auswirken.
Hinweis:
IIS 6.0 legt den Ordner %SystemRoot%\System32\LogFiles\Httperr an, in dem Protokolldateien
mit
Informationen zu Anwendungsfehlern abgelegt werden. Allerdings ist es unwahrscheinlich,
dass diese
zur Identifizierung sicherheitsrelevanter Vorfälle verwendet werden können.
SSL-Verschlüsselung
Obwohl IPsec für die Verschlüsselung praktisch aller Formen der Netzwerkkommunikation
konfiguriert
werden kann, unterstütz IIS auch das HTTPS Protokoll (Hypertext Transfer
Protocol Secure), eine Er-
weiterung von HTTP, die Verschlüsselung mithilfe eines SSL-Zertifikates
(Secure Sockets LAyer) bietet.
Wenn Sie Ihre eigene Zertifizierungsstelle bereitstellen, können Sie auch
Ihr eigenes SSL-Zertifikat
erstellen. Handelt es sich bei Ihrer Zertifizierungsstelle jedoch nciht um eine
öffentliche EInrichtun, der
auch die Webbrowser Ihrer Besucher vertrauen, dann erhalten die Besucher eine
Warnmeldung, die
besagt, dass Ihr Zertifikat nicht von einer vertrauenswürdigen Stelle stammt.
Um die Anzeige dieser
Meldung zu vermeiden, sollten Sie ein SSL-Zertifikat bei einer Zertifizierungsstelle
erwerben, der die
verbreiteten Webbrowser standardmäßig vertrauen. Beispiele dazu wären
"Thawte" oder "Verisign".
Natürlich können Sie Ihre interne Zertifizierungstelle auch selbst
als "Vertrauenswürdig" einstufen las-
sen von einer Registrierungsstelle in Ihrer Nähe, doch die Kosten dafür
stehen in keiner Relation zum
Nutzen.
Gehen Sie wie folgt vor, um eine IIS-Website mit einem SSL-Zertifikat zu konfigurieren:
Websiteberechtigungen
Während Dateiberechtigungen verwendet werden, um festzulegen, welche Benutzer
auf bestimmte
Dateien zugreifen können, setzt IIS Websiteberechtigungen ein, um die HTTP
Aktionen zu bestim-
men, die auf einer Website durchgeführt werden können. Dies betrifft
etwa den Zugriff auf Scriptquell-
texte oder das Durchsuchen von Verzeichnissen. Anders als Dateiberechtigungen
können Website-
berechtigungen zwar für Websites und Verzeichnisse definiert, aber nicht
auf einzelne Dateien ange-
wendet werden. Außerdem gelten Websiteberechtigungen für alle Benutzer,
die auf die Site zugreifen.
Websiteberechtigungen legen Sie mit dem Internetinformationsdienste-Manager
fest.
Die Optionen sind die folgenen:
Lesen
Benutzer können Inhalte und Eigenschaften von Verzeichnissen oder Dateien
anzeigen. Diese
Berechtigung ist standardmäßig ausgewählt.
Schreiben
Benutzer können
Inhalte und eigenschaften von Verzeichnissen oder Dateien ändern.
Skriptzugriff
Benutzer können
auf Quelltextdateien zugreifen. ist "Lesen" ebenfalls aktiviert, dann
können Benutzer
den Quellcode
zudem lesen, bei aktivierter Berechtigung "Schreiben" auch ändern.
Verzeichnis
durchsuchen
Wenn ein Benutzer
ein Verzeichnis anfordert und eine Standarddatei nicht existiert, erzeugt IIS
eine
Liste mit den
Verzeichnisinhalten, die im Browser angezeigt werden kann.
Besuche
protokollieren
Für jeden
Besuch der Website wird ein Protokolleintrag erstellt.
Ressource
indizieren
Ermöglicht
dem Indexdienst die Indizierung von Ressourcen.
Ausführberechtigung
Die folgenden
Optionen bestimmen die Ausführbarkeit von Scipts für Benutzer:
Keine, Erlaubt keine Ausführung von Scripts oder ausführbaren Dateien
auf dem Server
Nur Scripts, Erlaubt lediglich die Ausführung von Scripts auf dem Server.
Scripts und ausführbare Dateien, Erlaubt die Ausführung von Scripts
und ausführbaren Dateien
auf dem Server.
Schützen von IIS mit Firewalls
Webserver sind beliebte Ziele von Angreifern. Aus diesem Grund ist es eine gängige
Praxis, eine Firewall
zwischen dem Webserver und den Endbenutzern zu plazieren. Wird eine einfache
Firewall mit Portfilter
(z.B. die Internetverbindungsfirewall) verwendet, dann müssen Sie Datenverkehr
zulassen, der über die
Portnummern eingeht, die Sie im IIS-Manager für die einzelnen Websites
festgelegt haben. Standard-
mäßig sollten Sie den TCP Anschluss 80 für HTTP-Kommunikationsvorgänge
und den TCP-Anschluss
443 für verschlüsselte HTTPS Kommunikation zulassen.
Anwendungsfirewalls bieten mehr Schutz für IIS als einfache Firewalls
mit Paketfiltern. ISA und andere
Anwendungsfirewalls untersuchen eingehende Anforderungen an Ihren Webserver
wie auch ausgehende
Antworten an diese Webclients. Sie bestimmen anhand komplexer Kriterien, ob
eine Anforderung zuge-
lassen oder verweigert werden soll. Eine Anwendungsfirewall könnte beispielsweise
so konfiguriert wer-
den, dass sie Anforderungen von vertraulichen Seiten verwirft, die aus dem Internet
stammen. IIS kann
ähnlich konfiguriert werden, aber die Spezifizierung der Regeln sowohl
innerhalb von IIS als auch an der
Firewall bietet eine zweistufige Sicherheitskombination, die auch aktiv bleibt,
wenn die Sicherheitsein-
stellungen innerhalb von IIS geändert werden.
Bevor Sie jedoch Softwarefirewalls wie ISA, Internetverbindungsfirewall, Windows-Firewall
oder ähnlich-
em für Ihre Server verwenden, so sollten Sie über die Anschaffung
einer Hardwarebasierten Firewall
mindestens Nachdenken. Eine Hardwarefirewall verringert die Last auf Ihren Servern
und die Attacken
eines Angreifers können erst gar nicht auf Ihre System überspringen.
Zudem können Sie mit Hardware-
firewalls mehr Effizienz erreichen. Eine Hardwarefirewall wie zB. Cisco PIX
oder Cisco ASA bieten weitaus
mehr Funktionalitäten als nur die von Grundlegenden Paketfiltern. Cisco
ist nach wie vor die erste Wahl
bei Hardwarebasierten Firewalls, da die Software die sich auf den Cisco Hardware
Firewalls befinden
schon jahrzehnte existiert, und die Software extrem ausgereift ist und nahezu
keine Fehler mehr
aufweist. Die einzigen Fehler die auftreten könne, sind jene, die bei dem
"Hinzuprogrammieren" neuer
Funktionen entstehen können. Trotzdem werden Sie keinen Hardwarefirewallanbieter
außer Cisco finden
der Ihnen eine solch hohe Sicherheit bieten kann als Cisco. Sie würden
doch bestimmt auch nicht Ihr
gesamtes Vermögen bei einer Bank anlegen, die niemand kennt und welche
nur im Internet existiert
oder? Verhalten Sie sich deshalb ebenso entsprechend wenn Sie Hardwarefirewall-Produkte
sehen
die mit den selben technischen Details werben als Ihre langjährigen Mitbewerber.
Eine billige Hardware-
firewall ist meist übersäht mit Softwarefehlern die Angreifern wiederum
Fenster und Türen öffnet, und
Sie selbst im schlimmstfall bei Datenverlust/Datendiebstahl in den Bankrott
treiben könnte.
Erstellt von: Haßlinger Stefan
Im: Jahr 2006