Bundesamt für Sicherheit in der Informationstechnik

M 2.174 Sicherer Betrieb eines Webservers

Verantwortlich für Initiierung: IT-Sicherheitsbeauftragter, Leiter IT

Verantwortlich für Umsetzung: Administrator

Webserver sind attraktive Ziele für Angreifer und müssen daher sehr sorgfältig konfiguriert werden, damit sie sicher betrieben werden können. Das Betriebssystem und die Software müssen so konfiguriert sein, dass der Rechner so gut wie möglich gegen Angriffe geschützt wird. Solange der Rechner nicht entsprechend konfiguriert ist, darf er nicht ans Netz genommen werden.

Bei der Konfiguration der Webserver-Anwendung sollten, unabhängig von der eingesetzten Webserveranwendung, einige grundlegende Aspekte berücksichtigt werden. Wie diese im einzelnen konfiguriert werden, hängt von der Webserver-Anwendung ab.

Meist existieren Optionen, mit denen festgelegt werden kann, ob bei einer HTTP -Anfrage nach einem Verzeichnis (also ohne Angabe eines konkreten Dateinamens), der Inhalt des betreffenden Verzeichnisses aufgelistet werden soll, oder ob stattdessen bestimmte Dateien (beispielsweise index.html) zurückgegeben werden sollen. Dies sollte folgendermaßen konfiguriert werden:

  • Falls eine Index-Datei existiert, wird diese zurückgeliefert.
  • Falls nicht, wird eine entsprechende Fehlermeldung zurückgegeben.

Falls festgelegt werden kann, dass Programme oder CGI -Skripte nur in bestimmten Verzeichnissen ausgeführt werden dürfen, so sollte diese Option auf jeden Fall sehr eng eingestellt werden. Keinesfalls sollte die Ausführung von Programmen für den gesamten WWW-Bereich freigegeben werden. Es ist empfehlenswert, wenn möglich für Programme und Skripte ein eigenes Verzeichnis anzulegen und die Ausführung nur in diesem Verzeichnis zu gestatten.

Oft kann festgelegt werden, ob Dateien oder Verzeichnisse, die mittels eines symbolischen Links (Unix) oder einer Verknüpfung (Windows) in den WWW -Dateibaum "eingeblendet" wurden, angezeigt werden sollen. Dies sollte möglichst unterbunden werden, da auf diese Weise leicht Dateien zugreifbar werden können, die eigentlich nicht veröffentlicht werden sollen.

Es ist zu empfehlen, eine Checkliste wie die folgende regelmäßig abzuarbeiten, um einen sicheren Betrieb zu gewährleisten.

Checkliste:

1. Sind nur die benötigten Komponenten installiert?

2. Ist die Webserver-Anwendung so restriktiv wie möglich konfiguriert? Beispielsweise sollten CGI-Programme entweder ganz gesperrt werden oder aber die CGI-Programme auf ein eigenes Verzeichnis beschränkt sein. Der Dateizugriff des Webserver-Prozesses sollte auf einen Teil des Verzeichnisbaums eingeschränkt sein. Für Administration und Betrieb des Servers sollten eigene unprivilegierte Benutzerkennungen verwendet werden.

3. Sind alle überflüssigen CGI-Programme, asp-Seiten, sonstige Demo-Anwendungen und Web-Seiten gelöscht?

4. Sind nur die unbedingt nötigen Ports zugänglich (siehe auch M 4.97 Ein Dienst pro Server )? Auf einem Webserver wird der HTTP-Dienst üblicherweise über Port 80 angesprochen. Falls die Administration des Servers oder die Pflege der Webserver-Dateien über das Netz erfolgt, können noch weitere Dienste erforderlich sein. In diesem Fall sollte aber der Zugriff auf diese Dienste so restriktiv wie möglich geregelt werden (siehe auch M 4.98 Kommunikation durch Paketfilter auf Minimum beschränken ).

5. Ist eine angemessene regelmäßige Sicherung des Datenbestandes gewährleistet (siehe Baustein B 1.4 Datensicherungskonzept )?

6. Falls CGI-Programme genutzt werden, sind diese ausreichend sicher programmiert? Es dürfen keine Eingabewerte ungeprüft übernommen werden. Es muss sichergestellt sein, dass Buffer-Overflows und Race-Conditions ausgeschlossen sind. In allen Perl-Skripten sollte der Taint-Check aktiviert sein.

7. Gibt es eine funktionierende Routine für einen regelmäßigen Integritätscheck (z. B. Tripwire, siehe M 4.93 Regelmäßige Integritätsprüfung )?

8. Wird die Konfiguration regelmäßig überprüft? Werden Konfigurationsänderungen dokumentiert?

Beispiel: Aufbau eines einfachen Webservers

Als einfacher Webserver wird ein Server betrachtet, bei dem sich die Inhalte einzelner Seiten nur selten ändern, keine CGI-Programme verwendet werden und es keinen besonderen Zugriffsschutz gibt. Die einzelnen WWW-Dokumente werden über einen Datenträger auf den Webserver eingespielt. Bei einem solchen Server können alle Systemdateien und auch alle HTML -Seiten mit einem Schreibschutz versehen werden. Ein Angreifer kann bei einem solchen Aufbau zwar noch temporäre Dateien und Protokolleinträge abändern, das System selber aber nicht mehr. Ein solcher Zugriffsschutz sollte durch ein physikalisch schreibgeschütztes Medium realisiert werden, z. B. eine oder mehrere CD-ROM s oder eine schreibgeschützte Wechselplatte. Zumindest aber sollten regelmäßige Integritätsprüfungen durchgeführt werden (siehe M 4.93 Regelmäßige Integritätsprüfung ).

In dem http-Daemon sollten die nicht benötigten Funktionalitäten abgeschaltet werden, wie z. B. die Möglichkeit zum Ausführen von CGI-Skripten. Auf jeden Fall sollten mitgelieferte CGI-Programme entfernt werden.

Bei einer häufig vorkommenden Variante eines einfachen Webservers können die Dokumente mit entsprechenden Berechtigungen auf dem Webserver interaktiv abgeändert werden. In diesem Fall ist der Schutz vor unbefugten Veränderungen und eine regelmäßige Integritätsprüfung in kurzen Intervallen besonders wichtig.

Prüffragen:

  • Sind das Betriebssystem und die Software der Webserver so konfiguriert, dass der Rechner so gut wie möglich gegen Angriffe geschützt ist?

  • Liegen Verzeichnisse, in denen abrufbare Dateien gespeichert sind auf einer separaten Partition einer Festplatte?

  • Bei HTTP -Anfrage nach einem Verzeichnis: Wird eine Fehlermeldung ausgegeben falls keine Index-Datei existiert und sonst die Index-Datei?

  • Falls die Festlegung der Ausführungsorte von Programmen oder CGI -Skripten möglich ist: Können die Programme oder cgi-Skripte nur in den für sie bestimmten Verzeichnissen ausgeführt werden?

  • Ist die Einblendung von Links (Unix) oder Verknüpfungen (Windows) in den WWW -Dateibaum nicht möglich?

Stand: 13. EL Stand 2013