API-Sicherheitstests für REST und GraphQL

APIs verbinden Produkte, mobile Anwendungen, Cloud-Plattformen, Kundenportale und Partnerdienste. Eine schwache API-Sicherheit kann vertrauliche Informationen preisgeben, unbefugte Aktionen ermöglichen oder Möglichkeiten zum Missbrauch legitimer Geschäftsprozesse schaffen. NIST gibt an, dass sichere API-Entwicklung und -Bereitstellung für die Unternehmenssicherheit von entscheidender Bedeutung sind, und empfiehlt die Identifizierung von Risiken und Kontrollen im gesamten API-Lebenszyklus.

API Security Testing ist eine gezielte Bewertung von REST, GraphQL und Produkt-APIs. Es bewertet Authentifizierung, Autorisierung auf Objekt- und Funktionsebene, Token-Sicherheit, Ratenbegrenzung, Eingabevalidierung, Dateiverarbeitung, Datenoffenlegung und Schwachstellen in der Geschäftslogik. Das Ziel besteht darin, ausnutzbare Schwachstellen zu identifizieren, ihre Auswirkungen zu verstehen und klare Behebungsprioritäten festzulegen.

Warum API-Sicherheitstests wichtig sind

Eine technisch gültige API-Anfrage ist nicht unbedingt sicher. Ein authentifizierter Benutzer kann dennoch versuchen, auf das Objekt eines anderen Kunden zuzugreifen, eine Verwaltungsfunktion aufzurufen, unnötige Daten abzurufen oder eine legitime Transaktion auf eine Weise zu wiederholen, die der Geschäftsprozess nicht beabsichtigt hatte.

OWASPs API Security Top 10 identifiziert Broken Object Level Authorization, Broken Authentication, Broken Object Zu den größten API-Risiken zählen die Autorisierung auf Eigenschaftsebene, der uneingeschränkte Ressourcenverbrauch, die Autorisierung auf Funktionsebene mit Unterbrechungen und der uneingeschränkte Zugriff auf sensible Geschäftsabläufe. Durch effektive Tests wird daher überprüft, ob sich APIs für verschiedene Benutzer, Rollen, Mandanten, Objekte, Methoden, Token und Geschäftszustände sicher verhalten.

Was die API-Sicherheitsbewertung abdeckt

Sicherheitsbereich

Was bei der Bewertung untersucht wird

Authentifizierung

Anmeldeabläufe, fehlende Prüfungen, Sitzungsbehandlung und mögliche Umgehungsbedingungen.

Autorisierung auf Objektebene

Gibt an, ob Benutzer auf die eines anderen Benutzers, Kunden oder Mieters zugreifen oder diese ändern können Objekte.

Autorisierung auf Funktionsebene

Gibt an, ob Konten mit geringeren Berechtigungen eingeschränkte oder administrative Funktionen aufrufen können.

Token-Sicherheit

Validierung, Ablauf, Umfang, Zielgruppe und Umgang mit Token, JWTs und API-Schlüssel.

Ratenbegrenzung

Ob wiederholte oder teure Anfragen übermäßige Ressourcen verbrauchen oder Missbrauch ermöglichen können.

Eingabevalidierung

Parameter, Header, JSON-Körper, GraphQL-Eingaben und andere nicht vertrauenswürdige Daten.

Dateiverwaltung

Dateiberechtigungen, Typen, Größenbeschränkungen, Uploads, Downloads und Speicherung.

Datenfreigabe

Sensible Felder, Objekteigenschaften, Fehlerdetails oder unnötige Antworten Daten.

Geschäftslogik

Ob gültige Funktionen Regeln, Beschränkungen, Reihenfolgeanforderungen oder Genehmigungen umgehen können.

Diese Bereiche spiegeln API-Risiken und Abwehrpraktiken wider, die von OWASP und NIST beschrieben werden.

REST-API-Sicherheitstests

