Zum Inhalt springen
Category: Pentest9 Min. Lesezeit

API-Sicherheitstests mit den OWASP API Top 10

Por Lucas Andrade ·

Defensiver Leitfaden fuer API-Sicherheitstests nach OWASP API Top 10: BOLA, BFLA, Authentifizierung, Datenpreisgabe, Inventar und Detektion.

In diesem Artikel

APIs sind das Bindegewebe moderner Software, und sie versagen anders als die Webseiten, die einst unsere Systeme nach außen darstellten. Eine gerenderte Seite bündelt Autorisierungsentscheidungen, Darstellung und Ablauf; eine API legt jede Operation als einzelnen, maschinell aufrufbaren Endpunkt mit vorhersehbarer Struktur und ohne Menschen in der Schleife offen. Das macht APIs effizient für Partner und mobile Clients — und ebenso effizient für Angreifer, die skriptgesteuert gegen sie arbeiten. Dieser Artikel nähert sich API-Sicherheitstests defensiv und nutzt die OWASP API Security Top 10 als Landkarte, um Risiken zu verstehen, Detektion aufzubauen und zu härten. Ziel ist nicht, Ausnutzung zu lehren, sondern Blue Teams einen wiederholbaren Weg zu geben, um zu beweisen, dass ihre APIs die richtigen Kontrollen durchsetzen und die richtigen Signale protokollieren.

Warum APIs eine eigene Testmethodik brauchen#

Klassisches Web-Testing setzt eine gerenderte Oberfläche voraus, die einschränkt, was ein Nutzer versuchen kann. APIs heben diese Einschränkung auf: jedes Feld, jeder Parameter und jeder Objektbezeichner ist direkt adressierbar, und von Clients wird erwartet, wohlgeformte Anfragen ohne UI-Leitplanken zu senden. Die Folge ist, dass Autorisierung zum dominierenden Risiko wird. Wo eine Webanwendung eine Funktion hinter einem fehlenden Button verbergen mag, muss eine API einen unautorisierten Aufruf aktiv ablehnen, denn nichts hindert einen Client daran, ihn zu bilden. Testen dreht sich daher um Autorisierung auf Objekt- und Funktionsebene, um Datenpreisgabe und um die Gesundheit des API-Inventars.

Eine an APIs angepasste Methodik achtet besonders auf Enumeration und Automatisierung. Weil Endpunkte einheitlich und Bezeichner oft fortlaufend oder erratbar sind, sind die Kosten eines Angreifers, jede Kombination zu probieren, gering. Verteidiger müssen diese Größenordnung annehmen und Kontrollen sowie Detektion so entwerfen, dass sie skriptgesteuertem Zugriff mit hohem Volumen standhalten, nicht nur einem einzelnen sorgfältigen Menschen.

Die OWASP API Security Top 10 als Landkarte#

Die OWASP API Security Top 10 verdichten die Kategorien, in denen APIs am häufigsten brechen. Die beiden Spitzenpunkte sind Broken Object Level Authorization (BOLA) — der Zugriff auf Objekte eines anderen Nutzers durch Manipulation eines Bezeichners — und Broken Function Level Authorization (BFLA) — der Aufruf privilegierter Operationen ohne die richtige Rolle. Daneben stehen defekte Authentifizierung, übermäßige Datenpreisgabe (mehr Felder zurückgeben, als der Client braucht), fehlende Ressourcen- und Ratenbegrenzung, Mass Assignment (den Client Felder setzen lassen, die er nicht setzen sollte), Fehlkonfiguration, unsauberes Inventarmanagement und unsichere Nutzung von Dritt-APIs.

Als Verteidigungscheckliste gelesen, benennt jeder Punkt eine Kontrolle, auf die Sie zeigen können müssen. Fragen Sie für jede: Wird sie serverseitig, aus einem verifizierten Token, für jede Anfrage durchgesetzt, und würde unsere Telemetrie eine Verletzung offenbaren? Diese eine Frage, über die Liste angewandt, verwandelt einen abstrakten Katalog in einen konkreten Test- und Überwachungsplan.

