API Security Best Practices
Sichere APIs erfordern mehr als nur Authentifizierung: Eingabevalidierung, Verschlüsselung, Rate Limiting, Logging und ein durchdachtes Fehlerverhalten gehören ebenso dazu.
Kompakte Beschreibung
API Security Best Practices sind bewährte Maßnahmen, die Du anwenden solltest, um Schnittstellen vor unbefugtem Zugriff, Datenlecks, Manipulation und Ausnutzung zu schützen. Dazu gehören die konsequente Verwendung von HTTPS, starke Authentifizierung und Autorisierung, sorgfältige Eingabevalidierung, Rate Limiting, Schutz vor Injection-Angriffen, korrekte Fehlerbehandlung ohne Interna, Logging und Monitoring, sowie ein regelmäßiges Sicherheitsmanagement. APIs sind oft direkt aus dem Internet erreichbar und damit ein attraktives Ziel für Angreifer. Deshalb müssen Sicherheitsmaßnahmen von Beginn an in Architektur und Implementierung verankert werden und nicht als nachträglicher Schutz gedacht werden. Eine solide API-Sicherheit kombiniert technische, organisatorische und prozessuale Maßnahmen.
Wichtige Komponenten
HTTPS und TLS
Alle API-Kommunikation muss über HTTPS erfolgen. TLS schützt vor Abhörung, Manipulation und Man-in-the-Middle-Angriffen. Du solltest aktuelle TLS-Versionen verwenden, schwache Cipher Suites deaktivieren und Zertifikate regelmäßig erneuern. HSTS Header zwingen Clients dazu, HTTPS zu verwenden.
Authentifizierung und Autorisierung
Jeder Endpunkt, der sensitive Daten oder Aktionen bereitstellt, muss authentifiziert und autorisiert sein. Verwende moderne Standards wie OAuth2 mit OpenID Connect, kurzlebiges JWTs oder API Keys mit begrenztem Scope. Autorisierung muss immer serverseitig geprüft werden, niemals nur im Client.
Eingabevalidierung
Jede Eingabe gilt als potenziell schädlich. Du musst Daten auf Typ, Länge, Format, Bereich und Zeichensatz prüfen, bevor Du sie verarbeitest. Verwende Whitelisting statt Blacklisting. Validierung sollte an der API-Grenze und an den wichtigsten Stellen im Backend erfolgen.
Rate Limiting und Throttling
Rate Limiting begrenzt die Anzahl der Anfragen pro Client und Zeitraum. Throttling reduziert die Rate bei Spitzenlast. Beide Maßnahmen schützen vor Brute-Force-Angriffen, Überlastung und ungewolltem Scraping. Konfiguriere passende Limits und kommuniziere sie über Header wie X-RateLimit-Remaining.
Schutz vor Injection
Injection-Angriffe wie SQL Injection, NoSQL Injection, Command Injection und XPath Injection entstehen, wenn Eingaben ungeprüft in Befehle oder Abfragen eingebaut werden. Verwende parametrisierte Abfragen, ORMs und Escaping, um diese Angriffe zu verhindern.
Fehlerbehandlung ohne Interna
Fehlermeldungen sollten hilfreich für Entwickler sein, aber keine internen Details wie Datenbanknamen, Pfade, Stacktraces oder Systemversionen preisgeben. Interne Informationen gehören in Logs, nicht in API-Antworten. Verwende einheitliche Fehlerformate wie RFC 7807 Problem Details.
Logging und Monitoring
Logge alle relevanten Sicherheitsereignisse, wie erfolgreiche und fehlgeschlagene Anmeldungen, Berechtigungsverletzungen, ungewöhnliche Traffic-Muster und Fehler. Logs sollten Zeitstempel, IP-Adresse, Request-ID und Nutzerkontext enthalten. Monitoring-Systeme sollten Alerts bei verdächtigen Mustern auslösen.
API Versionierung und Deprecation
Sicherheitsupdates und Änderungen müssen über Versionsverwaltung kommuniziert werden. Alte Versionen sollten nach ausreichender Vorwarnzeit abgeschaltet werden. Deprecation und Sunset Header informieren Clients automatisch über das Ende einer Version.
CORS
Cross-Origin Resource Sharing sollte restriktiv konfiguriert werden. Erlaube nur vertrauenswürdige Ursprünge, limitiere erlaubte Methoden und Header und vermeide Wildcards für sensible Endpunkte. Falsche CORS-Konfigurationen können zu unbefugtem Zugriff führen.
Sicherheitsbewusste Konfiguration
Server und Frameworks sollten mit sicheren Defaults konfiguriert werden. Deaktiviere ungenutzte Features, setze sichere Header wie Content-Security-Policy, X-Content-Type-Options und X-Frame-Options, und vermeide die Anzeige von Versionsinformationen. Regelmäßige Updates und Patches sind Pflicht.
Penetrationstests und Audits
APIs sollten regelmäßig auf Schwachstellen geprüft werden. Statische und dynamische Analysen, Dependency-Scans, Penetrationstests und Red Team Exercises helfen, Sicherheitslücken früh zu erkennen. Berücksichtige dabei auch OWASP API Security Top 10.
Praxisbeispiel
Ein Online-Shop sichert seine Bestellungs-API mit mehreren Schichten:
POST /api/v2/orders
Host: shop.example.com
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
X-Request-ID: req-123456
{
"customerId": 123,
"items": [
{ "productId": 42, "quantity": 2 }
]
}
Sicherheitsmaßnahmen auf Serverseite:
- TLS 1.3 erzwingt HTTPS.
- Der Bearer Token wird validiert und die Scope read:orders write:orders geprüft.
- customerId und quantity werden auf Typ, Länge und Wertebereich validiert.
- Rate Limiting erlaubt maximal 10 Bestellungen pro Minute pro Kunde.
- SQL Injection wird durch parametrisierte Abfragen verhindert.
- Fehlerantworten enthalten keine Interna, sondern RFC 7807 Problem Details.
- Alle Anfragen werden mit Request-ID und Ergebnis geloggt.
- CORS erlaubt nur die Domain shop.example.com.
FAQ: API Security Best Practices
1. Warum ist HTTPS für APIs Pflicht?
2. Was ist OWASP API Security Top 10?
3. Warum muss Authorization serverseitig erfolgen?
4. Was ist Broken Object Level Authorization?
5. Was ist IDOR?
6. Was ist Excessive Data Exposure?
7. Was sind Injection-Angriffe?
8. Was ist Rate Limiting?
9. Was sind sicherheitsrelevante Header?
10. Was ist ein API Gateway?
11. Warum sollte man keine sensiblen Daten in URLs übertragen?
12. Was ist Content Security Policy?
13. Was ist ein Security Audit?
14. Was ist Dependency Scanning?
15. Was sind minimale Berechtigungen?
Quellen
- https://owasp.org/API-Security/editions/2023/en/0x11-t10/
- https://datatracker.ietf.org/doc/html/rfc9110
- https://cheatsheetseries.owasp.org/cheatsheets/REST_Security_Cheat_Sheet.html
Buchempfehlungen zur API-Sicherheit
Wenn Du Dich weiter mit API Security, Softwaresicherheit und Best Practices beschäftigen möchtest, empfehlen wir Dir die folgenden Bücher:
Keine Bücher für Kategorie "security" gefunden.