Coders Conquer Security: Share & Learn Series - Business Logic Problems

Veröffentlicht Mar 28, 2019
von Jaap Karan Singh
FALLSTUDIE

Coders Conquer Security: Share & Learn Series - Business Logic Problems

Veröffentlicht Mar 28, 2019
von Jaap Karan Singh
Ressource anzeigen
Ressource anzeigen

Im Gegensatz zu den meisten anderen Schwachstellen, die wir in dieser Share & Learn-Reihe behandelt haben, sind Probleme mit der Geschäftslogik nicht direkt mit Codierungsfehlern verbunden. Obwohl Codierungsprobleme Teil des Problems sein können, sind Geschäftslogikfehler am häufigsten das Ergebnis von Designfehlern oder falschen logischen Annahmen bei der ersten Erstellung einer App.

Probleme mit der Geschäftslogik können auftreten, wenn ein Benutzer bei der Verwendung einer Anwendung eine unerwartete Aktion ausführt. Das kann fast alles sein - von der unerwarteten Stornierung einer Bestellung über die zu häufige Anwendung eines Gutscheincodes bis hin zum einfachen Überspringen eines erwarteten Schritts und einer Aktion, die die Anwendung nicht zu bewältigen weiß. Für das Ausnutzen von Fehlern in der Geschäftslogik ist nicht einmal eine Schulung erforderlich, sondern nur ein böswilliger Benutzer mit einem wissbegierigen Geist, der bereit ist, über den Tellerrand zu schauen.

In dieser Folge lernen wir:

  • Wie Angreifer Schwachstellen in der Geschäftslogik ausnutzen
  • Warum Anwendungen mit Fehlern in der Geschäftslogik gefährlich sind
  • Techniken, die Fehler in der Geschäftslogik verhindern können.

Wie nutzen Angreifer Probleme in der Geschäftslogik aus?

Im Gegensatz zu den meisten Exploits können wir nicht auf bestimmte Code-Strings hinweisen, die diese Schwachstelle verursachen könnten. Stattdessen kommt es darauf an, dass Benutzer Aktionen ausführen, die nicht vorhergesehen wurden und mit denen die Programme nicht umgehen können. Nehmen wir als Beispiel an, dass eine Bankanwendung es Benutzern ermöglicht, Geld auf andere Konten zu überweisen. Doch anstatt Geld zu überweisen, versucht ein böswilliger Benutzer, einen negativen Betrag auf ein anderes Konto zu überweisen. Wie wird die Bankanwendung reagieren? Wird sie abstürzen? Wird sie die Überweisung verweigern? Oder schickt sie vielleicht sogar Geld an den Benutzer zurück, der die Überweisung initiiert hat, um den negativen Betrag auszugleichen?

E-Commerce-Websites sind besonders, wenn auch nicht ausschließlich, anfällig für Fehler in der Geschäftslogik, da sie für die Interaktion mit vielen Benutzern konzipiert sind und viele Komponenten haben. Benutzer, die Bestellungen unerwartet stornieren, versuchen, einzelne Gutscheine mehrfach anzuwenden, oder sogar ihre Einkaufswagen überladen, können Anwendungen vor Bedingungen stellen, die nicht vorhergesehen wurden. Es gibt wirklich keine Möglichkeit zu wissen, wie ein Programm reagieren wird, wenn es mit einer unbekannten Situation konfrontiert wird. Im besten Fall wird eine Fehlermeldung generiert, aber es gibt keine Garantie dafür, dass eine App nicht eine noch schlimmere Aktion durchführt, wie z. B. das kostenlose Anbieten von Waren.

Warum sind Business-Logik-Probleme gefährlich?

Probleme in der Geschäftslogik können extrem gefährlich sein, weil sie von jedem ausgenutzt werden können, sogar von jemandem, der keine Programmier- oder Hackerausbildung hat. Es erfordert wirklich nur Experimentierfreude und Zeit, herumzuklicken und zu versuchen, Fehler in der Art und Weise zu finden, wie eine Anwendung reagieren soll. Und sobald ein böswilliger Benutzer eine Schwachstelle in der Geschäftslogik einer Website entdeckt, können Sie darauf wetten, dass er sie so weit wie möglich ausnutzen wird.

Die größte Gefahr ist normalerweise finanzieller Natur, wenn ein Benutzer 20 Großbildfernseher kauft, ohne dafür zu bezahlen, oder etwas Ähnliches. Aber Fehler in der Geschäftslogik können auch andere Probleme verursachen. Wenn z. B. die Kennwortfunktion, die eine Website schützt, nicht weiß, was zu tun ist, wenn ein Benutzer ständig auf "Abbrechen" drückt, könnte sie ihn den Anmeldevorgang ganz umgehen lassen.

Es gibt wirklich keine Möglichkeit, vorherzusehen, wie viel Schaden ein Problem mit der Geschäftslogik anrichten könnte. Oft kommt der erste Hinweis auf ein Problem lange nachdem die Benutzer es ausgenutzt haben.

Probleme mit der Geschäftslogik beheben

Leider hilft der Einsatz gängiger Tools wie Schwachstellen-Scanner nicht dabei, Probleme mit der Geschäftslogik zu identifizieren oder zu beheben, da sich das Testen auf Probleme mit der Geschäftslogik nicht einfach automatisieren lässt. Der beste Weg, sie zu vermeiden, ist die Implementierung einer guten Planung, Fehlerbehandlung und Prüfung für negative Testfälle während der Entwicklung einer Anwendung. Dies erfordert zunächst einen klar definierten Satz von Geschäftsregeln, der alle möglichen und gewünschten Aktionen enthält, die eine Anwendung ausführen soll.

Eine der besten Möglichkeiten, um zu verhindern, dass sich Fehler in der Geschäftslogik einschleichen, besteht darin, ein Flussdiagramm zu erstellen, das alle möglichen Wege aufzeigt, auf denen Daten und Transaktionen innerhalb einer Anwendung fließen sollen. Dazu gehört die Modellierung des Verhaltens für jede Instanz, in der ein Benutzer eine Auswahl treffen oder Daten eingeben kann. Überprüfen Sie ständig, ob die möglichen Aktionen im Flussdiagramm mit den Funktionen im Geschäftsregelplan übereinstimmen.

Verwenden Sie schließlich die Bedrohungsmodellierung, um Schwachstellen in der Geschäftslogik während der Entwurfs-, Implementierungs- und Testphasen zu identifizieren. Erstellen Sie als Ausfallsicherung eine Aktion, die das Programm ausführen soll, wenn es auf eine Situation stößt, die nicht ausdrücklich vorhergesehen wurde. Dies könnte so einfach sein wie die Verweigerung der Aktion und die Benachrichtigung eines Administrators über das aufgetretene Problem.

Weitere Informationen zu Business Logic Problems

Für weitere Lektüre können Sie einen Blick auf die OWASP-Seiten zu Problemen mit der Geschäftslogik werfen. Sie können Ihr neu erworbenes Verteidigungswissen auch mit der kostenlosen Demo der Plattform Secure Code Warrior testen, die Cybersecurity-Teams zu den ultimativen Cyber-Kriegern ausbildet. Um mehr über die Beseitigung dieser Schwachstelle und eine Schurkengalerie anderer Bedrohungen zu erfahren, besuchen Sie den BlogSecure Code Warrior .

Sind Sie bereit, jetzt Schwachstellen in der Geschäftslogik zu suchen und zu beseitigen? Gehen Sie auf die Plattform und testen Sie Ihre Fähigkeiten: [Hier starten]

Ressource anzeigen
Ressource anzeigen

Autor

Jaap Karan Singh

Sie wollen mehr?

Tauchen Sie ein in unsere neuesten Erkenntnisse über sichere Kodierung im Blog.

Unsere umfangreiche Ressourcenbibliothek zielt darauf ab, die menschliche Herangehensweise an eine sichere Weiterbildung im Bereich der Programmierung zu stärken.

Blog ansehen
Sie wollen mehr?

Holen Sie sich die neuesten Forschungsergebnisse zur entwicklergesteuerten Sicherheit

Unsere umfangreiche Ressourcenbibliothek ist voll von hilfreichen Ressourcen, von Whitepapers bis hin zu Webinaren, die Ihnen den Einstieg in die entwicklungsorientierte sichere Programmierung erleichtern. Erforschen Sie sie jetzt.

Ressourcendrehscheibe

Coders Conquer Security: Share & Learn Series - Business Logic Problems

Veröffentlicht Mar 28, 2019
Von Jaap Karan Singh

Im Gegensatz zu den meisten anderen Schwachstellen, die wir in dieser Share & Learn-Reihe behandelt haben, sind Probleme mit der Geschäftslogik nicht direkt mit Codierungsfehlern verbunden. Obwohl Codierungsprobleme Teil des Problems sein können, sind Geschäftslogikfehler am häufigsten das Ergebnis von Designfehlern oder falschen logischen Annahmen bei der ersten Erstellung einer App.

Probleme mit der Geschäftslogik können auftreten, wenn ein Benutzer bei der Verwendung einer Anwendung eine unerwartete Aktion ausführt. Das kann fast alles sein - von der unerwarteten Stornierung einer Bestellung über die zu häufige Anwendung eines Gutscheincodes bis hin zum einfachen Überspringen eines erwarteten Schritts und einer Aktion, die die Anwendung nicht zu bewältigen weiß. Für das Ausnutzen von Fehlern in der Geschäftslogik ist nicht einmal eine Schulung erforderlich, sondern nur ein böswilliger Benutzer mit einem wissbegierigen Geist, der bereit ist, über den Tellerrand zu schauen.

In dieser Folge lernen wir:

  • Wie Angreifer Schwachstellen in der Geschäftslogik ausnutzen
  • Warum Anwendungen mit Fehlern in der Geschäftslogik gefährlich sind
  • Techniken, die Fehler in der Geschäftslogik verhindern können.

Wie nutzen Angreifer Probleme in der Geschäftslogik aus?

Im Gegensatz zu den meisten Exploits können wir nicht auf bestimmte Code-Strings hinweisen, die diese Schwachstelle verursachen könnten. Stattdessen kommt es darauf an, dass Benutzer Aktionen ausführen, die nicht vorhergesehen wurden und mit denen die Programme nicht umgehen können. Nehmen wir als Beispiel an, dass eine Bankanwendung es Benutzern ermöglicht, Geld auf andere Konten zu überweisen. Doch anstatt Geld zu überweisen, versucht ein böswilliger Benutzer, einen negativen Betrag auf ein anderes Konto zu überweisen. Wie wird die Bankanwendung reagieren? Wird sie abstürzen? Wird sie die Überweisung verweigern? Oder schickt sie vielleicht sogar Geld an den Benutzer zurück, der die Überweisung initiiert hat, um den negativen Betrag auszugleichen?

E-Commerce-Websites sind besonders, wenn auch nicht ausschließlich, anfällig für Fehler in der Geschäftslogik, da sie für die Interaktion mit vielen Benutzern konzipiert sind und viele Komponenten haben. Benutzer, die Bestellungen unerwartet stornieren, versuchen, einzelne Gutscheine mehrfach anzuwenden, oder sogar ihre Einkaufswagen überladen, können Anwendungen vor Bedingungen stellen, die nicht vorhergesehen wurden. Es gibt wirklich keine Möglichkeit zu wissen, wie ein Programm reagieren wird, wenn es mit einer unbekannten Situation konfrontiert wird. Im besten Fall wird eine Fehlermeldung generiert, aber es gibt keine Garantie dafür, dass eine App nicht eine noch schlimmere Aktion durchführt, wie z. B. das kostenlose Anbieten von Waren.

Warum sind Business-Logik-Probleme gefährlich?

Probleme in der Geschäftslogik können extrem gefährlich sein, weil sie von jedem ausgenutzt werden können, sogar von jemandem, der keine Programmier- oder Hackerausbildung hat. Es erfordert wirklich nur Experimentierfreude und Zeit, herumzuklicken und zu versuchen, Fehler in der Art und Weise zu finden, wie eine Anwendung reagieren soll. Und sobald ein böswilliger Benutzer eine Schwachstelle in der Geschäftslogik einer Website entdeckt, können Sie darauf wetten, dass er sie so weit wie möglich ausnutzen wird.

Die größte Gefahr ist normalerweise finanzieller Natur, wenn ein Benutzer 20 Großbildfernseher kauft, ohne dafür zu bezahlen, oder etwas Ähnliches. Aber Fehler in der Geschäftslogik können auch andere Probleme verursachen. Wenn z. B. die Kennwortfunktion, die eine Website schützt, nicht weiß, was zu tun ist, wenn ein Benutzer ständig auf "Abbrechen" drückt, könnte sie ihn den Anmeldevorgang ganz umgehen lassen.

Es gibt wirklich keine Möglichkeit, vorherzusehen, wie viel Schaden ein Problem mit der Geschäftslogik anrichten könnte. Oft kommt der erste Hinweis auf ein Problem lange nachdem die Benutzer es ausgenutzt haben.

Probleme mit der Geschäftslogik beheben

Leider hilft der Einsatz gängiger Tools wie Schwachstellen-Scanner nicht dabei, Probleme mit der Geschäftslogik zu identifizieren oder zu beheben, da sich das Testen auf Probleme mit der Geschäftslogik nicht einfach automatisieren lässt. Der beste Weg, sie zu vermeiden, ist die Implementierung einer guten Planung, Fehlerbehandlung und Prüfung für negative Testfälle während der Entwicklung einer Anwendung. Dies erfordert zunächst einen klar definierten Satz von Geschäftsregeln, der alle möglichen und gewünschten Aktionen enthält, die eine Anwendung ausführen soll.

Eine der besten Möglichkeiten, um zu verhindern, dass sich Fehler in der Geschäftslogik einschleichen, besteht darin, ein Flussdiagramm zu erstellen, das alle möglichen Wege aufzeigt, auf denen Daten und Transaktionen innerhalb einer Anwendung fließen sollen. Dazu gehört die Modellierung des Verhaltens für jede Instanz, in der ein Benutzer eine Auswahl treffen oder Daten eingeben kann. Überprüfen Sie ständig, ob die möglichen Aktionen im Flussdiagramm mit den Funktionen im Geschäftsregelplan übereinstimmen.

Verwenden Sie schließlich die Bedrohungsmodellierung, um Schwachstellen in der Geschäftslogik während der Entwurfs-, Implementierungs- und Testphasen zu identifizieren. Erstellen Sie als Ausfallsicherung eine Aktion, die das Programm ausführen soll, wenn es auf eine Situation stößt, die nicht ausdrücklich vorhergesehen wurde. Dies könnte so einfach sein wie die Verweigerung der Aktion und die Benachrichtigung eines Administrators über das aufgetretene Problem.

Weitere Informationen zu Business Logic Problems

Für weitere Lektüre können Sie einen Blick auf die OWASP-Seiten zu Problemen mit der Geschäftslogik werfen. Sie können Ihr neu erworbenes Verteidigungswissen auch mit der kostenlosen Demo der Plattform Secure Code Warrior testen, die Cybersecurity-Teams zu den ultimativen Cyber-Kriegern ausbildet. Um mehr über die Beseitigung dieser Schwachstelle und eine Schurkengalerie anderer Bedrohungen zu erfahren, besuchen Sie den BlogSecure Code Warrior .

Sind Sie bereit, jetzt Schwachstellen in der Geschäftslogik zu suchen und zu beseitigen? Gehen Sie auf die Plattform und testen Sie Ihre Fähigkeiten: [Hier starten]

Wir bitten Sie um Ihre Erlaubnis, Ihnen Informationen über unsere Produkte und/oder verwandte Themen der sicheren Codierung zuzusenden. Wir werden Ihre persönlichen Daten immer mit äußerster Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Um das Formular abzuschicken, aktivieren Sie bitte "Analytics"-Cookies. Sie können die Cookies wieder deaktivieren, sobald Sie fertig sind.