Bundesamt für Sicherheit in der Informationstechnik

B 5.21 Webanwendungen

Logo Webanwendungen

Beschreibung

Webanwendungen stellen Funktionen und dynamische Inhalte über das Internetprotokoll HTTP (Hypertext Transfer Protocol) bzw. HTTPS (HTTP über SSL bzw. TLS , d. h. geschützt durch eine verschlüsselte Verbindung) zur Verfügung. Dazu werden auf einem Server Dokumente und Benutzeroberflächen (z. B. Bedienelemente und Eingabemasken) erzeugt und an entsprechende Clientprogramme (Web-Browser) ausgeliefert.

Webanwendungen werden gewöhnlich auf der Grundlage von Frameworks entwickelt. Diese stellen ein Rahmenwerk für häufig wiederkehrende Aufgaben zur Verfügung ( z. B. für Sicherheitskomponenten). Für eine Webanwendung werden häufig mehrere Frameworks für verschiedene Bereiche (z. B. Zugriff auf Datenbanken, Formatierung der Ausgaben) und Komponenten (z. B. Authentisierung, Session-Management) eingesetzt. Daher müssen bereits in der Planungsphase Sicherheitsaspekte bei der Auswahl der Frameworks sowie der Software-Architektur berücksichtigt werden.

Um eine Webanwendung zu betreiben, sind in der Regel mehrere IT -Systemkomponenten notwendig. Hierzu gehören üblicherweise ein Webserver zur Auslieferung der Daten, ein Applikationsserver für den Betrieb der Anwendung und zusätzliche Hintergrundsysteme, die als Datenquellen über unterschiedliche Schnittstellen angebunden sind (z. B. Datenbank oder Verzeichnisdienst).

Webanwendungen werden sowohl in öffentlichen IT-Netzen ( z. B. dem Internet) als auch in Firmennetzen (Intranet) zur Bereitstellung von Daten und Anwendungen eingesetzt. Dabei müssen Webanwendungen Sicherheitsmechanismen umsetzen, die den Schutz der Daten gewährleisten und Missbrauch verhindern.

Typische Sicherheitskomponenten bzw. -mechanismen einer Webanwendung sind:

  • Authentisierung
    Für den Zugriff auf geschützte Ressourcen der Webanwendung müssen sich die Benutzer gegenüber der Authentisierungskomponente ausweisen ( z. B. durch Zugangsdaten).
  • Autorisierung
    Vor dem Zugriff auf geschützte Ressourcen und Funktionen muss geprüft werden, ob die Benutzer über ausreichend Rechte verfügen.
  • Ein- und Ausgabevalidierung
    Ein- und Ausgabedaten müssen geprüft und gefiltert werden, damit die Verarbeitung von schadhaften Daten ( z. B. ausführbarer Schadcode) vermieden wird.
  • Session-Management
    Da das Internetprotokoll HTTP keine Zuordnung zusammengehörender Anfragen zu einem Benutzer unterstützt, erfolgt diese Zuordnung durch das Session-Management der Webanwendung.
  • Fehlerbehandlung
    Auftretende Fehler müssen so behandelt werden, dass die Daten der Webanwendung auch im Fehlerfall geschützt werden.
  • Protokollierung
    Ereignisse müssen von der Webanwendung derart erfasst werden, dass durchgeführte Aktionen und sicherheitsrelevante Vorfälle auch zu einem späteren Zeitpunkt nachvollzogen werden können.

Abgrenzung des Bausteins

In diesem Baustein werden die für Webanwendungen spezifischen Gefährdungen und Maßnahmen betrachtet. Während Webserver die Webseiten ausliefern (siehe auch B 5.4 Webserver ), stellen Webanwendungen Funktionen zur Verfügung und bereiten dynamische Inhalte zur Auslieferung durch den Webserver vor. Der Baustein B 5.4 Webserver beinhaltet auch die redaktionelle Planung des Webauftritts sowie das Notfallmanagement, das deshalb in diesem Baustein nicht nochmals behandelt wird. Da Web-Services ähnlich wie Webanwendungen Geschäftslogik abbilden, lässt sich ein Großteil der Gefährdungen und Maßnahmen von Webanwendungen auch auf die Logik-Komponenten von Web-Services übertragen.

