Bundesamt für Sicherheit in der Informationstechnik

M 4.94 Schutz der Webserver-Dateien

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

Verantwortlich für Umsetzung: Administrator

Die Dateien und Verzeichnisse auf einem Webserver müssen gegen unbefugte Veränderungen, aber auch - je nach Sicherheitsanforderungen - gegen unbefugten lesenden Zugriff geschützt werden. Werden Inhalte auf dem Webserver dynamisch erzeugt, so gilt dies zusätzlich und ganz besonders für die Programme (Skripte oder Server-Erweiterungen), die dafür verwendet werden.

Generelle Aspekte

Generell muss zwischen zwei verschiedenen Aspekten unterschieden werden, nämlich dem Schutz vor unbefugtem Zugriff lokaler Benutzer und dem Schutz vor unbefugtem Zugriff von außen über das Web.

Schutz vor unbefugten Veränderungen

Auf vielen Webservern ändern sich nur die Protokolldateien ständig, alle anderen Dateien sind statisch. Dies trifft insbesondere auf Systemprogramme und die Webseiten zu. Webseiten werden zwar regelmäßig aktualisiert, sollten aber nicht auf dem Webserver selber bearbeitet werden.

Die Schreib- und Leserechte der Web-Dateien sollten als lokale Dateien nur berechtigten Benutzern Zugriff erlauben. Daher sollte bereits bei der Planung des Webangebots ein Benutzer- und Rollenkonzept erstellt werden (siehe auch M 2.176 Geeignete Auswahl eines Internet Service Providers ).

Um sicherzustellen, dass keine Dateien auf dem Webserver unbemerkt abgeändert werden können, können über alle statischen Dateien und Verzeichnisse Prüfsummen gebildet werden, siehe auch M 4.93 Regelmäßige Integritätsprüfung . Diese sollten dann regelmäßig überprüft werden.

Um zu verhindern, dass Web-Dateien überhaupt von Unbefugten geändert werden können, können statische Daten auf einem schreibgeschützten Speichermedium ( z. B. CD-ROM oder Festplatte mit Schreibschutz) gespeichert werden.

Falls das Webangebot nicht nur aus statischen HTML -Dateien besteht, sondern bestimmte Inhalte dynamisch erzeugt werden, so müssen die dazu benutzten Programme (beispielsweise CGI -Skripte, Java Server Pages) besonders sorgfältig programmiert werden, um zu verhindern, dass auf diesem Weg ein unbefugter Zugriff oder gar eine Kompromittierung des Servers erfolgen kann.

Auf dem Server müssen solche Programme vor unbefugtem Zugriff geschützt werden. Nur die Benutzer oder Benutzergruppen, die unbedingt Zugriff auf diese Programme oder Skripte brauchen (etwa Entwickler oder Administratoren), dürfen eine Schreibberechtigung haben. Normalerweise dürfen die Programme nicht für den Benutzer schreibbar sein, unter dessen Kennung der Webserver-Prozess ausgeführt wird. Für normale Benutzer sollten insbesondere Skripte nicht lesbar sein, da diese eventuell sensitive Informationen wie Authentisierungsdaten für den Zugriff auf Datenbanken enthalten können. Gleiches gilt für eventuell vorhandene Konfigurationsdateien.

Schutz vor unbefugtem Zugriff über das Internet

Der Zugriff über das Web auf Dateien oder Verzeichnisse eines Webservers kann auf verschiedene Arten gesteuert werden.

Welche Arten der Zugriffssteuerung unterstützt werden und wie diese implementiert sind hängt vom verwendeten Serverprodukt ab. Die folgenden Möglichkeiten sind verbreitet und werden von den meisten Webservern und Clients unterstützt.

Authentisierung von Clients über IP-Adressen