Objektbezogene Autorisierung und ihre Detektion#

BOLA ist die häufigste und schädlichste API-Schwäche, weil sie leicht einzuführen und in einer flüchtigen Demo unsichtbar ist. Sie tritt auf, wenn ein Endpunkt einem vom Client gelieferten Bezeichner vertraut — einer Bestellnummer, einer Dokument-ID, einer Mandantenreferenz — ohne zu prüfen, ob der authentifizierte Aufrufer tatsächlich zu diesem Objekt berechtigt ist. Die Verteidigungskontrolle ist eindeutig: Identität und Mandant des Aufrufers aus dem validierten Token ableiten und das Eigentum an jedem angeforderten Objekt gegen diese Identität serverseitig prüfen, auf jeder Route, einschließlich Massen- und verschachtelter Zugriffspfade.

Die Detektion konzentriert sich auf Zugriffsmuster, die auf Enumeration hindeuten. Achten Sie auf einen einzelnen Principal, der viele verschiedene Objektbezeichner in kurzer Zeit anfragt, auf ein steigendes Verhältnis von Autorisierungsablehnungen zu Erfolgen und auf Anfragen, die fortlaufende IDs durchlaufen. Instrumentieren Sie Objektzugriffsentscheidungen mit strukturierten Logs, die Aufrufer, Objekt, Mandant und das Erlauben-oder-Ablehnen-Ergebnis festhalten, damit mandantenübergreifende Versuche als klares Signal auftauchen, statt in generischen Anfragelogs zu verschwinden.

Authentifizierung und funktionsbezogene Autorisierung#

API-Authentifizierung muss Token vollständig validieren: Signatur, Ablauf, Zielgruppe, Aussteller und eine Algorithmus-Allowlist, und alles ablehnen, das nicht durchgängig verifiziert. Geheimnisse, die Token signieren oder schützen, liegen ausschließlich serverseitig, niemals in einem mobilen Bundle oder in der Front-End-Konfiguration. Für funktionsbezogene Autorisierung prüft der Server die Rolle des Aufrufers bei jeder privilegierten Operation erneut; eine Route, die ein Admin nutzt, muss einen Standardnutzer ablehnen, selbst wenn dieser den genauen Pfad kennt, denn Pfadwissen ist keine Autorisierung.

Testen Sie beide Dimensionen systematisch. Bestätigen Sie, dass abgelaufene, fehlerhafte und falsch adressierte Token abgelehnt werden, ohne den Grund so preiszugeben, dass er Fälschung erleichtert. Bestätigen Sie, dass jede administrative oder nutzerübergreifende Funktion Aufrufer ohne die Rolle ablehnt und dass die Ablehnung protokolliert wird. Eine nützliche Disziplin ist eine Persona-mal-Endpunkt-Matrix: für jede Rolle markieren, welche Endpunkte erreichbar sein sollten, und dann beweisen, dass die erreichbare Menge exakt passt, ohne dass etwas zu viel offen oder etwas leise defekt ist.

Inventar, Versionierung und die unverwaltete Fläche#

Unsauberes Inventarmanagement ist der leise Killer. Laufengelassene alte API-Versionen, in die Produktion ausgelieferte Debug-Endpunkte und undokumentierte Routen sammeln sich zu einer Fläche, die niemand beobachtet. Ein Endpunkt, von dem Sie nichts wissen, ist ein Endpunkt, den Sie weder schützen noch überwachen. Die Verteidigungspraxis ist ein lebendiges API-Inventar, gespeist aus Ihren Spezifikationen und Ihrer Gateway-Konfiguration, mit jeder Route zugeordnet zu ihrer Authentifizierungsanforderung, ihren erwarteten Rollen und ihrer Datensensibilität.