Bei herkömmlichen Webanwendungen werden Funktionalitäten innerhalb dieser Anwendung angeboten. Im Gegensatz dazu werden diese bei SOAP-basierten Web Services (Simple Object Access Protocol) als lose gekoppelte, unabhängige, austauschbare Dienste über standardisierte Schnittstellen von einem Service Provider angeboten. Anders als Webanwendungen bereiten Web-Services üblicherweise die Ausgabe von Ergebnissen nicht für einen Browser auf, sondern stellen sie in strukturierter, maschinenlesbarer Form ( z. B. SOAP-Nachrichten) zur weiteren automatisierten Verarbeitung zur Verfügung. Dabei werden diese Daten durch unterschiedliche Komponenten des Web-Service (z. B. durch einen Parser oder durch Ver- und Entschlüsselungskomponenten) aufbereitet. Die sicherheitsrelevanten Aspekte bei der Realisierung einer Service-orientierten Architektur (SOA) werden im vorliegenden Baustein nicht betrachtet.

Gefährdungslage

Für den IT-Grundschutz werden pauschal die folgenden Gefährdungen als typisch im Zusammenhang mit einer Webanwendung angenommen:

Organisatorische Mängel

G 2.1Fehlende oder unzureichende Regelungen
G 2.4Unzureichende Kontrolle der Sicherheitsmaßnahmen
G 2.7Unerlaubte Ausübung von Rechten
G 2.22Fehlende oder unzureichende Auswertung von Protokolldaten
G 2.27Fehlende oder unzureichende Dokumentation
G 2.67Ungeeignete Verwaltung von Zutritts-, Zugangs- und Zugriffsrechten
G 2.87Verwendung unsicherer Protokolle in öffentlichen Netzen
G 2.103Unzureichende Schulung der Mitarbeiter
G 2.157Mangelhafte Auswahl oder Konzeption von Webanwendungen
G 2.158Mängel bei der Entwicklung und der Erweiterung von Webanwendungen und Web-Services
G 2.159Unzureichender Schutz personenbezogener Daten bei Webanwendungen und Web-Services

Menschliche Fehlhandlungen

G 3.16Fehlerhafte Administration von Zugangs- und Zugriffsrechten
G 3.38Konfigurations- und Bedienungsfehler
G 3.43Ungeeigneter Umgang mit Passwörtern oder anderen Authentikationsmechanismen

Technisches Versagen

G 4.22Software-Schwachstellen oder -Fehler
G 4.33Schlechte oder fehlende Authentikationsverfahren und -mechanismen
G 4.35Unsichere kryptographische Algorithmen
G 4.84Unzureichende Validierung von Ein- und Ausgabedaten bei Webanwendungen und Web-Services
G 4.85Fehlende oder mangelhafte Fehlerbehandlung durch Webanwendungen und Web-Services
G 4.86Unzureichende Nachvollziehbarkeit von sicherheitsrelevanten Ereignissen bei Webanwendungen
G 4.87Offenlegung vertraulicher Informationen bei Webanwendungen

Vorsätzliche Handlungen

G 5.18Systematisches Ausprobieren von Passwörtern
G 5.19Missbrauch von Benutzerrechten
G 5.20Missbrauch von Administratorrechten
G 5.28Verhinderung von Diensten
G 5.87Web-Spoofing
G 5.88Missbrauch aktiver Inhalte
G 5.131SQL-Injection
G 5.165Unberechtigter Zugriff auf oder Manipulation von Daten bei Webanwendungen und Web-Services
G 5.166Missbrauch einer Webanwendung durch automatisierte Nutzung
G 5.167Fehler in der Logik von Webanwendungen und Web-Services
G 5.168Umgehung clientseitig umgesetzter Sicherheitsfunktionen von Webanwendungen und Web-Services
G 5.169Unzureichendes Session-Management von Webanwendungen und Web-Services
G 5.170Cross-Site Scripting (XSS)
G 5.171Cross-Site Request Forgery (CSRF, XSRF, Session Riding)
G 5.172Umgehung der Autorisierung bei Webanwendungen und Web-Services
G 5.173Einbindung von fremden Daten und Schadcode bei Webanwendungen und Web-Services
G 5.174Injection-Angriffe
G 5.175Clickjacking

Maßnahmenempfehlungen

Um Webanwendungen abzusichern, müssen zusätzlich zu diesem Baustein noch weitere Bausteine umgesetzt werden, gemäß den Ergebnissen der Modellierung nach IT-Grundschutz.

