
コーダーがセキュリティを征服する OWASP トップ 10 API シリーズ-リソース不足とレート制限
Mit dem Mangel an Ressourcen und der Ratenbegrenzung verhält sich die API-Schwachstelle fast genau so, wie sie im Titel beschrieben wird. Jede API verfügt über begrenzte Ressourcen und Rechenleistung, die ihr je nach Umgebung zur Verfügung stehen. Die meisten müssen auch Anfragen von Benutzern oder anderen Programmen bearbeiten, die sie auffordern, die gewünschte Funktion auszuführen. Diese Schwachstelle tritt auf, wenn zu viele Anfragen gleichzeitig eingehen und die API nicht über genügend Rechenressourcen verfügt, um diese Anfragen zu bearbeiten. Die API kann dann nicht mehr verfügbar sein oder nicht mehr auf neue Anfragen reagieren.
APIs werden anfällig für dieses Problem, wenn ihre Raten- oder Ressourcenlimits nicht korrekt eingestellt sind oder wenn Limits im Code undefiniert bleiben. Eine API kann dann überlastet werden, wenn z. B. ein Unternehmen eine besonders geschäftige Zeit erlebt. Es ist aber auch eine Sicherheitsschwachstelle, da Bedrohungsakteure ungeschützte APIs absichtlich mit Anfragen überlasten können, um Denial-of-Service-Angriffe (DDoS) durchzuführen.
Übrigens, wie geht es Ihnen bisher mit den API gamifizierten Herausforderungen? Wenn Sie Ihre Fähigkeiten im Umgang mit einer ratenbegrenzenden Schwachstelle gleich ausprobieren möchten, treten Sie in die Arena:
Lassen Sie uns ein wenig tiefer gehen.
Was sind einige Beispiele für den Mangel an Ressourcen und die Rate, die die Anfälligkeit der API einschränken?
Es gibt zwei Möglichkeiten, wie sich diese Sicherheitslücke in eine API einschleichen kann. Die erste ist, wenn ein Programmierer einfach nicht definiert, wie hoch die Drosselungsraten für eine API sein sollen. Vielleicht gibt es irgendwo in der Infrastruktur eine Standardeinstellung für Drosselungsraten, aber sich darauf zu verlassen, ist keine gute Strategie. Stattdessen sollten die Raten für jede API individuell festgelegt werden. Dies gilt insbesondere deshalb, weil APIs sehr unterschiedliche Funktionen sowie verfügbare Ressourcen haben können.
Zum Beispiel könnte eine interne API, die nur einige wenige Benutzer bedienen soll, eine sehr niedrige Drosselungsrate haben und problemlos funktionieren. Eine öffentlich zugängliche API, die Teil einer E-Commerce-Website ist, benötigt jedoch höchstwahrscheinlich eine außergewöhnlich hohe Drosselungsrate, um die Möglichkeit eines Anstiegs der gleichzeitigen Benutzer zu kompensieren. In beiden Fällen sollten die Drosselungsraten auf der Grundlage der erwarteten Anforderungen, der Anzahl der potenziellen Benutzer und der verfügbaren Rechenleistung definiert werden.
Besonders bei APIs, die wahrscheinlich sehr stark ausgelastet sind, könnte es verlockend sein, die Preise auf unbegrenzt zu setzen, um die Leistung zu maximieren. Dies könnte mit einem einfachen Stück Code erreicht werden (als Beispiel verwenden wir das Python Django REST Framework):
"DEFAULT_THROTTLE_RATES: {
"anon: None,
"user: None
In diesem Beispiel können sowohl anonyme Benutzer als auch solche, die dem System bekannt sind, die API beliebig oft kontaktieren, ohne Rücksicht auf die Anzahl der Anfragen im Laufe der Zeit. Dies ist eine schlechte Idee, denn egal wie viele Rechenressourcen einer API zur Verfügung stehen, Angreifer können Dinge wie Botnets einsetzen, um sie schließlich zu verlangsamen oder möglicherweise ganz offline zu schalten. Wenn das passiert, wird gültigen Benutzern der Zugriff verweigert und der Angriff ist erfolgreich.
Beseitigung von Ressourcenmangel und ratenbegrenzenden Problemen
Für jede API, die von einer Organisation eingesetzt wird, sollten die Drosselungsraten im Code definiert sein. Dies könnte Dinge wie Ausführungszeitüberschreitungen, den maximal zulässigen Speicher, die Anzahl der Datensätze pro Seite, die an einen Benutzer zurückgegeben werden können, oder die Anzahl der zulässigen Prozesse innerhalb eines bestimmten Zeitrahmens umfassen.
Aus dem obigen Beispiel könnte man, anstatt die Drosselungsraten weit offen zu lassen, sie eng definieren mit unterschiedlichen Raten für anonyme und bekannte Benutzer.
"DEFAULT_THROTTLE_RATES: {
"anon: config("THROTTLE_ANON, default=200/hour),
"user: config("THROTTLE_USER, default=5000/hour)
In dem neuen Beispiel würde die API anonyme Benutzer auf 200 Anfragen pro Stunde beschränken. Bekannte Benutzer, die bereits vom System überprüft wurden, erhalten mit 5.000 Anfragen pro Stunde mehr Spielraum. Aber auch sie sind begrenzt, um eine versehentliche Überlastung zu Spitzenzeiten zu verhindern oder um zu kompensieren, wenn ein Benutzerkonto kompromittiert und für einen Denial-of-Service-Angriff verwendet wird.
Als abschließende gute Praxis ist es eine gute Idee, eine Benachrichtigung für Benutzer anzuzeigen, wenn sie die Drosselungsgrenzen erreicht haben, zusammen mit einer Erklärung, wann diese Grenzen zurückgesetzt werden. Auf diese Weise wissen gültige Benutzer, warum eine Anwendung ihre Anfragen ablehnt. Dies kann auch hilfreich sein, wenn gültigen Benutzern, die genehmigte Aufgaben ausführen, der Zugriff auf eine API verweigert wird, da dies dem Betriebspersonal signalisieren kann, dass die Drosselung erhöht werden muss.
Schauen Sie sich die Secure Code Warrior Blog-Seiten, um mehr über diese Schwachstelle zu erfahren und zu erfahren, wie Sie Ihr Unternehmen und Ihre Kunden vor den Auswirkungen anderer Sicherheitslücken schützen können. Sie können auch eine Demo der Schulungsplattform Secure Code Warrior ausprobieren, um alle Ihre Cybersecurity-Kenntnisse zu schärfen und auf dem neuesten Stand zu halten.