Ziehen Sie veraltete Versionen planmäßig zurück und prüfen Sie, dass sie tatsächlich aufhören zu antworten. Halten Sie eine einzige Quelle der Wahrheit — eine OpenAPI-Spezifikation, die zum Ausgelieferten passt — und behandeln Sie Abweichung zwischen Spezifikation und Realität als Defekt. Routenerkennung sollte automatisiert sein, damit ein neu ausgelieferter Endpunkt am Tag seiner Auslieferung im Inventar und in der Überwachung erscheint.

Detektion — Telemetrie für API-Missbrauch#

APIs erzeugen reiche, strukturierte Telemetrie, die Verteidiger in präzise Signale verwandeln können. Über die bereits beschriebenen Objektzugriffslogs hinaus achten Sie auf Ratenanomalien pro Principal und pro Endpunkt, auf Spitzen bei 401- und 403-Antworten, auf ungewöhnliche User-Agents oder Client-Fingerabdrücke auf sensiblen Routen und auf Payloads, die Felder zu setzen versuchen, die der Aufrufer nicht kontrollieren sollte. Weil API-Verkehr maschinengeneriert und regelmäßig ist, treten Abweichungen klarer hervor als im menschlichen Web-Verkehr — eine Stärke, die Verteidiger nutzen sollten.

Speisen Sie strukturierte Logs mit stabiler trace_id in Ihr SIEM und bauen Sie Alarme auf die Formen des Missbrauchs: Enumeration, Credential Stuffing, Mass-Assignment-Versuche und plötzliche Datenvolumenspitzen, die auf abgeerntete übermäßige Preisgabe hindeuten. Wie bei allen Tests behandeln Sie jede Sonde, die keine Telemetrie erzeugt, als zu schließende Überwachungslücke und nicht bloß als bestandenen Test.

Minderung und Härtung#

Härten Sie, indem Sie den sicheren Pfad zum einzigen Pfad machen. Setzen Sie objekt- und funktionsbezogene Autorisierung serverseitig für jede Anfrage durch, abgeleitet aus dem verifizierten Token. Geben Sie nur die Felder zurück, die ein Client braucht, und formen Sie Antworten explizit, statt ganze Datenbankzeilen zu serialisieren, was übermäßige Datenpreisgabe schließt. Weisen Sie Mass Assignment ab, indem Sie Anfragen an eine explizite Allowlist beschreibbarer Felder binden und vom Client gelieferte Werte für servergesteuerte Attribute wie Identität, Mandant und Rolle ignorieren.

Wenden Sie Ratenbegrenzung und Anfragegrößen-Obergrenzen pro Principal an, um Enumeration und Ressourcenerschöpfung abzustumpfen. Validieren Sie Eingaben nach Typ und Form und lehnen Sie feindliche Werte mit einem sauberen Fehler statt eines 500 oder einer stillen Umwandlung ab. Halten Sie die Authentifizierung streng und die Abhängigkeiten gepatcht und paaren Sie jede Minderung mit einem automatisierten Test, damit eine künftige Änderung eine Kontrolle nicht still zurückrollt.

Häufige Fallstricke#

Der erste Fallstrick ist, Autorisierung nur für die glückliche Rolle zu testen — zu prüfen, dass ein Admin Adminrouten erreicht, aber nie zu prüfen, dass ein Standardnutzer es nicht kann. Autorisierungstests drehen sich im Kern um den Beweis der Ablehnung, und Ablehnung muss für jede Route und Rolle ausdrücklich geübt werden. Der zweite ist, dem Client zu vertrauen: einen Mandanten- oder Nutzerbezeichner aus dem Anfrage-Body oder einem Header anzunehmen, wenn die einzige vertrauenswürdige Quelle das verifizierte Token ist. Der dritte ist, eine 200-Antwort als Erfolg zu behandeln, ohne den Body zu prüfen, und Fälle zu übersehen, in denen die API die Daten eines anderen Mandanten mit fröhlichem Statuscode zurückgibt.

