API steht für Application Programming Interface, also Programmierschnittstelle. Eine API legt fest, wie Anwendungen Daten abfragen, Funktionen auslösen und Ergebnisse austauschen. Sie bildet damit die kontrollierte Grenze zwischen einem Anbieter und seinen Clients - etwa einer mobilen App, einem Web-Frontend, einem Partnerdienst oder einem internen System.
Wie funktioniert eine API?
Häufig verwendet eine API das Client-Server-Modell: Der Client sendet eine Anfrage an einen definierten Endpunkt. Die Anfrage enthält eine Methode, Parameter, Header und gegebenenfalls einen Body. Der Server prüft Identität, Berechtigung und Eingaben, verarbeitet die Aktion und antwortet mit Daten sowie einem Statuscode.
GET /api/orders/4711 HTTP/1.1
Host: example.test
Authorization: Bearer <access-token>
Accept: application/json
HTTP/1.1 200 OK
Content-Type: application/json
{"id":4711,"status":"processing"}
Ein technisch gültiges Token allein reicht nicht. Der Server muss zusätzlich prüfen, ob die angemeldete Identität genau diese Bestellung lesen darf. Fehlt diese objektbezogene Autorisierung, entsteht häufig eine IDOR-Schwachstelle.
Welche API-Arten gibt es?
| Stil oder Protokoll | Merkmale | Typische Verwendung |
|---|---|---|
| REST | Ressourcen, HTTP-Methoden und häufig JSON; REST ist ein Architekturstil, kein eigenes Protokoll. | Web-, Mobile- und Partner-APIs. |
| GraphQL | Clients formulieren benötigte Felder in einer Abfrage; ein Schema beschreibt Typen und Operationen. | Flexible Frontends und zusammengesetzte Datenmodelle. |
| SOAP | XML-Nachrichten, formale Verträge und etablierte Erweiterungen für Enterprise-Anforderungen. | Ältere Unternehmens- und Integrationssysteme. |
| RPC/gRPC | Aufruf definierter Funktionen; gRPC nutzt meist Protocol Buffers und HTTP/2. | Interne, stark typisierte Service-Kommunikation. |
| WebSocket | Langlebige bidirektionale Verbindung statt einzelner Request-Response-Vorgänge. | Chats, Live-Daten und andere Echtzeitanwendungen. |
| Webhook | Ein System benachrichtigt ein anderes aktiv über ein Ereignis. | Zahlungsstatus, CI/CD und Integrationen. |
Die Wahl beeinflusst Datenmodell, Fehlerbehandlung und Sicherheitskontrollen. Die speziellen Risiken bidirektionaler Verbindungen erläutert der Artikel über WebSockets; Abfragen und Resolver werden im GraphQL-Artikel behandelt.
Authentifizierung und Autorisierung
Authentifizierung beantwortet, wer anfragt. Autorisierung entscheidet für jede Operation und jedes Objekt, was diese Identität tun darf. API-Keys identifizieren häufig eine Anwendung, sind aber nicht automatisch für Benutzeranmeldung oder feingranulare Rechte geeignet. Für delegierten Zugriff werden oft OAuth 2.0 und OpenID Connect eingesetzt. Dabei müssen Zugriffstoken - häufig JSON Web Tokens - hinsichtlich Signatur, Aussteller, Zielgruppe, Gültigkeit und vorgesehenem Zweck geprüft werden.
Welche API-Schwachstellen sind besonders wichtig?
| Risikobereich | Typisches Problem | Vertiefung |
|---|---|---|
| Objektzugriff | Eine ID wird akzeptiert, ohne die Berechtigung am Objekt zu prüfen. | Broken Access Control und IDOR |
| Datenbindung | Unbeabsichtigte Felder wie Rolle, Preis oder Eigentümer können gesetzt werden. | Mass Assignment |
| Geschäftsprozesse | Gültige Einzelschritte lassen sich in einer unerlaubten Reihenfolge oder Menge ausführen. | Business-Logic-Schwachstellen |
| Serverseitige Requests | Import-, Preview- oder Webhook-Funktionen rufen unkontrollierte Ziele auf. | SSRF |
| Ressourcenverbrauch | Unbegrenzte Abfragen, Batching oder große Antworten belasten Backend und Datenbank. | Rate Limiting und DoS |
| Vertrauensgrenzen | Browser-Herkunft, Weiterleitungen oder externe Daten werden falsch vertraut. | CORS-Fehlkonfiguration und Open Redirect |
Wie wird eine API sicher entworfen?
- Inventar und Vertrag:
Endpunkte, Versionen, Eigentümer, Datenklassen und Abhängigkeiten dokumentieren. Nicht dokumentierte und alte Versionen ebenfalls erfassen. - Explizite Eingaben:
Erlaubte Felder, Typen, Wertebereiche und Objektgrößen serverseitig validieren; unbekannte Eigenschaften ablehnen. - Autorisierung je Aktion:
Rolle, Mandant, Objektbeziehung und Statusübergang für jeden Request prüfen - nicht nur beim Login. - Begrenzung:
Rate, Parallelität, Abfragetiefe, Seitengröße, Uploads und Laufzeit passend zum Endpunkt begrenzen. - Sichere Ausgabe:
Nur notwendige Felder zurückgeben, Fehler ohne interne Details ausliefern und sensible Antworten nicht unkontrolliert cachen. - Überwachung:
Fehlgeschlagene Autorisierung, ungewöhnliche Objektzugriffe und hohe Fehlerraten mit einer Request-ID nachvollziehbar protokollieren - ohne Tokens oder unnötige personenbezogene Daten.
Dokumentation, Versionierung und Tests
OpenAPI beschreibt REST-nahe Schnittstellen maschinenlesbar; bei GraphQL übernimmt das Schema einen Teil dieser Rolle. Eine Dokumentation sollte Authentifizierung, Fehler, Limits, Datenmodelle und Beispiele enthalten, aber keine produktiven Zugangsdaten. Änderungen benötigen eine klare Kompatibilitäts- und Abschaltstrategie. Sicherheitsprüfungen kombinieren Vertragsanalyse, Quellcodeprüfung und manuelle Tests mit verschiedenen Rollen und Mandanten. Automatische Scanner finden bekannte Muster, verstehen jedoch selten vollständig, ob ein Geschäftsprozess fachlich missbraucht werden kann.
Vielen Dank für dein Feedback! Wir werden es prüfen und unseren Artikel anpassen.
Hast du Feedback zum Thema API? Schreib uns!
API sind ausgezeichnete Angriffsflächen. Wir helfen Ihnen dabei, Ihre API sicher zu gestalten und erfolgreiche Angriffe zu verhindern.
Damian Strobel - Geschäftsführung
Weitere Dienstleistungen
Zusätzliche IT-Sicherheitslösungen für umfassenden Schutz
Red Teaming
Simulation echter Angriffe auf Ihr Unternehmen inklusive Personen, Infrastruktur und Prozesse. Ein umfassender Ansatz zur Überprüfung Ihrer gesamten Sicherheitsstrategie.
Mehr erfahrenPhishing-Übungen
Praxisnahe Phishing-Simulationen zur Sensibilisierung Ihrer Mitarbeiter. Erhöhen Sie die Awareness und reduzieren Sie das Risiko erfolgreicher E-Mail-basierter Angriffe.
Mehr erfahren