Definition
API Security oder API Sicherheit bezeichnet die Praxis, Angriffsversuche auf eine Programmierschnittstelle (API) zu verhindern, um Systemstörungen oder Datendiebstahl zu vermeiden. Sie erstreckt sich über alle Phasen des API-Lebenszyklus – von der Konzeption und Entwicklung bis hin zum Deployment. Dazu gehören Maßnahmen wie die Implementierung starker Zugriffskontrollen, die Validierung von Eingaben, die Verschlüsselung von Daten sowie die Überwachung von möglichen Anzeichen für Angriffe, die speziell auf APIs abzielen.
Überblick
Application Programming Interfaces (APIs) spielen eine zentrale Rolle dabei, die Kommunikation zwischen Softwareanwendungen zu ermöglichen. Gleichzeitig können sie jedoch auch ein potenzielles Einfallstor für Angreifer darstellen. Fehlen einer API grundlegende Sicherheitsmechanismen wie effektive Zugriffskontrollen oder Eingabevalidierungen, können Bedrohungsakteure die Schnittstelle missbrauchen – etwa zur Exfiltration sensibler Daten, zur Manipulation von Anwendungsfunktionen oder zur Störung kritischer Dienste.
Die API Sicherheit dient der Eindämmung dieser Risiken. Indem Unternehmen Sicherheitsprinzipien über den gesamten API-Lebenszyklus hinweg berücksichtigen – etwa durch den Einbau von Sicherheitsmechanismen bereits in der Designphase, die sorgfältige Bewertung von APIs auf Sicherheitsrisiken während der Testphase und die Überwachung potenzieller Angriffe im laufenden Betrieb – können sie das Risiko minimieren, dass APIs zur Schwachstelle in ihrer Sicherheitsarchitektur werden.
Was ist API Security?
API Security bezeichnet die Praxis, Sicherheitsrisiken im Zusammenhang mit Application Programming Interfaces (APIs) zu minimieren.
Um die Bedeutung von API Sicherheit ganz zu erfassen, ist es wichtig, die Funktionsweise von APIs zu verstehen. Eine API ist ein Mechanismus, der es zwei oder mehr Anwendungen ermöglicht, Daten miteinander auszutauschen. Dabei definiert sie eine Reihe von Regeln, die festlegen, wie eine Anwendung Daten formatieren und an eine andere senden soll. Ebenso legt sie fest, wie die empfangende Anwendung eine Antwort an die ursprüngliche Anwendung zurückgeben kann.
APIs erfüllen eine legitime und essenzielle Funktion, indem sie die Kommunikation zwischen Anwendungen vereinfachen. Gleichzeitig können sie jedoch auch Angriffe ermöglichen. So könnten Bedrohungsakteure eine API nutzen, um einer Anwendung bösartige Anfragen zu senden. Oder sie nutzen APIs ohne geeignete Authentifizierungskontrollen, um auf nicht-öffentliche Daten zuzugreifen. Ebenso ist es möglich, APIs durch eine Flut von Anfragen zu überlasten – beispielsweise durch einen Denial-of-Service-(DoS)-Angriff.
API Sicherheit schützt vor solchen Risiken. Durch ein fundiertes Verständnis potenzieller Bedrohungen und die Umsetzung gezielter Schutzmaßnahmen können Entwickler APIs so gestalten, implementieren und betreiben, dass sie gegen Missbrauch und Angriffe widerstandsfähig sind.
Absicherung von APIs über den gesamten API-Lebenszyklus hinweg
Um APIs zu schützen, müssen Entwickler Sicherheitsmaßnahmen in alle wichtigen Phasen des Lebenszyklus integrieren, darunter:
- Design: Bereits bei der Konzeption einer API sollten Entwickler darauf achten, geeignete Zugriffskontrollen und Funktionen zur Ratenbegrenzung (Rate Limiting) einzuplanen.
- Implementierung: Beim Schreiben des Codes zur Umsetzung einer API müssen Fehler vermieden werden, die dazu führen könnten, dass geplante Sicherheitsfunktionen nicht korrekt ausgeführt werden.
- Test: Vor der Bereitstellung für den produktiven Einsatz testen Entwickler APIs in der Regel umfassend. Dabei sollte nicht nur die Performance bewertet, sondern auch überprüft werden, ob die API gegen Sicherheitsangriffe resistent ist.
- Nutzung: Wenn APIs produktiv genutzt werden, also Anwendungen in der Produktion zur Verfügung stehen, sollten Teams verdächtige Aktivitäten wie ungewöhnlich viele Anfragen aus nicht vertrauenswürdigen Quellen überwachen und darauf reagieren.
Die wichtigsten Sicherheitsbedrohungen für APIs
Die maßgebliche Referenz für Sicherheitsbedrohungen im API-Umfeld ist die OWASP-Liste der „Top 10 API Security Risks“. Zu den zentralen Bedrohungen, die OWASP identifiziert, gehören:
- Fehlende Objektzugriffsberechtigung (Broken Object Level Authorization): Dieses Risiko entsteht, wenn eine API Anfragen nicht ausreichend validiert, bevor sie Zugriff auf ein Objekt (also eine Ressource wie z. B. eine Datenart) gewährt. Angreifer können diese Schwachstelle ausnutzen, um auf Daten oder andere Objekte zuzugreifen, die für sie nicht zugänglich sein sollten.
- Fehlerhafte Authentifizierung (Broken Authentication): APIs, die Anfragen nicht korrekt authentifizieren – oder gar keine Authentifizierungsmechanismen implementiert haben – sind anfällig für fehlerhafte Authentifizierung. Dadurch können Angreifer Anfragen stellen, als wären sie legitime Nutzer der API.
- Server-Side Request Forgery (SSRF): Diese Schwachstelle tritt auf, wenn eine API Anfragen weiterleitet, ohne zu prüfen, ob das angeforderte Ziel legitim ist. Angreifer können dies ausnutzen, um Anfragen an beliebige Ziele zu senden, was zur Offenlegung sensibler Daten führen kann.
- Unbeschränkter Zugriff (Unrestricted Access): APIs ohne Zugriffsbeschränkungen lassen sich potenziell zur Beeinträchtigung der Verfügbarkeit von Anwendungen oder Services missbrauchen. Wenn beispielsweise keine Begrenzung der API-Anfragen pro Minute erfolgt, können Angreifer durch massenhafte Anfragen eine Anwendung zum Absturz bringen.
- Fehlende Funktionsberechtigungen (Broken Function Level Authorization): Diese Schwachstelle betrifft APIs, die Zugriffe auf Funktionen nicht ausreichend überprüfen. So könnte etwa ein nicht authentifizierter Nutzer eine Aktion auslösen, die nur authentifizierten Nutzern vorbehalten sein sollte.
Weitere häufige API-Sicherheitsrisiken, die nicht in der OWASP-Liste aufgeführt sind, umfassen:
- Injection: Bei einem API-Injection-Angriff akzeptiert die API Eingaben, ohne diese korrekt zu validieren. Dadurch können Angreifer schädliche Befehle einschleusen, die von der Anwendung ausgeführt werden.
- Überflüssige Daten (Excess Data): APIs sollten nur die unbedingt notwendigen Daten bereitstellen, um eine Anfrage zu erfüllen. Wenn sie darüber hinausgehende Informationen liefern, besteht das Risiko, dass sensible Daten unbeabsichtigt offengelegt werden.
- „Shadow“-APIs: Eine Shadow API ist eine API, die zwar öffentlich zugänglich, aber nicht ausreichend abgesichert, verwaltet oder überwacht ist. Solche Schnittstellen entstehen häufig, wenn Entwickler in einem Unternehmensbereich APIs implementieren, ohne andere Teams zu informieren oder die unternehmensweiten Vorgaben für Design und Sicherheit zu beachten. Da sie meist keiner einheitlichen Sicherheitsstrategie unterliegen, stellen sie ein erhöhtes Risiko dar.
Best Practices zum Schutz von APIs
Da sich der Sicherheits- und Nutzungskontext von APIs stark unterscheiden kann, gibt es keine einheitliche Vorgehensweise, mit der sich die API-Sicherheit pauschal maximieren lässt. Unterschiedliche Einsatzszenarien bedingen auch unterschiedliche Sicherheitsanforderungen: So ist es bei der Gestaltung einer öffentlichen API möglicherweise nicht sinnvoll, eine Authentifizierung zu verlangen – schließlich sollen öffentliche APIs häufig Daten für beliebige Anwendungen oder Dienste bereitstellen. Im Gegensatz dazu sollten private APIs in der Regel eine Authentifizierung erfordern, da sie nur vertrauenswürdigen Anwendungen und Diensten den Zugriff ermöglichen.
Dennoch gibt es allgemeine Best Practices und Schutzmaßnahmen, die helfen, Sicherheitsrisiken bei nahezu allen API-Typen und -Anwendungsfällen zu minimieren:
- Daten immer verschlüsseln: Die über APIs ausgetauschten Daten sollten grundsätzlich verschlüsselt werden. Dies reduziert das Risiko, dass Dritte sensible Informationen während der Übertragung abfangen und einsehen können.
- Starke Authentifizierung verlangen: Bei APIs, die keine nicht-authentifizierten Anfragen unterstützen müssen, sollten Entwickler auf starke Authentifizierungsverfahren wie OAuth oder JWT setzen.
- APIs auf Sicherheitslücken testen: Um potenzielle Schwachstellen zu erkennen, die im Entwicklungsprozess übersehen wurden, ist es empfehlenswert, gezielte Tests durchzuführen – etwa durch das Simulieren böswilliger Aktivitäten und die Analyse der Reaktion der API.
- API-Anfragen begrenzen: Um Missbrauch zu verhindern, können Organisationen die Anzahl der zulässigen Anfragen pro Zeiteinheit begrenzen. Diese Beschränkungen lassen sich direkt in der API oder mithilfe eines API-Gateways umsetzen, das als Zwischeninstanz Anfragen überwacht und potenziell schädliche blockiert.
- APIs überwachen: Die Überwachung von APIs im laufenden Betrieb kann Anzeichen für Angriffe oder Missbrauch frühzeitig erkennbar machen – etwa eine ungewöhnliche Folge von Anfragen, die darauf hindeutet, dass Angreifer versuchen, Schwachstellen in den Authentifizierungs- oder Autorisierungsmechanismen der API auszunutzen.
API Sicherheit vs. allgemeine Anwendungssicherheit
API Sicherheit teilt einige Konzepte und Praktiken mit der allgemeinen Anwendungssicherheit. In beiden Fällen ist es wichtig, starke Authentifizierungsmechanismen zu implementieren und vor der Bereitstellung gründliche Sicherheitstests durchzuführen.
Allerdings sind APIs nicht mit vollständigen Anwendungen gleichzusetzen und API Sicherheit unterscheidet sich in mehreren entscheidenden Punkten von der klassischen Anwendungssicherheit:
- Angriffsarten: Anwendungen sind einer breiteren Palette potenzieller Angriffe ausgesetzt – von Code-Injection über Supply-Chain-Angriffe bis hin zur Ausnutzung bekannter Schwachstellen. API-Angriffe hingegen konzentrieren sich in der Regel auf schwache oder fehlende Authentifizierungs-, Autorisierungs- oder Ratenbegrenzungskontrollen.
- Codebasierte Schwachstellen: In der Anwendungssicherheit sind Schwachstellen im Quellcode – etwa durch unzureichende Eingabevalidierung – eine häufige Ursache für Sicherheitsrisiken. Auch APIs basieren auf Code, jedoch ist dieser meist weniger umfangreich, und Sicherheitsprobleme entstehen seltener durch Programmierfehler. Stattdessen resultieren API-Schwachstellen oft aus Designmängeln, etwa dem Verzicht auf Authentifizierung.
- Sicherheitstools: Die für die Absicherung von Anwendungen verfügbaren Tools unterscheiden sich von jenen, die für APIs eingesetzt werden. So sind Schwachstellen-Scanner, die nach CVEs in Softwarekomponenten suchen, zentrale Werkzeuge in der Anwendungssicherheit, jedoch kaum hilfreich beim Schutz von APIs. Für APIs werden stattdessen spezialisierte Scanner eingesetzt, die gezielt bösartige Anfragen simulieren. Diese Methodik ähnelt zwar Dynamic Application Security Testing (DAST), ist jedoch speziell auf die Anforderungen von APIs zugeschnitten.
JFrog und API Security
Die Software-Supply-Chain-Plattform von JFrog bietet eine Vielzahl von Schutzfunktionen – darunter Application Scanning, Secret Scanning, Supply Chain Security und sicheres Artefaktmanagement – um Anwendungen abzusichern und Risiken zu minimieren, ganz gleich, wo sie entstehen.