Ein feinerer Fallstrick ist Inventarblindheit. Teams testen die Endpunkte, an die sie sich erinnern, und entdecken nie die vergessenen — genau jene, die ein Angreifer zuerst enumeriert. Verankern Sie Tests in einem entdeckten Inventar, nicht im institutionellen Gedächtnis.

Eine praktische API-Testcheckliste#

Nutzen Sie dies als Verteidigungsbasis. Beweisen Sie objektbezogene Autorisierung auf jeder Route, indem Sie den Zugriff auf Objekte eines anderen Nutzers versuchen und Ablehnung sowie Protokollierung bestätigen. Beweisen Sie funktionsbezogene Autorisierung, indem Sie jede privilegierte Operation als unterprivilegierte Rolle ausführen. Prüfen Sie, dass Token vollständig validiert werden und dass Geheimnisse nie den Client erreichen. Bestätigen Sie, dass Antworten nur beabsichtigte Felder preisgeben und dass Mass Assignment abgelehnt wird. Prüfen Sie, dass Ratenbegrenzungen und Body-Größen-Obergrenzen existieren, dass feindliche Eingabe eine saubere Ablehnung statt eines 500 ergibt und dass das API-Inventar der ausgelieferten Realität entspricht, ohne verwaiste Versionen.

Schließen Sie den Kreis für jeden Punkt: Beleg, Schweregrad, Verantwortlichen und den nun schützenden Regressionstest festhalten, dazu den Alarm, der auslösen sollte, wenn die Kontrolle im Ernstfall betätigt wird.

Häufig gestellte Fragen#

Wie unterscheidet sich API-Testen vom Webanwendungstesten?#

Sie teilen eine Methodik, verschieben aber den Schwerpunkt. Web-Testen wägt Rendering, clientseitiges Verhalten und Ablaufbeschränkungen; API-Testen konzentriert sich auf Autorisierung auf Objekt- und Funktionsebene, auf Datenpreisgabe und auf das Inventar, weil APIs die UI-Leitplanken entfernen, die einst begrenzten, was ein Aufrufer versuchen konnte. In der Praxis brauchen die meisten modernen Systeme beides, da ein Single-Page-Frontend und seine dahinterliegende API zwei verwandte, aber verschiedene Flächen darstellen.

Können automatisierte Werkzeuge BOLA allein finden?#

Nur teilweise. Scanner können fehlende Authentifizierung und einige Fehlkonfigurationen melden, aber objektbezogene Autorisierung hängt vom Verständnis ab, welcher Nutzer welches Objekt besitzt — Domänenwissen, das einem generischen Werkzeug fehlt. Zuverlässiges BOLA-Testen paart Automatisierung für Breite mit menschlich entworfenen Fällen, die nutzer- und mandantenübergreifende Ablehnung behaupten, und speist diese Fälle in die Detektion zurück, sodass dieselben Enumerationsmuster zu überwachten Alarmen werden.

Fazit#

API-Sicherheitstests belohnen eine Methodik, die um Autorisierung und Inventar herum gebaut ist, statt um seitenorientierte Gewohnheiten. Die OWASP API Security Top 10 geben Verteidigern eine Landkarte: zuerst objekt- und funktionsbezogene Autorisierung, dann Authentifizierung, Datenpreisgabe, Mass Assignment, Ratenbegrenzung und die unglamouröse, aber entscheidende Disziplin, jeden betriebenen Endpunkt zu kennen. Setzen Sie Kontrollen serverseitig aus einem verifizierten Token durch, formen Sie Antworten so, dass nur das Nötige preisgegeben wird, und verwandeln Sie jeden Test in ein überwachtes Signal. Schützen Sie jede Behebung mit einem Regressionstest und halten Sie das Inventar ehrlich, und Ihre APIs werden zugleich schwerer zu missbrauchen und leichter zu beobachten.

Related posts

No comments yet

Be the first to comment.

Leave a comment

Sign in with your Canverly account to comment. You can use the same account on any site in the network.

Sign in with Canverly