Coders Conquer Security: Share & Learn Series - Business Logic Problems
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]
Obwohl Codierungsprobleme Teil des Problems sein können, sind Fehler in der Geschäftslogik am häufigsten das Ergebnis von Designfehlern oder falschen logischen Annahmen bei der ersten Erstellung einer App.
Jaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenJaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
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]
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]
Klicken Sie auf den unten stehenden Link und laden Sie die PDF-Datei dieser Ressource herunter.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Bericht ansehenDemo buchenJaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
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]
Inhaltsübersicht
Jaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenHerunterladenRessourcen für den Einstieg
Benchmarking von Sicherheitskompetenzen: Optimierung von Secure-by-Design im Unternehmen
Die Secure-by-Design-Bewegung ist die Zukunft der sicheren Softwareentwicklung. Erfahren Sie mehr über die wichtigsten Elemente, die Unternehmen berücksichtigen müssen, wenn sie über eine Secure-by-Design-Initiative nachdenken.
DigitalOcean verringert Sicherheitsverschuldung mit Secure Code Warrior
DigitalOceans Einsatz von Secure Code Warrior hat die Sicherheitsverschuldung deutlich reduziert, so dass sich die Teams stärker auf Innovation und Produktivität konzentrieren können. Die verbesserte Sicherheit hat die Produktqualität und den Wettbewerbsvorteil des Unternehmens gestärkt. Mit Blick auf die Zukunft wird der SCW Trust Score dem Unternehmen helfen, seine Sicherheitspraktiken weiter zu verbessern und Innovationen voranzutreiben.
Ressourcen für den Einstieg
Trust Score zeigt den Wert von Secure-by-Design-Upskilling-Initiativen
Unsere Forschung hat gezeigt, dass Schulungen für sicheren Code funktionieren. Trust Score verwendet einen Algorithmus, der auf mehr als 20 Millionen Lerndaten aus der Arbeit von mehr als 250.000 Lernenden in über 600 Organisationen basiert, und zeigt, wie effektiv die Initiative ist, um Schwachstellen zu beseitigen und wie man sie noch effektiver gestalten kann.
Reaktive versus präventive Sicherheit: Prävention ist das bessere Heilmittel
Der Gedanke, Legacy-Code und -Systeme zur gleichen Zeit wie neuere Anwendungen mit präventiver Sicherheit auszustatten, kann entmutigend erscheinen, aber ein Secure-by-Design-Ansatz, der durch die Weiterbildung von Entwicklern durchgesetzt wird, kann die besten Sicherheitsverfahren auf diese Systeme anwenden. Dies ist für viele Unternehmen die beste Chance, ihre Sicherheitslage zu verbessern.
Die Vorteile eines Benchmarking der Sicherheitskompetenzen von Entwicklern
Der zunehmende Fokus auf sicheren Code und Secure-by-Design-Prinzipien erfordert, dass Entwickler von Beginn des SDLC an in Cybersicherheit geschult werden, wobei Tools wie Secure Code Warrior's Trust Score dabei helfen, ihre Fortschritte zu messen und zu verbessern.
Wesentlicher Erfolg für Enterprise Secure-by-Design-Initiativen
Unser jüngstes Forschungspapier „Benchmarking Security Skills: Streamlining Secure-by-Design in the Enterprise“ ist das Ergebnis einer umfassenden Analyse echter Secure-by-Design-Initiativen auf Unternehmensebene und der Ableitung von Best-Practice-Ansätzen auf Grundlage datengesteuerter Erkenntnisse.