この脆弱性は、同時に受信するリクエストが多すぎて、それらのリクエストを処理するための十分なコンピューティングリソースが API にない場合に発生します。そうすると、API が使用できなくなったり、新しいリクエストに応答しなくなったりする可能性があります。
Dr. Matias Madu ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit mit Schwerpunkt auf statischen Analyselösungen.Anschließend trat er in die Dienste von Fortify in den USA ein und erkannte, dass es nicht ausreicht, nur Code-Probleme zu erkennen, ohne Entwicklern dabei zu helfen, sicheren Code zu schreiben. Dies war der Auslöser dafür, dass er begann, Entwickler zu unterstützen, die Sicherheitslast zu verringern und Produkte zu entwickeln, die die Erwartungen der Kunden übertreffen. Wenn er nicht als Mitglied von Team Awesome an seinem Schreibtisch sitzt, hält er gerne Präsentationen auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

Secure Code Warrior schützt Ihren Code während des gesamten Softwareentwicklungszyklus und hilft Ihnen dabei, eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie Anwendungs-Sicherheitsmanager, Entwickler, CISO oder Sicherheitsbeauftragter sind – wir helfen Ihnen dabei, die mit unsicherem Code verbundenen Risiken zu minimieren.
デモを予約Dr. Matias Madu ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit mit Schwerpunkt auf statischen Analyselösungen.Anschließend trat er in die Dienste von Fortify in den USA ein und erkannte, dass es nicht ausreicht, nur Code-Probleme zu erkennen, ohne Entwicklern dabei zu helfen, sicheren Code zu schreiben. Dies war der Auslöser dafür, dass er begann, Entwickler zu unterstützen, die Sicherheitslast zu verringern und Produkte zu entwickeln, die die Erwartungen der Kunden übertreffen. Wenn er nicht als Mitglied von Team Awesome an seinem Schreibtisch sitzt, hält er gerne Präsentationen auf Konferenzen wie der RSA Conference, BlackHat und DefCon.
Matias ist ein Forscher und Entwickler mit mehr als 15 Jahren praktischer Erfahrung im Bereich Softwaresicherheit. Er hat Lösungen für Unternehmen wie Fortify Software und sein eigenes Unternehmen Sensei Security entwickelt. Im Laufe seiner Karriere hat Matias mehrere Forschungsprojekte zur Anwendungssicherheit geleitet, die zu kommerziellen Produkten geführt haben, und mehr als 10 Patente angemeldet.Wenn er nicht an seinem Schreibtisch sitzt, unterrichtet Matias Fortgeschrittenenkurse zum Thema Anwendungssicherheit und hält regelmäßig Vorträge auf globalen Konferenzen wie der RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec und BruCon.
Matthias promovierte an der Universität Gent in Informatik und lernte dort Anwendungssicherheit durch Programmverschleierung, um die interne Funktionsweise von Anwendungen zu verbergen.


Mit dem Mangel an Ressourcen und der Ratenbegrenzung verhält sich die API-Schwachstelle fast genau so, wie sie im Titel beschrieben wird. Jede API verfügt über begrenzte Ressourcen und Rechenleistung, die ihr je nach Umgebung zur Verfügung stehen. Die meisten müssen auch Anfragen von Benutzern oder anderen Programmen bearbeiten, die sie auffordern, die gewünschte Funktion auszuführen. Diese Schwachstelle tritt auf, wenn zu viele Anfragen gleichzeitig eingehen und die API nicht über genügend Rechenressourcen verfügt, um diese Anfragen zu bearbeiten. Die API kann dann nicht mehr verfügbar sein oder nicht mehr auf neue Anfragen reagieren.
APIs werden anfällig für dieses Problem, wenn ihre Raten- oder Ressourcenlimits nicht korrekt eingestellt sind oder wenn Limits im Code undefiniert bleiben. Eine API kann dann überlastet werden, wenn z. B. ein Unternehmen eine besonders geschäftige Zeit erlebt. Es ist aber auch eine Sicherheitsschwachstelle, da Bedrohungsakteure ungeschützte APIs absichtlich mit Anfragen überlasten können, um Denial-of-Service-Angriffe (DDoS) durchzuführen.
Übrigens, wie geht es Ihnen bisher mit den API gamifizierten Herausforderungen? Wenn Sie Ihre Fähigkeiten im Umgang mit einer ratenbegrenzenden Schwachstelle gleich ausprobieren möchten, treten Sie in die Arena:
Lassen Sie uns ein wenig tiefer gehen.
Was sind einige Beispiele für den Mangel an Ressourcen und die Rate, die die Anfälligkeit der API einschränken?
Es gibt zwei Möglichkeiten, wie sich diese Sicherheitslücke in eine API einschleichen kann. Die erste ist, wenn ein Programmierer einfach nicht definiert, wie hoch die Drosselungsraten für eine API sein sollen. Vielleicht gibt es irgendwo in der Infrastruktur eine Standardeinstellung für Drosselungsraten, aber sich darauf zu verlassen, ist keine gute Strategie. Stattdessen sollten die Raten für jede API individuell festgelegt werden. Dies gilt insbesondere deshalb, weil APIs sehr unterschiedliche Funktionen sowie verfügbare Ressourcen haben können.
Zum Beispiel könnte eine interne API, die nur einige wenige Benutzer bedienen soll, eine sehr niedrige Drosselungsrate haben und problemlos funktionieren. Eine öffentlich zugängliche API, die Teil einer E-Commerce-Website ist, benötigt jedoch höchstwahrscheinlich eine außergewöhnlich hohe Drosselungsrate, um die Möglichkeit eines Anstiegs der gleichzeitigen Benutzer zu kompensieren. In beiden Fällen sollten die Drosselungsraten auf der Grundlage der erwarteten Anforderungen, der Anzahl der potenziellen Benutzer und der verfügbaren Rechenleistung definiert werden.
Besonders bei APIs, die wahrscheinlich sehr stark ausgelastet sind, könnte es verlockend sein, die Preise auf unbegrenzt zu setzen, um die Leistung zu maximieren. Dies könnte mit einem einfachen Stück Code erreicht werden (als Beispiel verwenden wir das Python Django REST Framework):
"DEFAULT_THROTTLE_RATES: {
"anon: None,
"user: None
In diesem Beispiel können sowohl anonyme Benutzer als auch solche, die dem System bekannt sind, die API beliebig oft kontaktieren, ohne Rücksicht auf die Anzahl der Anfragen im Laufe der Zeit. Dies ist eine schlechte Idee, denn egal wie viele Rechenressourcen einer API zur Verfügung stehen, Angreifer können Dinge wie Botnets einsetzen, um sie schließlich zu verlangsamen oder möglicherweise ganz offline zu schalten. Wenn das passiert, wird gültigen Benutzern der Zugriff verweigert und der Angriff ist erfolgreich.
Beseitigung von Ressourcenmangel und ratenbegrenzenden Problemen
Für jede API, die von einer Organisation eingesetzt wird, sollten die Drosselungsraten im Code definiert sein. Dies könnte Dinge wie Ausführungszeitüberschreitungen, den maximal zulässigen Speicher, die Anzahl der Datensätze pro Seite, die an einen Benutzer zurückgegeben werden können, oder die Anzahl der zulässigen Prozesse innerhalb eines bestimmten Zeitrahmens umfassen.
Aus dem obigen Beispiel könnte man, anstatt die Drosselungsraten weit offen zu lassen, sie eng definieren mit unterschiedlichen Raten für anonyme und bekannte Benutzer.
"DEFAULT_THROTTLE_RATES: {
"anon: config("THROTTLE_ANON, default=200/hour),
"user: config("THROTTLE_USER, default=5000/hour)
In dem neuen Beispiel würde die API anonyme Benutzer auf 200 Anfragen pro Stunde beschränken. Bekannte Benutzer, die bereits vom System überprüft wurden, erhalten mit 5.000 Anfragen pro Stunde mehr Spielraum. Aber auch sie sind begrenzt, um eine versehentliche Überlastung zu Spitzenzeiten zu verhindern oder um zu kompensieren, wenn ein Benutzerkonto kompromittiert und für einen Denial-of-Service-Angriff verwendet wird.
Als abschließende gute Praxis ist es eine gute Idee, eine Benachrichtigung für Benutzer anzuzeigen, wenn sie die Drosselungsgrenzen erreicht haben, zusammen mit einer Erklärung, wann diese Grenzen zurückgesetzt werden. Auf diese Weise wissen gültige Benutzer, warum eine Anwendung ihre Anfragen ablehnt. Dies kann auch hilfreich sein, wenn gültigen Benutzern, die genehmigte Aufgaben ausführen, der Zugriff auf eine API verweigert wird, da dies dem Betriebspersonal signalisieren kann, dass die Drosselung erhöht werden muss.
Schauen Sie sich die Secure Code Warrior Blog-Seiten, um mehr über diese Schwachstelle zu erfahren und zu erfahren, wie Sie Ihr Unternehmen und Ihre Kunden vor den Auswirkungen anderer Sicherheitslücken schützen können. Sie können auch eine Demo der Schulungsplattform Secure Code Warrior ausprobieren, um alle Ihre Cybersecurity-Kenntnisse zu schärfen und auf dem neuesten Stand zu halten.

Mit dem Mangel an Ressourcen und der Ratenbegrenzung verhält sich die API-Schwachstelle fast genau so, wie sie im Titel beschrieben wird. Jede API verfügt über begrenzte Ressourcen und Rechenleistung, die ihr je nach Umgebung zur Verfügung stehen. Die meisten müssen auch Anfragen von Benutzern oder anderen Programmen bearbeiten, die sie auffordern, die gewünschte Funktion auszuführen. Diese Schwachstelle tritt auf, wenn zu viele Anfragen gleichzeitig eingehen und die API nicht über genügend Rechenressourcen verfügt, um diese Anfragen zu bearbeiten. Die API kann dann nicht mehr verfügbar sein oder nicht mehr auf neue Anfragen reagieren.
APIs werden anfällig für dieses Problem, wenn ihre Raten- oder Ressourcenlimits nicht korrekt eingestellt sind oder wenn Limits im Code undefiniert bleiben. Eine API kann dann überlastet werden, wenn z. B. ein Unternehmen eine besonders geschäftige Zeit erlebt. Es ist aber auch eine Sicherheitsschwachstelle, da Bedrohungsakteure ungeschützte APIs absichtlich mit Anfragen überlasten können, um Denial-of-Service-Angriffe (DDoS) durchzuführen.
Übrigens, wie geht es Ihnen bisher mit den API gamifizierten Herausforderungen? Wenn Sie Ihre Fähigkeiten im Umgang mit einer ratenbegrenzenden Schwachstelle gleich ausprobieren möchten, treten Sie in die Arena:
Lassen Sie uns ein wenig tiefer gehen.
Was sind einige Beispiele für den Mangel an Ressourcen und die Rate, die die Anfälligkeit der API einschränken?
Es gibt zwei Möglichkeiten, wie sich diese Sicherheitslücke in eine API einschleichen kann. Die erste ist, wenn ein Programmierer einfach nicht definiert, wie hoch die Drosselungsraten für eine API sein sollen. Vielleicht gibt es irgendwo in der Infrastruktur eine Standardeinstellung für Drosselungsraten, aber sich darauf zu verlassen, ist keine gute Strategie. Stattdessen sollten die Raten für jede API individuell festgelegt werden. Dies gilt insbesondere deshalb, weil APIs sehr unterschiedliche Funktionen sowie verfügbare Ressourcen haben können.
Zum Beispiel könnte eine interne API, die nur einige wenige Benutzer bedienen soll, eine sehr niedrige Drosselungsrate haben und problemlos funktionieren. Eine öffentlich zugängliche API, die Teil einer E-Commerce-Website ist, benötigt jedoch höchstwahrscheinlich eine außergewöhnlich hohe Drosselungsrate, um die Möglichkeit eines Anstiegs der gleichzeitigen Benutzer zu kompensieren. In beiden Fällen sollten die Drosselungsraten auf der Grundlage der erwarteten Anforderungen, der Anzahl der potenziellen Benutzer und der verfügbaren Rechenleistung definiert werden.
Besonders bei APIs, die wahrscheinlich sehr stark ausgelastet sind, könnte es verlockend sein, die Preise auf unbegrenzt zu setzen, um die Leistung zu maximieren. Dies könnte mit einem einfachen Stück Code erreicht werden (als Beispiel verwenden wir das Python Django REST Framework):
"DEFAULT_THROTTLE_RATES: {
"anon: None,
"user: None
In diesem Beispiel können sowohl anonyme Benutzer als auch solche, die dem System bekannt sind, die API beliebig oft kontaktieren, ohne Rücksicht auf die Anzahl der Anfragen im Laufe der Zeit. Dies ist eine schlechte Idee, denn egal wie viele Rechenressourcen einer API zur Verfügung stehen, Angreifer können Dinge wie Botnets einsetzen, um sie schließlich zu verlangsamen oder möglicherweise ganz offline zu schalten. Wenn das passiert, wird gültigen Benutzern der Zugriff verweigert und der Angriff ist erfolgreich.
Beseitigung von Ressourcenmangel und ratenbegrenzenden Problemen
Für jede API, die von einer Organisation eingesetzt wird, sollten die Drosselungsraten im Code definiert sein. Dies könnte Dinge wie Ausführungszeitüberschreitungen, den maximal zulässigen Speicher, die Anzahl der Datensätze pro Seite, die an einen Benutzer zurückgegeben werden können, oder die Anzahl der zulässigen Prozesse innerhalb eines bestimmten Zeitrahmens umfassen.
Aus dem obigen Beispiel könnte man, anstatt die Drosselungsraten weit offen zu lassen, sie eng definieren mit unterschiedlichen Raten für anonyme und bekannte Benutzer.
"DEFAULT_THROTTLE_RATES: {
"anon: config("THROTTLE_ANON, default=200/hour),
"user: config("THROTTLE_USER, default=5000/hour)
In dem neuen Beispiel würde die API anonyme Benutzer auf 200 Anfragen pro Stunde beschränken. Bekannte Benutzer, die bereits vom System überprüft wurden, erhalten mit 5.000 Anfragen pro Stunde mehr Spielraum. Aber auch sie sind begrenzt, um eine versehentliche Überlastung zu Spitzenzeiten zu verhindern oder um zu kompensieren, wenn ein Benutzerkonto kompromittiert und für einen Denial-of-Service-Angriff verwendet wird.
Als abschließende gute Praxis ist es eine gute Idee, eine Benachrichtigung für Benutzer anzuzeigen, wenn sie die Drosselungsgrenzen erreicht haben, zusammen mit einer Erklärung, wann diese Grenzen zurückgesetzt werden. Auf diese Weise wissen gültige Benutzer, warum eine Anwendung ihre Anfragen ablehnt. Dies kann auch hilfreich sein, wenn gültigen Benutzern, die genehmigte Aufgaben ausführen, der Zugriff auf eine API verweigert wird, da dies dem Betriebspersonal signalisieren kann, dass die Drosselung erhöht werden muss.
Schauen Sie sich die Secure Code Warrior Blog-Seiten, um mehr über diese Schwachstelle zu erfahren und zu erfahren, wie Sie Ihr Unternehmen und Ihre Kunden vor den Auswirkungen anderer Sicherheitslücken schützen können. Sie können auch eine Demo der Schulungsplattform Secure Code Warrior ausprobieren, um alle Ihre Cybersecurity-Kenntnisse zu schärfen und auf dem neuesten Stand zu halten.

