Bundesamt für Sicherheit in der Informationstechnik

M 5.169 Systemarchitektur einer Webanwendung

Verantwortlich für Initiierung: Verantwortliche der einzelnen Anwendungen

Verantwortlich für Umsetzung: Administrator

Webanwendungen verwenden im Allgemeinen mehrere IT -Systemkomponenten wie z. B. Webserver, Web-Applikationsserver und Hintergrundsysteme. Als Grundlage für den sicheren Betrieb einer Webanwendung muss eine geeignete Systemarchitektur gewählt werden.

Beim Entwurf der Systemarchitektur der Webanwendung und der Vernetzung der beteiligten IT-Systeme sollten die folgenden Punkte berücksichtigt werden.

Trennung nach Server-Rollen

Die Serverdienste der Webanwendung (z. B. Webserver, Applikationsserver, Datenbankserver) sollten jeweils auf separaten IT-Systemen betrieben werden. Kann bei diesem Ansatz eine Schwachstelle im System einer exponierten Komponente (z. B. im Webserver) ausgenutzt werden, so sind die auf anderen Systemkomponenten (z. B. der Datenbank) gespeicherten Daten hiervon nicht direkt betroffen.

Eine Trennung der Server-Rollen kann auch durch eine Servervirtualisierung umgesetzt werden. Wird von der Servervirtualisierung Gebrauch gemacht, so ist bei der Umsetzung der Baustein B 3.304 Virtualisierung zu berücksichtigen.

Eingeschränkte Konten für Serverprozesse der Systemkomponenten

Es sollten jeweils eigene Konten für die unterschiedlichen Serverprozesse der Systemkomponenten verwendet werden (z. B. ein eigener Systembenutzer für den Webserverprozess). Dabei sind die Rechte dieser Dienstekonten auf Betriebssystemebene soweit einzuschränken, dass nur auf die erforderlichen Ressourcen und Dateien des Betriebssystems zugegriffen werden kann. Auf diese Weise verfügt ein Angreifer auch nach einer erfolgreichen Kompromittierung eines Server-Prozesses nur über eingeschränkte Rechte, sodass der Zugriff auf Betriebssystemebene erschwert wird.

Mehrschichtige Netzwerkarchitektur

Die IT-Systemkomponenten der Webanwendung sollten im Sicherheitsgateway in demilitarisierten Zonen (DMZ) entsprechend des Schutzbedarfs entkoppelt werden (siehe M 2.73 Auswahl geeigneter Grundstrukturen für Sicherheitsgateways ).

Die Netzwerkarchitektur sollte einen mehrschichtigen (Multi-Tier) Ansatz verfolgen. Dabei sollten mindestens die folgenden Sicherheitszonen berücksichtigt werden:

  • Webschicht
    Diese Schicht grenzt an das nicht vertrauenswürdige Netz (z. B. Internet) und stellt die exponierte Schicht mit direkten Zugriffen durch Benutzer dar. Paketfilter zwischen angrenzenden Netzen (z. B. Anwendungsschicht und Internet) sollten den Datenverkehr filtern, sodass kein direkter Zugriff aus dem nicht vertrauenswürdigen Netz über die Netzgrenzen der Webschicht hinaus möglich ist. In dieser Schicht sollten Systeme wie der Webserver platziert werden, die eine exponierte Stellung einnehmen und z. B. den direkten Zugriff durch Benutzer erfordern.
  • Anwendungsschicht
    Die Anwendungsschicht sollte zum einen an die Webschicht und zum anderen an die Datenschicht angrenzen. Der Netzverkehr zu den angrenzenden Netzen sollte durch Paketfilter gefiltert werden, sodass kein direkter Zugriff zwischen den angrenzenden Netzen möglich ist. In diesem Netzsegment sollten Systeme und Server mit der Anwendungslogik (z. B. der Applikationsserver mit der Webanwendung) platziert sein. Die Systeme greifen auf Daten aus der angrenzenden Datenschicht zu (z. B. Datenbanken), bereiten diese auf und stellen sie Systemen in der Webschicht (z. B. dem Webserver) zur Verfügung.
  • Datenschicht
    Die Datenschicht ist die vertrauenswürdigste Zone der mehrschichtigen Architektur. Paketfilter zwischen den angrenzenden Netzen sollten den Datenverkehr reglementieren. In dieser Schicht sollten die Hintergrundsysteme der Webanwendung wie z. B. Datenbanken, Verzeichnisdienst und Legacy-Systeme aufgestellt sein. Der Zugriff auf diese Systeme sollte ausschließlich von angrenzenden Netzen aus möglich sein (z. B. Anwendungsschicht). Die Datenschicht ist als separate Zone umzusetzen und sollte nicht in andere Zonen integriert werden (z. B. Intranet).

