Verfügbarkeit und Missbrauch
Eine App, die sich mühelos lahmlegen lässt, oder bei der ein einzelner Aufrufer Ihre Rechnung in die Höhe treibt, hat ein Sicherheitsproblem, auch wenn keine Daten abfließen. Dieses Kapitel befasst sich damit, wie viel ein einzelner Client verbrauchen kann, und begrenzt das.
Checkliste
- Jeden Endpunkt rate-limiten, nicht nur den Login. Begrenzen Sie, wie oft und wie viele Aufrufe jeder Client (pro IP, pro Konto, pro Schlüssel) stellen darf. Uneingeschränkter Ressourcenverbrauch ist ein eigenes OWASP-API-Risiko. Antworten Sie bei Überschreitung mit 429.
- Aufwendige Operationen strenger drosseln. Alles, was einen Modellaufruf, eine E-Mail, eine Dateikonvertierung, einen Bericht oder einen Datenbank-Scan auslöst, verdient ein engeres Limit, weil jeder Aufruf echtes Geld oder echte CPU kostet.
- Paginierung begrenzen. Ein Listen-Endpunkt muss die Anzahl der Datensätze pro Seite begrenzen.
?limit=1000000sollte auf einen sinnvollen Wert gekürzt und nicht unverändert übernommen werden. - Upload- und Body-Größe vor dem Parsen begrenzen. Begrenzen Sie außerdem die Anzahl gleichzeitiger Uploads oder Jobs, die ein Benutzer starten kann.
- Timeouts und Concurrency-Limits setzen, sowohl für ausgehende Aufrufe als auch für die Verarbeitung eingehender Anfragen, damit eine langsame Abhängigkeit nicht Ihre Worker erschöpft.
- CDN oder WAF für DDoS vorschalten. Ein Dienst wie Cloudflare fängt volumetrische Floods ab und ermöglicht Rate-Limiting und Geo-Filterung am Edge, bevor der Traffic Ihren Origin-Server erreicht. Stellen Sie sicher, dass der Origin-Server nicht direkt am Edge vorbei erreichbar ist (siehe Infrastruktur).
- Im Fehlerfall schnell und geschlossen reagieren. Wenn ein Limit erreicht ist oder eine Abhängigkeit ausfällt, lehnen Sie zügig mit einem klaren Status ab, statt Arbeit in eine Warteschlange zu stellen, die sich aufstaut.
- Autoscaling-Kosten im Blick behalten. Angriffe auf Ressourcen zeigen sich oft zuerst auf der Cloud-Rechnung und nicht als Ausfall. Alarmieren Sie bei ungewöhnlichen Ausgaben und ungewöhnlichem Anfragevolumen.
Testvorgehen
- Feuern Sie einen Schwall von Anfragen auf jeden Endpunkt und bestätigen Sie, dass Sie 429 erhalten.
- Fordern Sie eine riesige Seitengröße und einen riesigen Upload an und bestätigen Sie, dass beides begrenzt wird.
- Bestätigen Sie, dass Ihre Origin-IP App-Traffic nicht direkt beantwortet, sondern nur über den Edge.