© DrHitch/Shutterstock.com
Angriffsziel UI

1 Angriffe über Logikfehler


Logikfehler sind äußerst unschön. Das fängt schon mit ihrer Beschreibung an, die allgemein gehalten gar nicht einfach ist. Beim Auftreten eines Logikfehlers verhält sich die Anwendung in einem bestimmten Status anders, als eigentlich erwartet wird. Zum Beispiel könnte ein Logikfehler dazu führen, dass der Arbeitsfluss manipuliert und ein eigentlich notwendiger Schritt übersprungen werden kann. Solche Schwachstellen entstehen meist, weil bei der Entwicklung mögliche externe Einflüsse (und insbesondere keine absichtlichen, bösartigen Manipulationen) auf den Ausführungspfad gar nicht oder zumindest nicht ausreichend berücksichtigt wurden.

Der Preis kann geändert werden

Ein klassisches Beispiel ist ein Bestellvorgang, bei dem der Preis der Ware manipuliert werden kann. Es ist normal, dass der Server den Preis an den Client sendet, er muss dem Kunden ja angezeigt werden. Wird er bei der Bestellung aber als versteckter Parameter zurück an den Server übertragen, ist das verdächtig. Wieso sollte der Client dem Server den Preis mitteilen, den der doch kennt? Mit etwas Glück ist das nur eine überflüssige Datenübertragung. Es kann aber auch eine gefährliche Schwachstelle dahinter stecken, und zwar wenn dieser manipulierte Preis von der Webanwendung für den weiteren Bestellablauf verwendet wird. Wenn die Waren dann ohne weitere Prüfung ausgeliefert werden, kann das für den Shopbetreiber teuer werden.

Ja, wo stecken sie denn?

Für die Erkennung von Logikfehlern ist das Verständnis der Anwendung nötig, sie lassen sich daher im Allgemeinen mit automatisierten Tools nicht erkennen. Denn kein noch so aufwändig programmiertes Tool kann erkennen, ob ein Schritt in einem Arbeitsablauf übersprungen werden kann/darf oder nicht. Logikfehler können daher nur durch manuelle Tests gefunden werden. Und da dabei alle Schritte zumindest aller potenziell gefährlichen Arbeitsabläufe meist mehrmals durchlaufen werden müssen, ist das aufwändig und fehleranfällig.

Von der Theorie zum praktischen Beispiel

Das obige Beispiel ist schön, aber auch einfach. Wie wäre es mit einem etwas komplizierteren? Vielleicht erinnern Sie sich noch an die kleine Webanwendung, die in den vorherigen Folgen des Securityworkshops als Beispiel diente. Wenn nicht, ist es auch nicht schlimm. Die Anwendung dient nur dazu, Texte zu erfassen und wieder auszugeben, außerdem gibt es eine rudimentäre Benutzerverwaltung, die zwischen normalen Benutzern (die Texte nur lesen dürfen), Autoren (die Texte auch verfassen und ei...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang