SCW-Symbole
Held-Hintergrund ohne Trennlinie
Blog

코더들이 보안을 정복하다: Share & Learn 시리즈 - 비즈니스 로직 문제

Jaap Karan Singh
Veröffentlicht Mar 28, 2019
Zuletzt aktualisiert am 09. März 2026

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]

Ressourcen anzeigen
Ressourcen anzeigen

코딩 문제가 문제의 일부일 수 있지만 비즈니스 로직 오류는 대부분 앱을 처음 만들 때 설계 결함이나 잘못된 논리적 가정으로 인해 발생합니다.

Sind Sie an weiteren Informationen interessiert?

Jaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

mehr erfahren

Secure Code Warrior ist für Unternehmen da, um den Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Unabhängig davon, ob Sie AppSec-Manager, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind, können wir Ihnen dabei helfen, die Risiken zu reduzieren, die mit unsicherem Code verbunden sind.

Demo-Termin vereinbaren
Freigabeziel:
LinkedIn-MarkenSozialx Logo
Verfasser
Jaap Karan Singh
Veröffentlicht Mar 28, 2019

Jaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

Freigabeziel:
LinkedIn-MarkenSozialx Logo

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]

Ressourcen anzeigen
Ressourcen anzeigen

Um den Bericht herunterzuladen, füllen Sie bitte das folgende Formular aus.

Wir bitten um Ihre Zustimmung, Ihnen Informationen zu unseren Produkten und/oder verwandten Themen der Sicherheitscodierung zukommen zu lassen. Wir behandeln Ihre personenbezogenen Daten stets mit größter Sorgfalt und verkaufen sie niemals zu Marketingzwecken an andere Unternehmen.

Einreichung
scw Erfolgssymbol
scw-Fehlersymbol
Um das Formular zu senden, aktivieren Sie bitte das „Analytics“-Cookie. Nach Abschluss können Sie es jederzeit wieder deaktivieren.

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]

Webinar ansehen
Beginnen
mehr erfahren

Klicken Sie auf den folgenden Link und laden Sie die PDF-Datei dieser Ressource herunter.

Secure Code Warrior ist für Unternehmen da, um den Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Unabhängig davon, ob Sie AppSec-Manager, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind, können wir Ihnen dabei helfen, die Risiken zu reduzieren, die mit unsicherem Code verbunden sind.

Bericht anzeigenDemo-Termin vereinbaren
Ressourcen anzeigen
Freigabeziel:
LinkedIn-MarkenSozialx Logo
Sind Sie an weiteren Informationen interessiert?

Freigabeziel:
LinkedIn-MarkenSozialx Logo
Verfasser
Jaap Karan Singh
Veröffentlicht Mar 28, 2019

Jaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

Freigabeziel:
LinkedIn-MarkenSozialx Logo

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]

Inhaltsverzeichnis

PDF herunterladen
Ressourcen anzeigen
Sind Sie an weiteren Informationen interessiert?

Jaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.

mehr erfahren

Secure Code Warrior ist für Unternehmen da, um den Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Unabhängig davon, ob Sie AppSec-Manager, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind, können wir Ihnen dabei helfen, die Risiken zu reduzieren, die mit unsicherem Code verbunden sind.

Demo-Termin vereinbarenDownload
Freigabeziel:
LinkedIn-MarkenSozialx Logo
Ressourcen-Hub

Hilfreiche Ressourcen für den Einstieg

Weitere Beiträge
Ressourcen-Hub

Hilfreiche Ressourcen für den Einstieg

Weitere Beiträge