Klicken Sie auf den folgenden Link, um die PDF-Datei dieser Ressource herunterzuladen.
Secure Code Warrior schützt Ihren Code während des gesamten Softwareentwicklungszyklus und hilft Ihnen dabei, eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie Anwendungs-Sicherheitsmanager, Entwickler, CISO oder Sicherheitsbeauftragter sind – wir helfen Ihnen dabei, die mit unsicherem Code verbundenen Risiken zu minimieren.
Bericht anzeigenデモを予約Dr. Matias Madu ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit mit Schwerpunkt auf statischen Analyselösungen.Anschließend trat er in die Dienste von Fortify in den USA ein und erkannte, dass es nicht ausreicht, nur Code-Probleme zu erkennen, ohne Entwicklern dabei zu helfen, sicheren Code zu schreiben. Dies war der Auslöser dafür, dass er begann, Entwickler zu unterstützen, die Sicherheitslast zu verringern und Produkte zu entwickeln, die die Erwartungen der Kunden übertreffen. Wenn er nicht als Mitglied von Team Awesome an seinem Schreibtisch sitzt, hält er gerne Präsentationen auf Konferenzen wie der RSA Conference, BlackHat und DefCon.
Matias ist ein Forscher und Entwickler mit mehr als 15 Jahren praktischer Erfahrung im Bereich Softwaresicherheit. Er hat Lösungen für Unternehmen wie Fortify Software und sein eigenes Unternehmen Sensei Security entwickelt. Im Laufe seiner Karriere hat Matias mehrere Forschungsprojekte zur Anwendungssicherheit geleitet, die zu kommerziellen Produkten geführt haben, und mehr als 10 Patente angemeldet.Wenn er nicht an seinem Schreibtisch sitzt, unterrichtet Matias Fortgeschrittenenkurse zum Thema Anwendungssicherheit und hält regelmäßig Vorträge auf globalen Konferenzen wie der RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec und BruCon.
Matthias promovierte an der Universität Gent in Informatik und lernte dort Anwendungssicherheit durch Programmverschleierung, um die interne Funktionsweise von Anwendungen zu verbergen.
Mit dem Mangel an Ressourcen und der Ratenbegrenzung verhält sich die API-Schwachstelle fast genau so, wie sie im Titel beschrieben wird. Jede API verfügt über begrenzte Ressourcen und Rechenleistung, die ihr je nach Umgebung zur Verfügung stehen. Die meisten müssen auch Anfragen von Benutzern oder anderen Programmen bearbeiten, die sie auffordern, die gewünschte Funktion auszuführen. Diese Schwachstelle tritt auf, wenn zu viele Anfragen gleichzeitig eingehen und die API nicht über genügend Rechenressourcen verfügt, um diese Anfragen zu bearbeiten. Die API kann dann nicht mehr verfügbar sein oder nicht mehr auf neue Anfragen reagieren.
APIs werden anfällig für dieses Problem, wenn ihre Raten- oder Ressourcenlimits nicht korrekt eingestellt sind oder wenn Limits im Code undefiniert bleiben. Eine API kann dann überlastet werden, wenn z. B. ein Unternehmen eine besonders geschäftige Zeit erlebt. Es ist aber auch eine Sicherheitsschwachstelle, da Bedrohungsakteure ungeschützte APIs absichtlich mit Anfragen überlasten können, um Denial-of-Service-Angriffe (DDoS) durchzuführen.
Übrigens, wie geht es Ihnen bisher mit den API gamifizierten Herausforderungen? Wenn Sie Ihre Fähigkeiten im Umgang mit einer ratenbegrenzenden Schwachstelle gleich ausprobieren möchten, treten Sie in die Arena:
Lassen Sie uns ein wenig tiefer gehen.
Was sind einige Beispiele für den Mangel an Ressourcen und die Rate, die die Anfälligkeit der API einschränken?
Es gibt zwei Möglichkeiten, wie sich diese Sicherheitslücke in eine API einschleichen kann. Die erste ist, wenn ein Programmierer einfach nicht definiert, wie hoch die Drosselungsraten für eine API sein sollen. Vielleicht gibt es irgendwo in der Infrastruktur eine Standardeinstellung für Drosselungsraten, aber sich darauf zu verlassen, ist keine gute Strategie. Stattdessen sollten die Raten für jede API individuell festgelegt werden. Dies gilt insbesondere deshalb, weil APIs sehr unterschiedliche Funktionen sowie verfügbare Ressourcen haben können.
Zum Beispiel könnte eine interne API, die nur einige wenige Benutzer bedienen soll, eine sehr niedrige Drosselungsrate haben und problemlos funktionieren. Eine öffentlich zugängliche API, die Teil einer E-Commerce-Website ist, benötigt jedoch höchstwahrscheinlich eine außergewöhnlich hohe Drosselungsrate, um die Möglichkeit eines Anstiegs der gleichzeitigen Benutzer zu kompensieren. In beiden Fällen sollten die Drosselungsraten auf der Grundlage der erwarteten Anforderungen, der Anzahl der potenziellen Benutzer und der verfügbaren Rechenleistung definiert werden.
Besonders bei APIs, die wahrscheinlich sehr stark ausgelastet sind, könnte es verlockend sein, die Preise auf unbegrenzt zu setzen, um die Leistung zu maximieren. Dies könnte mit einem einfachen Stück Code erreicht werden (als Beispiel verwenden wir das Python Django REST Framework):
"DEFAULT_THROTTLE_RATES: {
"anon: None,
"user: None
In diesem Beispiel können sowohl anonyme Benutzer als auch solche, die dem System bekannt sind, die API beliebig oft kontaktieren, ohne Rücksicht auf die Anzahl der Anfragen im Laufe der Zeit. Dies ist eine schlechte Idee, denn egal wie viele Rechenressourcen einer API zur Verfügung stehen, Angreifer können Dinge wie Botnets einsetzen, um sie schließlich zu verlangsamen oder möglicherweise ganz offline zu schalten. Wenn das passiert, wird gültigen Benutzern der Zugriff verweigert und der Angriff ist erfolgreich.
Beseitigung von Ressourcenmangel und ratenbegrenzenden Problemen
Für jede API, die von einer Organisation eingesetzt wird, sollten die Drosselungsraten im Code definiert sein. Dies könnte Dinge wie Ausführungszeitüberschreitungen, den maximal zulässigen Speicher, die Anzahl der Datensätze pro Seite, die an einen Benutzer zurückgegeben werden können, oder die Anzahl der zulässigen Prozesse innerhalb eines bestimmten Zeitrahmens umfassen.
Aus dem obigen Beispiel könnte man, anstatt die Drosselungsraten weit offen zu lassen, sie eng definieren mit unterschiedlichen Raten für anonyme und bekannte Benutzer.
"DEFAULT_THROTTLE_RATES: {
"anon: config("THROTTLE_ANON, default=200/hour),
"user: config("THROTTLE_USER, default=5000/hour)
In dem neuen Beispiel würde die API anonyme Benutzer auf 200 Anfragen pro Stunde beschränken. Bekannte Benutzer, die bereits vom System überprüft wurden, erhalten mit 5.000 Anfragen pro Stunde mehr Spielraum. Aber auch sie sind begrenzt, um eine versehentliche Überlastung zu Spitzenzeiten zu verhindern oder um zu kompensieren, wenn ein Benutzerkonto kompromittiert und für einen Denial-of-Service-Angriff verwendet wird.
Als abschließende gute Praxis ist es eine gute Idee, eine Benachrichtigung für Benutzer anzuzeigen, wenn sie die Drosselungsgrenzen erreicht haben, zusammen mit einer Erklärung, wann diese Grenzen zurückgesetzt werden. Auf diese Weise wissen gültige Benutzer, warum eine Anwendung ihre Anfragen ablehnt. Dies kann auch hilfreich sein, wenn gültigen Benutzern, die genehmigte Aufgaben ausführen, der Zugriff auf eine API verweigert wird, da dies dem Betriebspersonal signalisieren kann, dass die Drosselung erhöht werden muss.
Schauen Sie sich die Secure Code Warrior Blog-Seiten, um mehr über diese Schwachstelle zu erfahren und zu erfahren, wie Sie Ihr Unternehmen und Ihre Kunden vor den Auswirkungen anderer Sicherheitslücken schützen können. Sie können auch eine Demo der Schulungsplattform Secure Code Warrior ausprobieren, um alle Ihre Cybersecurity-Kenntnisse zu schärfen und auf dem neuesten Stand zu halten.
目次
Dr. Matias Madu ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit mit Schwerpunkt auf statischen Analyselösungen.Anschließend trat er in die Dienste von Fortify in den USA ein und erkannte, dass es nicht ausreicht, nur Code-Probleme zu erkennen, ohne Entwicklern dabei zu helfen, sicheren Code zu schreiben. Dies war der Auslöser dafür, dass er begann, Entwickler zu unterstützen, die Sicherheitslast zu verringern und Produkte zu entwickeln, die die Erwartungen der Kunden übertreffen. Wenn er nicht als Mitglied von Team Awesome an seinem Schreibtisch sitzt, hält er gerne Präsentationen auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