REST-Tests untersuchen Endpunkte, HTTP-Methoden, Parameter, Authentifizierungsmechanismen und Zugriffskontrollentscheidungen. Besonderes Augenmerk sollte auf Endpunkte gelegt werden, die benutzergesteuerte Objektkennungen akzeptieren. OWASP empfiehlt Autorisierungsprüfungen auf Objektebene, wann immer ein Endpunkt eine Kennung verwendet, um auf ein Objekt zuzugreifen oder darauf zu reagieren.

Tests können auch API-Schlüssel, Token, administrative Endpunkte, Fehlerantworten und Anforderungslimits untersuchen. OWASP bietet Anleitungen für geschützte REST-Endpunkte, Ratenbegrenzung und API-Schlüssel-Handhabung.

 

GraphQL-Sicherheitstests

GraphQL ermöglicht es Kunden, flexible Abfragen zu erstellen und verwandte Daten in einem einzigen Vorgang anzufordern. Beim Testen sollten Abfragen und Mutationen, Feldexposition, Resolver-Verhalten, Stapelverarbeitung, Fehlerinformationen und ressourcenintensive Anfragen überprüft werden.

OWASP empfiehlt, die Abfragetiefe und die angeforderten Mengen zu begrenzen, da uneingeschränkte GraphQL-Abfragen übermäßige Ressourcen verbrauchen können; Paginierung und zugehörige Kontrollen können ebenfalls zur Bewältigung dieses Risikos beitragen. Durch Tests sollte auch ermittelt werden, ob sensible Funktionen oder Eigenschaften über GraphQL erreichbar bleiben, auch wenn die Benutzeroberfläche sie nicht verfügbar macht.

Authentifizierung, Token und Zugriffskontrolle

Die Authentifizierung stellt fest, wer oder was eine Anfrage stellt; Die Autorisierung bestimmt, was diese authentifizierte Entität tun darf. OWASP betont, dass die Authentifizierung nicht automatisch Zugriff auf jede Ressource oder Aktion gewährt.

Die Tests sollten Rollentrennung, Mandantenisolation, privilegierte Vorgänge und Token-Handhabung abdecken. Für JWTs und ähnliche Anmeldeinformationen sollte die Bewertung die Validierung, den Ablauf und die angemessene Bearbeitung von Ansprüchen berücksichtigen.

Ratenbegrenzung, Eingabevalidierung und Dateiverwaltung

APIs sollten sicher bleiben, wenn gültige Funktionen wiederholt oder mit unerwarteten Eingaben aufgerufen werden. Raten- und Ressourcenkontrollen können Risiken durch automatisierte Anfragen, übergroße Nutzlasten und rechenintensive Vorgänge reduzieren. OWASP geht in seinen API Security Top 10 auf den uneingeschränkten Ressourcenverbrauch ein.

Die serverseitige Validierung sollte auf nicht vertrauenswürdige Eingaben angewendet werden. Dateiverarbeitende Endpunkte erfordern besondere Sorgfalt, da unsichere Uploads zusätzliche Angriffspfade einleiten können. OWASP empfiehlt Kontrollen, einschließlich zugelassener Dateierweiterungen und definierter Dateigrößenbeschränkungen.

Geschäftslogik und Datenoffenlegung

Geschäftslogiktests suchen nach Möglichkeiten, erforderliche Schritte zu überspringen, sensible Aktionen zu wiederholen, Beschränkungen zu umgehen oder Workflows in einem auszuführen unbeabsichtigte Reihenfolge. OWASP beinhaltet den uneingeschränkten Zugriff auf sensible Geschäftsabläufe als spezifisches API-Sicherheitsrisiko.

Datenexpositionstests prüfen, ob eine API Informationen zurückgibt, die über das hinausgehen, was der Aufrufer benötigt oder auf die er zugreifen kann, z. B. intern Felder, sensible Objekteigenschaften oder die Daten eines anderen Kontos. Die OWASP-Kategorie „Broken Object Property Level Authorization“ befasst sich mit unzureichenden Kontrollen auf Eigenschaftsebene, die zu unbefugter Offenlegung oder Manipulation führen können.

Praktische API-Sicherheitsrichtlinien