Es sollte aus den oben genannten Zonen nicht auf Systeme im Intranet zugegriffen werden können. Falls z. B. für die Authentisierung an der Webanwendung ein Verzeichnisdienst eingesetzt wird, sollte hierfür nach Möglichkeit eine eigene Domäne auf dedizierter Hardware verwendet werden.

Eine Filterung des Datenverkehrs sollte durch getrennte Filterkomponenten erfolgen (z. B. Paketfilter). Bei hohem Schutzbedarf sollten die Filterkomponenten durch Systeme mit Filterfunktionen auf höheren Protokollebenen (z. B. Application Level Gateway) ersetzt oder ergänzt werden. Das Application Level Gateway sollte dabei in einer eigenen Sicherheitszone integriert werden, die noch vor den Systemen der Webschicht die Anfragen der Benutzer entgegennimmt.

Einsatz von Web Application Firewalls

Bei der Filterung auf höheren Protokollebenen kann auf den Einsatz von Web Application Firewalls (WAF) zurückgegriffen werden. Da eine WAF das HTTP -Protokoll und die darüber übertragenen Daten analysiert, können Angriffsmuster auf Anwendungsebene bereits an der WAF gefiltert werden. Auf diese Weise werden Angriffsversuche frühzeitig erkannt und nicht mehr an die Webanwendung weitergeleitet.

Die Filterung an der WAF kann üblicherweise auf zwei Arten erfolgen.

  • An eine Webanwendung gesendete Daten werden auf bekannte Angriffsmuster untersucht. Die Angriffsmuster werden vom Hersteller der WAF zur Verfügung gestellt und umfassen sowohl typische Zeichenketten, die bei allgemeinen Angriffen gegen Webanwendungen (z. B. SQL -Injection) verwendet werden, als auch spezifische Angriffsmuster, die Standard-Softwareprodukte betreffen. Damit bekannte Angriffe zuverlässig erkannt werden, müssen die Angriffssignaturen ähnlich wie bei einem Virenscanner regelmäßig aktualisiert werden.
  • Wird keine Standardsoftware eingesetzt oder soll ein zusätzlicher Schutz erreicht werden, können für WAF üblicherweise auch eigene Filterregeln erstellt werden. Dabei wird beispielsweise definiert, welche Eingabedaten für die Webanwendung zugelassen werden. Diese Methode erfordert einen hohen Konfigurationsaufwand und eine genaue Kenntnis über die von der Webanwendung verarbeiteten Daten.

Prüffragen:

  • Ist eine Trennung der Serverdienste bei Webanwendungen auf jeweils separate IT-Systeme vorgesehen (Trennung nach Server-Rollen)?

  • Werden eingeschränkte Konten für Serverprozesse der Systemkomponenten von Webanwendungen verwendet?

  • Wird für die Webanwendung ein mehrschichtiger (Multi-Tier) Ansatz bei der Netzwerkarchitektur umgesetzt?

  • Bei dem Einsatz von Web Application Firewalls: Ist die Konfiguration der WAF auf die zu schützende Webanwendung angepasst worden?

  • Bei dem Einsatz von Web Application Firewalls: Werden die Angriffssignaturen für die WAF regelmäßig aktualisiert?

Stand: 13. EL Stand 2013