Bundesamt für Sicherheit in der Informationstechnik

G 4.84 Unzureichende Validierung von Ein- und Ausgabedaten bei Webanwendungen und Web-Services

Webanwendungen werden im Allgemeinen von generischen Clients (Web-Browsern) verwendet, sodass Benutzer beliebige Eingabedaten an den Server übermitteln können. Auf Web-Services wird dagegen durch andere Anwendungen oder Dienste zugegriffen (beispielsweise Smartphone- App s). Eingabedaten können aber auch hier oft modifiziert werden, beispielsweise durch den Einsatz eines Proxys oder durch Manipulation der Clients. Werden schadhafte Eingaben eines Angreifers von der Webanwendung beziehungsweise dem Web-Service verarbeitet, können möglicherweise Schutzmechanismen umgangen werden.

Beispiele für Angriffe, die auf einer unzureichenden Validierung von Eingabedaten beruhen, sind SQL-Injection (siehe G 5.131 SQL-Injection ), Path Traversal (siehe G 5.172 Umgehung der Autorisierung bei Webanwendungen und Web-Services ) und Remote File Inclusion. Diese Angriffe können Unbefugten Zugriff auf das Betriebssystem oder auf Hintergrundsysteme ermöglichen. Bei einem erfolgreichen Angriff können schützenswerte Daten unautorisiert ausgelesen oder manipuliert werden.

Nachdem die Webanwendung beziehungsweise der Web-Service die Eingabedaten erfolgreich verarbeitet hat, werden üblicherweise wieder Daten ausgegeben. Die Ausgabedaten werden entweder direkt an den Browser des Benutzers (zum Beispiel Statusmeldungen oder ein neuer Eintrag im Gästebuch) oder die aufrufende Anwendung übermittelt oder an nachgelagerte Systeme weitergereicht. Werden die Daten vor der Ausgabe nicht ausreichend validiert, könnten die Ausgaben Schadcode enthalten, der auf den Zielsystemen interpretiert oder ausgeführt wird.

Die folgenden Beispiele beschreiben mögliche Auswirkungen einer unzureichenden Validierung von Ein- und Ausgaben:

  • Eine Webanwendung beziehungsweise ein Web-Service verwendet Eingabedaten ungefiltert zur Erzeugung von Datenbankabfragen. Dies kann ein Angreifer ausnutzen und eine Anfrage formulieren, die neben den regulären Eingabedaten zusätzliche Befehle für die Datenbank enthält. Durch das ungefilterte Einbetten der Eingabedaten in die Datenbankabfrage werden die Befehle von der Datenbank ausgeführt. So kann der Angreifer direkten Zugriff auf die Datenbank erhalten.
  • Eine Webanwendung bietet eine Funktion zum Datei-Upload an und schränkt diese auf gewisse Dateitypen ein. Zur Bestimmung des Dateityps überprüft die Webanwendung ausschließlich die Dateiendung und berücksichtigt dabei nicht den Inhalt der Datei. Wird eine erlaubte Dateiendung für den Upload verwendet, können so Dateien mit beliebigem Inhalt zum Server übermittelt werden.
  • Werden Eingabedaten durch die Filterkomponente automatisiert geändert und angepasst (Sanitizing), können die Daten durch gezielte Eingaben eines Angreifers von der Filterkomponente in einen Angriffsvektor überführt werden.
  • Ein- und Ausgabedaten können in verschiedenen Kodierungen (zum Beispiel UTF-8, ISO 8859-1) und Notationen (zum Beispiel bei UTF-8 ist "." = "2E" = "C0 AE") vorliegen. Abhängig vom angewandten Kodierungsschema kann der gleiche Wert unterschiedlich interpretiert werden. Interpretiert die Filterkomponente die Daten anders als die verarbeitenden Komponenten der Webanwendung oder des Web-Service, so kann ein Angreifer schadhafte Daten (zum Beispiel SQL -Anweisungen) derart codieren, dass sie bei der Filterung nicht erkannt werden. Somit werden die vom Angreifer schadhaften Daten an die verarbeitenden Komponenten weitergereicht und aufgrund der unterschiedlichen Interpretation ausgeführt.
  • Die Kommentar-Funktion einer Webanwendung erlaubt eine Formatierung der Texte durch HTML . Die Eingaben werden zum Beispiel nicht auf spezielle HTML -Tags eingeschränkt, sodass ein Angreifer über diese Funktion beliebigen HTML -Code auf der Webanwendung platzieren kann. Dies kann ein Angreifer dazu nutzen, um Elemente der Webseite zu manipulieren oder zu überlagern und Benutzereingaben abzufangen (siehe G 5.175 Clickjacking ). Derselbe Angriff ist übertragbar auf Web-Services, welche HTML-Code als Eingabe erlauben und diesen ungefiltert in ihre Ausgabe übernehmen.

Stand: 14. EL Stand 2014

Hinweis zur Verwendung von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen hierzu erhalten Sie in unserer Datenschutzerklärung.

OK