Der Betrieb einer Webanwendung setzt den Einsatz weiterer Komponenten voraus. Daher muss der Baustein B 3.101 Allgemeiner Server und abhängig von dem eingesetzten Betriebssystem beispielsweise Baustein B 3.102 Server unter Unix oder B 3.108 Windows Server 2003 berücksichtigt werden. Darüber hinaus wird für den Betrieb einer Webanwendung ein Webserver (siehe B 5.4 Webserver ) benötigt.

Funktionalität oder Daten werden bei Webanwendungen gewöhnlich in Hintergrundsystemen ausgelagert (z. B. Datenbank und Identitätsspeicher). Aus diesem Grund sind in Abhängigkeit der eingesetzten Hintergrundsysteme weitere Bausteine, wie beispielsweise B 5.7 Datenbanken und B 5.15 Allgemeiner Verzeichnisdienst (bzw. B 5.16 Active Directory ), zu berücksichtigen.

Verarbeitet die Webanwendung personenbezogene Daten oder wertet sie Nutzerdaten aus (z. B. Abrufstatistiken, Benutzerprofile), muss zusätzlich Baustein B 1.5 Datenschutz beachtet werden.

Wird die Webanwendung von externen Dienstleistern betrieben oder entwickelt, ist zusätzlich der Baustein B 1.11 Outsourcing zu betrachten.

Für eine sichere Webanwendung sind eine Reihe von Maßnahmen umzusetzen. Die zu durchlaufenden Phasen, sowie die Maßnahmen, die in den jeweiligen Phasen zu beachtet sind, werden im Folgenden aufgeführt.

Planung und Konzeption

Bei der Planung einer Webanwendung muss üblicherweise entschieden werden, ob die Anforderungen an die Webanwendung durch Standardprodukte abgedeckt werden können oder eine Eigenentwicklung notwendig ist. Wird eine Webanwendung auf Basis von Standardsoftware umgesetzt, so sind gewöhnlich Anpassungen erforderlich, die über reine Konfigurationsänderungen hinausgehen und oft auch Entwicklungsarbeiten mit einschließen. Daher müssen auch Webanwendungen, die auf Standardsoftware basieren, häufig die Vorgaben an die Entwicklung und Erweiterung von Webanwendungen erfüllen (siehe M 2.487 Entwicklung und Erweiterung von Anwendungen ).

Bereits in der Entwurfsphase einer Webanwendung müssen Sicherheitsaspekte beachtet werden, um die zu verarbeitenden Daten zu schützen (siehe M 5.169 Systemarchitektur einer Webanwendung ). Hierbei müssen auch die Integration der Hintergrundsysteme ( z. B. Datenbank) und deren sichere Anbindung miteinbezogen werden (siehe M 5.168 Sichere Anbindung von Hintergrundsystemen an Webanwendungen und Web-Services ).

Werden personenbezogene Daten von Webanwendungen verarbeitet, aufgezeichnet oder ausgewertet (z. B. Nutzerverhalten), sind die rechtlichen Rahmenbedingungen bei der Planung von technischen Lösungen zu berücksichtigen (siehe M 2.110 Datenschutzaspekte bei der Protokollierung und M 2.488 Web-Tracking ).

Beschaffung

Soll eine Webanwendung mit verfügbarer Standardsoftware realisiert werden, muss ein passendes Produkt ausgewählt werden (siehe M 2.80 Erstellung eines Anforderungskatalogs für Standardsoftware ).

Umsetzung

Vor der Übernahme einer Webanwendung in den Wirkbetrieb müssen die Sicherheitsfunktionen konfiguriert oder entwickelt werden. Die dafür umzusetzenden Komponenten müssen die Webanwendung vor bekannten Bedrohungen und Angriffstechniken schützen (siehe z. B. M 2.363 Schutz gegen SQL-Injection ).

Darüber hinaus sind die kontextbezogene Validierung und Filterung der Daten (siehe M 4.392 Authentisierung bei Webanwendungen ) und der Schutz von Benutzer-Sitzungen durch das Session-Management (siehe M 4.394 Session-Management bei Webanwendungen und Web-Services ) wesentliche Sicherheitskomponenten einer Webanwendung.

Betrieb

Nachdem eine Webanwendung das Abnahme- und Freigabeverfahren erfolgreich durchlaufen hat und betriebsbereit konfiguriert wurde, kann der Regelbetrieb aufgenommen werden.