Secure Code Warrior schützt Ihren Code während des gesamten Softwareentwicklungszyklus und hilft Ihnen dabei, eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Ganz gleich, ob Sie Anwendungs-Sicherheitsmanager, Entwickler, CISO oder Sicherheitsbeauftragter sind – wir helfen Ihnen dabei, die mit unsicherem Code verbundenen Risiken zu minimieren.
デモを予約[ダウンロード]Ressourcen für den Einstieg
Themen und Inhalte der Secure-Code-Schulung
Unsere branchenführenden Inhalte werden unter Berücksichtigung der Aufgaben unserer Kunden ständig weiterentwickelt, um mit der sich ständig verändernden Softwareentwicklungsumgebung Schritt zu halten. Sie decken alle Themen von KI bis hin zu XQuery-Injection ab und sind für verschiedene Aufgabenbereiche konzipiert, von Architekten und Ingenieuren bis hin zu Produktmanagern und Qualitätssicherungsfachleuten. Werfen Sie einen Blick auf die Inhalte unseres Content-Katalogs, sortiert nach Themen und Aufgabenbereichen.
Die Kamer van Koophandel setzt Maßstäbe für entwicklergesteuerte Sicherheit in großem Maßstab
Die Kamer van Koophandel berichtet, wie sie sicheres Codieren durch rollenbasierte Zertifizierungen, Trust Score-Benchmarking und eine Kultur der gemeinsamen Verantwortung für Sicherheit in die tägliche Entwicklungsarbeit integriert hat.
Bedrohungsmodellierung mit KI: So wird jeder Entwickler zum Bedrohungsmodellierer
Sie werden besser gerüstet sein, um Entwicklern dabei zu helfen, Ideen und Techniken zur Bedrohungsmodellierung mit den KI-Tools zu kombinieren, die sie bereits verwenden, um die Sicherheit zu erhöhen, die Zusammenarbeit zu verbessern und von Anfang an widerstandsfähigere Software zu entwickeln.
Ressourcen für den Einstieg
Cybermon ist zurück: Die KI-Mission zum Besiegen des Bosses ist jetzt auf Abruf verfügbar.
「Cybermon 2025 Beat the Boss」 kann nun das ganze Jahr über bei SCW gespielt werden. Führen Sie anspruchsvolle AI/LLM-Sicherheitsherausforderungen ein, um die sichere AI-Entwicklung in großem Maßstab zu stärken.
Erläuterung des Cyber-Resilience-Gesetzes: Bedeutung für die Entwicklung sicherer Software
Erfahren Sie, was das EU-Gesetz zur Cyberresilienz (CRA) verlangt, für wen es gilt und wie sich Ingenieurteams auf Secure-by-Design-Praktiken, Schwachstellenprävention und die Kompetenzentwicklung von Entwicklern vorbereiten können.
Enabler 1: Definierte und messbare Erfolgskriterien
Enabler 1 ist der erste Teil der zehnteiligen Reihe „Enablers of Success“ und zeigt, wie sichere Programmierung mit geschäftlichen Ergebnissen wie Risikominderung und Geschwindigkeit verknüpft werden kann, um Programme langfristig zu optimieren.




%20(1).avif)
.avif)