Pflege einer genauen Bestandsaufnahme von APIs und Endpunkten, einschließlich interner, partnerorientierter und Legacy-Schnittstellen. Definieren Sie Benutzer-, Dienst- und Mandantenberechtigungen klar und wenden Sie Berechtigungsprüfungen auf jeden relevanten Vorgang an, anstatt davon auszugehen, dass ein gültiges Token umfassenden Zugriff bietet.

Verwenden Sie eine strenge serverseitige Validierung und entsprechende Grenzwerte für Anfragen, Dateien und ressourcenintensive Vorgänge. Schützen Sie API-Schlüssel und Token während ihres gesamten Lebenszyklus und vermeiden Sie die Offenlegung vertraulicher Anmeldeinformationen oder unnötiger Daten in URLs, Protokollen oder Antworten.

Berücksichtigen Sie für GraphQL Abfragetiefe, Menge, Paginierung und andere für die Anwendung geeignete Ressourcenkontrollen. Beschränken Sie für Dateiendpunkte Dateitypen und -größen und stellen Sie sicher, dass Benutzer das Speicher- oder Verarbeitungsverhalten nicht unerwartet steuern können. Testen Sie wichtige Korrekturen nach der Behebung erneut, insbesondere wenn Änderungen Auswirkungen auf Authentifizierung oder Berechtigungen haben.

API-Sicherheitstestprozess und Ergebnisse

Ein praktischer Einsatz beginnt mit der Definition der APIs, Umgebungen, Authentifizierungsmethoden, repräsentativen Konten, Rollen und kritischen Geschäftsabläufe. Beim Testen wird dann die relevante Angriffsfläche abgebildet und API-Funktionen mithilfe erwarteter und gegnerischer Anforderungsmuster ausgeführt.

Die Ergebnisse sollten nach technischem Schweregrad, Nutzungsbedingungen und geschäftlicher Relevanz priorisiert werden. Klare Beweise und Anleitungen zur Behebung helfen den Teams zu verstehen, was fehlgeschlagen ist, warum es wichtig ist und was zuerst behoben werden sollte.

ComplyMarkets Cybersecurity Lab listet öffentlich API-Sicherheitstests auf, die Authentifizierung, Autorisierung, Objektzugriff und Rate abdecken Begrenzung und Datengefährdung, mit einem API-Schwachstellenbericht als typischer Ausgabe. Außerdem werden die erneuten Tests zur Behebung nach Korrekturmaßnahmen aufgeführt.

Tests können besonders nützlich sein vor einer großen Markteinführung, nach erheblichen Änderungen der Zugriffskontrolle, bei der Einführung von Partnerintegrationen entsprechend der Architektur Änderungen oder nach Behebung wichtiger Schwachstellen.

Wie ComplyMarket API-Sicherheitstests unterstützt

ComplyMarket bietet Cybersicherheitstests und Compliance-Unterstützung für Produkte mit digitalen Elementen. Der veröffentlichte Umfang des Cybersecurity Lab umfasst API-Sicherheitstests und gibt an, dass seine Methodik risikobasiert und an den Produkttyp, den regulatorischen Geltungsbereich und die Kundenanforderungen angepasst ist.

ComplyMarket kann API-Erkenntnisse auch mit dem umfassenderen Bild der Produktsicherheit verknüpfen. Der Produkt-Cybersicherheitsbewertungsdienst überprüft Architektur, Angriffsflächen, Vertrauensgrenzen, APIs, Authentifizierung, Autorisierung und andere Sicherheitskontrollen und hilft Teams, API-Schwächen im gesamten Produktökosystem zu verstehen.

Abhängig vom vereinbarten Umfang können die Ergebnisse eine priorisierte Behebung, stärkere Sicherheitsnachweise und die Überprüfung wichtiger Korrekturen durch unterstützen erneut testen. Dies schafft einen praktischen Weg von der Identifizierung einer API-Schwäche bis zur Verwaltung von Korrekturmaßnahmen im Rahmen umfassenderer Produktsicherheits- und Compliance-Arbeiten.

API-Sicherheitstests für REST und GraphQL