Insbesondere bei der Nutzung der Webanwendung über öffentliche Netze ( z. B. Internet) besteht die Gefahr, dass bekannt gewordene Schwachstellen ausgenutzt werden. Daher müssen Prozesse definiert werden, um das angestrebte Sicherheitsniveau der Webanwendung dauerhaft aufrecht erhalten zu können (siehe M 2.35 Informationsbeschaffung über Sicherheitslücken des Systems und M 2.273 Zeitnahes Einspielen sicherheitsrelevanter Patches und Updates ).

Es muss sichergestellt werden, dass von Webanwendungen übermittelte Daten keine sicherheitsrelevanten Informationen beinhalten, die einem Angreifer Hinweise zur Umgehung von Sicherheitsmechanismen geben (siehe M 4.400 Restriktive Herausgabe sicherheitsrelevanter Informationen bei Webanwendungen und Web-Services ).

Für den hohen Schutzbedarf sind Penetrationstests auf die Webanwendung durchzuführen, um das Sicherheitsniveau der Webanwendung zu überprüfen und mögliche Schwachstellen schnell abzustellen (M 5.150 Durchführung von Penetrationstests ).

Nachfolgend werden die Maßnahmen für Webanwendungen vorgestellt. Auf eine Wiederholung von Maßnahmen anderer Bausteine wird hier aus Gründen der Redundanz verzichtet.

Planung und Konzeption

M 2.1(A)Festlegung von Verantwortlichkeiten und Regelungen
M 2.11(A)Regelung des Passwortgebrauchs
M 2.63(A)Einrichten der Zugriffsrechte
M 2.80(A)Erstellung eines Anforderungskatalogs für Standardsoftware
M 2.363(B)Schutz gegen SQL-Injection
M 2.486(A)Dokumentation der Architektur von Webanwendungen und Web-Services
M 2.487(B)Entwicklung und Erweiterung von Anwendungen
M 2.488(W)Web-Tracking
M 4.176(B)Auswahl einer Authentisierungsmethode für Webangebote
M 4.404(A)Sicherer Entwurf der Logik von Webanwendungen
M 5.168(A)Sichere Anbindung von Hintergrundsystemen an Webanwendungen und Web-Services
M 5.169(A)Systemarchitektur einer Webanwendung
M 5.177(B)Serverseitige Verwendung von SSL/TLS

Beschaffung

M 2.62(B)Software-Abnahme- und Freigabe-Verfahren

Umsetzung

M 4.392(A)Authentisierung bei Webanwendungen
M 4.393(B)Umfassende Ein- und Ausgabevalidierung bei Webanwendungen und Web-Services
M 4.394(A)Session-Management bei Webanwendungen und Web-Services
M 4.395(B)Fehlerbehandlung durch Webanwendungen und Web-Services
M 4.396(B)Schutz vor unerlaubter automatisierter Nutzung von Webanwendungen
M 4.398(B)Sichere Konfiguration von Webanwendungen
M 4.399(A)Kontrolliertes Einbinden von Daten und Inhalten bei Webanwendungen
M 4.400(B)Restriktive Herausgabe sicherheitsrelevanter Informationen bei Webanwendungen und Web-Services
M 4.401(B)Schutz vertraulicher Daten bei Webanwendungen
M 4.402(A)Zugriffskontrolle bei Webanwendungen
M 4.403(C)Verhinderung von Cross-Site Request Forgery (CSRF, XSRF, Session Riding)
M 4.405(C)Verhinderung der Blockade von Ressourcen (DoS) bei Webanwendungen und Web-Services
M 4.406(Z)Verhinderung von Clickjacking

Betrieb

M 2.8(A)Vergabe von Zugriffsrechten
M 2.31(A)Dokumentation der zugelassenen Benutzer und Rechteprofile
M 2.34(A)Dokumentation der Veränderungen an einem bestehenden System
M 2.35(B)Informationsbeschaffung über Sicherheitslücken des Systems
M 2.64(A)Kontrolle der Protokolldateien
M 2.110(A)Datenschutzaspekte bei der Protokollierung
M 2.273(A)Zeitnahes Einspielen sicherheitsrelevanter Patches und Updates
M 3.5(A)Schulung zu Sicherheitsmaßnahmen
M 4.78(A)Sorgfältige Durchführung von Konfigurationsänderungen
M 4.397(C)Protokollierung sicherheitsrelevanter Ereignisse von Web-Anwendungen und Web-Services
M 5.150(Z)Durchführung von Penetrationstests

Stand: 14. EL Stand 2014