G 5.167 Fehler in der Logik von Webanwendungen
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.
Werden solche logischen Abläufe bei sicherheitsrelevanten Funktionen der Webanwendung verwendet, wie z. B. bei der Authentisierung von Benutzern, kann dieser unvorhergesehen manipuliert (z. B. 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 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.