Der Zugriff auf Web-Dateien kann bei vielen Servern auf frei wählbare IP -Adressen, Teilnetze oder Domänen beschränkt werden. Die Authentisierung über numerische IP-Adressen bietet nicht den Schutz kryptographischer Verfahren, da sie über einen auf IP-Spoofing basierenden Angriff unwirksam gemacht werden kann. Bei IP-Spoofing fälscht ein Angreifer IP-Pakete, um vorzugeben, von einem vertrauenswürdigen IT-System zu kommen (siehe G 5.48 IP-Spoofing ). Über eine Firewall kann jedoch verhindert werden, dass Externe vortäuschen können, Interne zu sein. Wird der Zugriff nicht auf numerische IP-Adressen oder Teilnetze sondern auf bestimmte Rechnernamen oder Domainnamen beschränkt, ist außerdem die Gefährdung durch DNS-Spoofing (siehe G 5.78 DNS-Spoofing ) zu betrachten.

Wenn der Web-Browser über einen Proxy-Server auf den Webserver zugreift, ist zu bedenken, dass der Webserver nur die IP-Adresse des Proxy erfährt. Ein Proxy kann aber nur dann als vertrauenswürdig angesehen werden, wenn alle IT-Systeme und Benutzer, die hinter ihm verborgen sind, ebenfalls vertrauenswürdig sind.

Wenn der Zugriff auf Web-Dateien auf vorgegebene IP-Adressen, Teilnetze oder Domänen beschränkt wird, kann es daher sinnvoll sein, diese zusätzlich mit einem Passwort zu schützen.

Passwortschutz

Eine weitere Möglichkeit der Zugriffssteuerung, die in praktisch allen Webservern implementiert ist, stellt der Schutz über Benutzernamen und Passwörter dar. Der Benutzer gibt beim erstmaligen Zugriff auf ein entsprechend geschütztes Verzeichnis in seinem Browser einen Benutzernamen und ein Passwort an, das zum Zugriff auf die entsprechende Ressource berechtigt. Über das Protokoll HTTP lässt sich ein Passwortschutz (Benutzer-Authentisierung) auf verschiedene Arten realisieren, die sich im Bezug auf Implementierungsaufwand und Sicherheit unterscheiden.

In Abhängigkeit von den Sicherheitsanforderungen muss eine geeignete Methode zur Benutzer-Authentisierung ausgewählt werden. Bei höheren Sicherheitsanforderungen sollte SSL oder TLS zur Verschlüsselung der Datenübertragung und gegebenenfalls auch zur Benutzer-Authentisierung über Client-Zertifikate eingesetzt werden. Näheres ist in M 4.176 Auswahl einer Authentisierungsmethode für Webangebote beschrieben, Informationen zu SSL und TLS finden sich in M 5.66 Clientseitige Verwendung von SSL/TLS .

Dateiverschlüsselung

Eine weitere Möglichkeit zum Schutz von Web-Dateien ist es, Dateien verschlüsselt auf einem Webserver abzulegen, so dass nur diejenigen die Daten lesen können, die im Besitz des richtigen kryptographischen Schlüssels sind. Dieses Vorgehen bietet zusätzlich den Schutz vor unbefugtem lokalem Zugriff, verlangt allerdings ein entsprechendes, unter Umständen aufwendiges, Schlüsselmanagement.

Prüffragen:

  • Werden Dateien und Verzeichnisse auf einem Webserver vor unbefugtem Lesen und Schreiben geschützt?

  • Integritätsprüfung von Dateien und Verzeichnissen durch Prüfsummen: Werden die Prüfsummen der Dateien und Verzeichnisse regelmäßig überprüft?

  • Erzeugung dynamischer Inhalte: Sind die Programme zur Inhaltserzeugung sicher programmiert und sicher auf dem Server gespeichert, so dass unbefugte Zugriffe auf den Server durch sie nicht erfolgen können?

  • Sind Skripte und Konfigurationsdateien für normale Benutzer nicht lesbar?

  • Bei Authentisierung von Clients über Rechner oder Domainnamen: Werden Maßnahmen gegen DNS -Spoofing und Pharming getroffen?

  • Authentisierung von Clients über IP -Adressen: Werden Verbindungen von Proxy-Servern nur dann als vertrauenswürdig angesehen wenn alle IT -Systeme hinter dem Proxy auch vertrauenswürdig sind?

  • Schutz der WWW -Dateien durch Passwörter: Wird in Abhängigkeit von den Sicherheitsanforderungen eine geeignete Methode zur Benutzer-Authentisierung gewählt?

Stand: 13. EL Stand 2013