API Work Desk
 

Der ultimative Guide zu API-Sicherheit

Darmstadt, 05.11.2021

Die Sicherung von APIs ist eine der Hauptaufgaben, die APIIDA jeden Tag für seine Kunden erledigt. Wir folgen einer einfachen, leicht verständlichen Checkliste, um die grundlegende API-Sicherheit zu gewährleisten, welche wir in diesem Beitrag mit euch teilen werden. Du hast eine Ergänzung oder möchtest mit uns in Kontakt treten, um die Überlegungen dahinter zu besprechen? Melde dich einfach bei uns, wir freuen uns auf ein Gespräch mit dir zu diesen Themen.

Verwende einen API-Gateway

Den wohl grundlegendsten Rat, den wir geben können, ist, ein spezielles API-Gateway zu deinem Ecosystem hinzuzufügen. Während sich ein Großteil der Diskussion um API-Gateways auf Themen wie die Erfahrung von Entwicklern und die Monetarisierung von APIs verlagert hat, ist die Gewährleistung ihrer Sicherheit immer noch das Herzstück jedes auf dem Markt erhältlichen Gateways. Unabhängig davon, ob du eine ältere Lösung wie das Layer7 API Gateway von Broadcom CA oder eine leichtgewichtige native Cloud-Lösung wie Envoy einsetzt.


Verlagere die Authentifizierung in dein Gateway

Die Implementierung der Authentifizierung in jeder einzelnen deiner APIs ist reine Ressourcenverschwendung und öffnet dem Missbrauch von Authentifizierungsalgorithmen oder der Verwendung unsicherer Standardwerte Tür und Tor. Moderne Gateways verfügen über integrierte Authentifizierungsfunktionen und unterstützen von Haus aus eine Vielzahl von Authentifizierungsschemata. Deshalb sollte man sich selbst einen Gefallen tun und die Benutzerauthentifizierung an den Rand verlagern. Das bedeutet nicht, dass du die Überprüfung der Authentifizierung in deinen APIs vernachlässigen kannst, aber du kannst dies auf eine viel standardisiertere und einfachere Weise tun, indem du sie von der Authentifizierung der Benutzer entkoppelst.


Prüfe eingehende und ausgehende Daten

Überprüfe immer den eingehenden Datenverkehr auf seine Übereinstimmung mit den Erwartungen, die du an ihn stellst. Du hast eine OpenAPI-Definition für deine API? Prima, dann nutze diese, um alle eingehenden Daten auf Konformität zu prüfen, bevor du sie an die vorgelagerten Systeme weiterleitest. Das Gleiche gilt für andere gängige API-Spezifikationen wie AsyncAPI oder das in die Jahre gekommene (aber immer noch quicklebendige) SOAP. Wenn du noch keine Spezifikation hast, empfehlen wir dringend, eine zu erstellen. Es gibt viele gute (und kostenlose) Tools, mit denen du diese Aufgabe bewältigen kannst. Aber auch wenn du bereits eine Spezifikation erstellt hast, solltest du im Zweifel jede Eingabe so behandeln, als sei sie bösartig. Überprüfe die Kopfzeilen und die Herkunft des Datenverkehrs und lehne die Anfrage im Zweifelsfall immer ab.


Nutze zertifizierte Gateways

Es gibt eine Reihe von Zertifizierungen, die garantieren, dass du auch das bekommst, was du bezahlst. Ein zertifiziertes Gateway ist ein API-Gateway, das allgemeine Qualitätsstandards einhält und selbst Sicherheitsaudits durchlaufen hat, damit keine Lücken in deiner Sicherheitsstruktur durch ein unsicheres Gateway in deiner Organisation aufgerissen werden.


Überprüfe deine Prozesse

Neben technischen Maßnahmen gibt es gibt es auch einige Empfehlungen für sichere Prozesse rund um die API-Verwaltung.


Kenne dein Backend

Habe immer im Blick, wie gültige Anwendungsfälle für die Nutzung deines Backends aussehen könnten. Prüfe, ob es Aufrufmuster gibt, die davon abweichen und ein Zeichen dafür sein könnten, dass jemand die Sicherheit deiner API testet und versucht, einen Weg hinein zu finden.


Denke bereits beim Entwurf der Schnittstelle an API-Sicherheit

Nicht alle Daten, die nach außen hin offengelegt werden können, müssen auch tatsächlich offengelegt werden. Achte immer darauf, dass keine Daten freigegeben werden, die nicht unbedingt für die Anwendungsfälle benötigt werden, für die die API entwickelt wurde. Dies ist schon allein deshalb hilfreich, da ein sparsamer Umgang mit Daten auch im Einklang mit den europäischen Datenschutzgesetzen (DSGVO) steht.


Überlege, wer deine APIs nutzen wird

Die meisten APIs sind nicht für die Öffentlichkeit bestimmt, sondern nur für eine begrenzte Anzahl von Nutzern zugänglich. Je besser du deine Kunden kennst, desto besser kannst du ihre Zugriffe kontrollieren. Je nach Kunde kann es in Ordnung sein, nur den API-Schlüssel zu überprüfen oder regelmäßig die Gültigkeit der Zertifikate zu kontrollieren, wenn gegenseitiges TLS verwendet wird.


Erstelle eine API-Sicherheitsrichtlinie

Stelle sicher, dass alle APIs eine gemeinsame Sicherheitsrichtlinie einhalten. Wenn du die Sicherheitsmaßnahmen für jede deiner APIs einzeln festlegst, ist das ein Rezept für eine Katastrophe. Die Richtlinie sollte leicht verständlich sein und nicht nur sagen, was zu tun ist, sondern auch, warum es zu tun ist. So wird sichergestellt, dass die Mitarbeiter die Richtlinien nicht umgehen, weil es bequemer ist.


Automatisiere deine Bereitstellungsprozesse

Fehler passieren immer wieder. Einige davon haben nur geringe Auswirkungen auf die Dienstqualitäten, Fehler bei der Bereitstellung von Prozessen bringen jedoch im Zweifel deine gesamte API-Landschaft zum Erliegen. Um das Risiko von Serviceausfällen zu minimieren, solltest du deine Bereitstellungsprozesse automatisieren. Überlasse den CI/CD-Pipelines die mühsame Aufgabe der Bereitstellung für die Produktion und agiere zukünftig mit Zuversicht.


Monitore dein API-Gateway

Die Überwachung des API-Gateways ist eine Notwendigkeit. Die Gateways sind deine erste Verteidigungslinie, wenn es um die Sicherung der APIs geht. Überwache alle unerwarteten Zahlen und lege Grenzen fest, um zu kontrollieren was in Ordnung ist und was zu einem Problem werden könnte. Ungewöhnliche Nutzungsmuster könnten ein Hinweis auf einen Angriff sein.



 
Deutsch