Bundesamt für Sicherheit in der Informationstechnik

G 5.173 Einbindung von fremden Daten und Schadcode bei Webanwendungen und Web-Services

Werden die Ein- und Ausgabedaten einer Webanwendung oder eines Web-Service nicht ausreichend validiert, so kann ein Angreifer Inhalte, wie zum Beispiel Schadcode zur Manipulation von Server, Clients oder nachgelagerten Systemen, einbinden. Die eingebundenen Daten werden dem Benutzer im Sicherheitskontext der Webanwendung oder des Web-Service zurückgegeben. Demzufolge ist es dem Benutzer der Webanwendung beziehungsweise dem Consumer des Web-Service nicht oder nur eingeschränkt möglich, die manipulierten Anteile der Ausgabe zu erkennen. Der Angreifer kann so die Vertrauensstellung des authentisierten Benutzers gegenüber der Webanwendung oder dem Web-Service ausnutzen.

Bei Web-Services kann Schadcode auf den Web-Service selbst oder aber auf einen Consumer des Web-Service (Endanwendung oder nachgelagerter Web-Service) abzielen. Bei Webanwendungen können sowohl die Clients als auch die Server der Webanwendung durch eingebundenen Schadcode angegriffen werden. So können von einem Angreifer eingebettete Daten beispielsweise Schadcode zur Ausführung auf den Clients (zum Beispiel zum Auslesen von vertraulichen Daten) oder gefälschte Anmelde-Formulare zum Diebstahl von Zugangsdaten beinhalten. Wird der eingebundene Programmcode von der Webanwendung oder dem Web-Service ausgeführt, so kann darüber hinaus das Betriebssystem des Servers kompromittiert werden.

Beispiele:

  • Über Parameter in der URL können in dynamischen Webseiten fremde Inhalte eingebunden werden, die sich nicht von den Inhalten der Webanwendung unterscheiden lassen (zum Beispiel http://host.tld/index.php?frame=http://angreifer.tld&title=modifizierter Titel). Hierbei wird der übermittelte Parameter title in der zurückgelieferten Webseite der Webanwendung als Titel im HTML -Dokument eingebettet. Ebenso wird der Parameter frame als Quelle für einen Frame auf der Webseite verwendet. Hiermit lassen sich über die Parameterwerte beliebige Inhalte und Programmcode (zum Beispiel JavaScript) in die Webseite einfügen. Derselbe Angriff ist auf Web-Services übertragbar, welche über eine REST-Schnittstelle angesprochen werden, ihre Parameter also als Teil der URL übergeben bekommen.
  • Eine Weiterleitungsfunktion akzeptiert beliebige Werte als Zieladresse. In der Folge kann über einen manipulierten Parameter eine Weiterleitung auf nicht vertrauenswürdige Webseiten durch einen Angreifer veranlasst werden (zum Beispiel http://host.tld/redirect.php?target=http://angreifer.tld). Der Benutzer erwartet aufgrund der Ursprungs-Domäne der Webanwendung die Weiterleitung auf eine vertrauenswürdige Adresse. Dies kann von einem Angreifer ausgenutzt werden, um über die Weiterleitung auf eine gefälschte Anmeldeseite zur Eingabe der Zugangsdaten einen Phishing-Angriff zu realisieren.
  • In Webanwendungen können fremde Inhalte von Partnern (zum Beispiel Werbeanzeigen in einem iFrame) eingebunden werden. Die Kontrolle über diese Inhalte liegt üblicherweise beim Partner und nicht beim Betreiber der Webanwendung. Werden Schadsoftware oder unerwünschte Inhalte über den Partner eingebunden, so kann dies den Ruf des Webanwendungs-Betreibers schädigen, da die Inhalte dem Benutzer im Kontext der Webanwendung dargestellt werden. Darüber hinaus können die Clients der Besucher von der Schadsoftware infiziert und somit kompromittiert werden.
  • Über eine Upload-Funktion der Webanwendung lassen sich beliebige Dateien in der Verzeichnisstruktur auf dem Server speichern. Dadurch können gegebenenfalls schadhafte Skripte zur Ausführung auf der Webanwendung gespeichert oder bestehende Dateien (zum Beispiel Konfigurationsdateien) überschrieben werden. Der Upload von großen Mengen an Daten kann auch zu einer Verhinderung des Dienstes führen.
  • In die XML -formatierten Parameter für einen Web-Service werden externe Referenzen eingebettet, zum Beispiel <!DOCTYPE sample PUBLIC "foo" "">. Falls die serverseitige Anwendung bei der Interpretation der Ergebnisse der externen Referenz folgt, kann der Angreifer damit ausgehende IP-Verbindungen vom Server aus initiieren und so entweder den Betrieb stören (Denial-of-Service) oder Informationen über interne Netzstrukturen gewinnen.

Stand: 14. EL Stand 2014