Bundesamt für Sicherheit in der Informationstechnik

G 5.167 Fehler in der Logik von Webanwendungen und Web-Services

Damit Geschäftsprozesse von einer Webanwendung abgebildet werden können, werden in der Regel einzelne Funktionen zu einer komplexen Anwendungslogik zusammengefasst. Dabei ist es für einen Prozess entscheidend, in welcher Reihenfolge die einzelnen Funktionen oder Prozessschritte aufgerufen werden. In einer Service-orientierten Architektur beschreibt der Begriff "Orchestrierung" die Zusammenstellung einzelner Web-Services. In der Orchestrierung werden die logische Abfolge der Web-Services sowie die Bedingungen zum Aufruf und sämtliche Abhängigkeiten der einzelnen Services untereinander definiert.

Werden solche logischen Abläufe bei sicherheitsrelevanten Funktionen verwendet, wie zum Beispiel bei der Authentisierung von Benutzern, kann dieser Ablauf unvorhergesehen manipuliert (zum Beispiel durch Übergehen von Einzelschritten) und somit gesteuert werden. Einem Angreifer ist es so unter Umständen möglich, den Sicherheitsmechanismus zu umgehen.

Darüber hinaus können schadhafte Aktionen auch ausgelöst werden, wenn Funktionen der Webanwendung oder des Web-Service für nicht vorgesehene Zwecke verwendet werden können. Beispielsweise kann ein Kontaktformular einer Webanwendung zum Versand von SPAM missbraucht werden, wenn die vorgegebene Kontaktadresse des Formulars geändert werden kann.

Weitere Beispiele:

  • Eine Webanwendung hat ein Eingabefeld, das auf eine Länge von 20 Zeichen begrenzt werden soll. Die Eingabedaten dieses Feldes werden von der Webanwendung zusätzlich gefiltert. Dabei ist die Filterung der Eingabedaten rechenintensiver als die Prüfung der Länge der Zeichenkette. Findet die aufwendigere Filterung vor der Längenprüfung statt, kann ein Angreifer das Feld mit einer sehr langen Zeichenkette füllen, die von der ressourcenintensiven Filterkomponente verarbeitet wird. Damit kann aufgrund der Prüfreihenfolge ein hoher Ressourcenverbrauch provoziert werden, der für Denial-of-Service-Angriffe ausgenutzt werden kann.
  • In einem Online-Shop wird ein Preisnachlass gewährt, wenn ein bestimmtes Produkt (Produkt X) bestellt wird. Ein Käufer möchte allerdings nicht Produkt X kaufen, sondern Produkt Y. Indem der Käufer sowohl Produkt X als auch Produkt Y zu seinem Warenkorb hinzufügt, wird der Preisnachlass gewährt. Der Zahlungsvorgang wird allerdings durch den Benutzer abgebrochen und Produkt X aus dem Warenkorb entfernt. Somit besteht kein Anspruch mehr auf einen Preisnachlass. Trotzdem wird dieser auf das Produkt Y nach einem erneuten Wechsel in den Zahlungsprozess gewährt. Aufgrund einer fehlenden Abschlussprüfung der Kriterien für den Preisnachlass kann demzufolge ein Betrüger den Kaufpreis für Produkt Y unbefugt ändern.
  • Ein Angreifer verändert bei einem Web-Service Routing-Regeln und Funktionen zum Informationsaustausch, so dass eine Durchführung der abgebildeten Geschäftsprozesse verhindert wird oder vertrauliche Nachrichten an nicht-vertrauenswürdige Systeme weitergeleitet werden. Die durch die Orchestrierung abgebildete Logik in den Geschäftsprozessen kann nicht mehr sichergestellt werden und erweist sich als fehlerhaft. Informationen können falsch oder unvollständig beim Web-Service-Client ankommen.

Stand: 14. EL Stand 2014