Andrey Kuzmin - Fotolia
Wie API-Gateways die API-Sicherheit verbessern
Mit Funktionen wie Zugriffsverwaltung, DDoS-Schutz und Richtliniendurchsetzung tragen API-Gateways zu einer besseren Absicherung von APIs bei. Ein Überblick der Funktion.
APIs sind ein attraktiver Angriffsvektor für Cyberkriminelle und böswillige Hacker. So stellte der API-Sicherheitsanbieter Salt Security fest, dass im Dezember 2022 4.845 einzelne API-Angreifer aktiv waren - ein Anstieg von 400 Prozent im Vergleich zu den sechs Monaten zuvor. Um das Risiko eines API-basierten Sicherheitsverstoßes zu verringern, muss die Bereitstellung, Konfiguration und Sicherheit eines API-Gateways ein integraler Bestandteil jeder Sicherheitsstrategie sein.
Die Bedeutung von APIs
APIs legen fest, wie Softwareanwendungen miteinander interagieren und werden in Microservices ausgiebig genutzt. Uber, Amazon, Spotify und die meisten anderen großen Unternehmen setzen auf eine Microservices-Architektur, bei der in sich geschlossene Microservices ein bestimmtes Element einer Geschäftsaktivität verwalten. Dieser Ansatz vereinfacht die Entwicklung, Bereitstellung und Wartung komplexer Produkte und Dienste erheblich, indem APIs für die Interaktion mit ihnen verwendet werden.
APIs ermöglichen es Entwicklungsteams, Produkte zu entwerfen, die mit einem Dienst interagieren, ohne dass sie tiefgreifende Kenntnisse über die Funktionsweise dieses Dienstes haben müssen. Mit der öffentlichen Google Maps-API kann beispielsweise jeder über eine einfache API-Anfrage auf mehr als 20 Petabyte an Daten zugreifen. Während eine Anfrage nach dem Standort eines Restaurants einfach erscheinen mag, ist die Validierung dieser Anfrage, das Sammeln komplexer Antworten von mehreren Diensten - Kartenstandort, Fotos, Bewertungen, Wegbeschreibungen, Öffnungszeiten und so weiter- und deren Kombination zu einer einzigen Antwort nicht einfach. -- und deren Kombination zu einer einzigen Antwort ist äußerst komplex. Aus diesem Grund werden Unternehmens-APIs mit API-Gateways bereitgestellt, einer Middleware, die den Zugriff auf unterschiedliche Dienste und Daten über einen einzigen API-Aufruf ermöglicht und eine einzige einheitliche Antwort zurückgibt.
API-Gateway-Funktionen
Ein API-Gateway ist eine Softwareschicht, die als einzige Schnittstelle zwischen Client-Anfragen fungiert, die von mehreren Back-End-Systemen bearbeitet werden. Es sendet Anfragen an die entsprechenden Dienste unter Verwendung von Anfragerouting, Zusammensetzung und Protokollübersetzung und gibt dann die angeforderten Daten zurück.
API-Gateways bieten auch wichtige Verwaltungs- und Servicefunktionen sowie Sicherheitsmerkmale. Sie verbessern die Leistung, Verfügbarkeit und Skalierbarkeit und vereinfachen gleichzeitig die Verbindung zwischen verschiedenen Diensten und die gemeinsame Nutzung von Daten. API-Gateways fügen auch eine zusätzliche Schutzebene hinzu, da sie den direkten Kontakt zwischen Clients und Backend-Diensten verhindern.
Zu den wichtigsten Verwaltungs- und Servicevorteilen eines API-Gateways gehören die folgenden:
- Routing. Das API-Gateway leitet eingehende Anforderungen anhand von Faktoren wie Anforderungspfad, Header und Abfrageparameter weiter. Je nach Art des Clients und des Geräts kann das Gateway die Anfrage an gerätespezifische APIs weiterleiten. Das Routing ist auch bei Blue/Green- und Canary-Bereitstellungen nützlich, um Ausfallzeiten bei der Aktualisierung von Diensten zu vermeiden.
- Load Balancing. Ein API-Gateway kann Anfragen effizient auf mehrere Instanzen eines Backend-Dienstes verteilen, um die Skalierbarkeit und Verfügbarkeit zu verbessern und sicherzustellen, dass die Benutzer einen konsistenten und zuverlässigen Dienst erhalten.
- Caching. Ein Gateway kann häufig angeforderte Daten zwischenspeichern, um die API-Leistung zu verbessern, so dass die Antwortzeiten kürzer sind und Backend-Dienste weniger Wiederholungsanfragen erhalten.
- Protokollübersetzung. Ein API-Gateway kann Protokolle übersetzen, um die Kommunikation zwischen Clients und Backend-Diensten zu vereinfachen. Wenn zum Beispiel eine Anfrage eine Antwort in JSON erfordert, konvertiert das Gateway automatisch die Antwort eines Dienstes, der XML verwendet. Außerdem kann es den Inhalt einer Antwort je nach Gerätetyp oder Benutzer, der die Anfrage stellt, anpassen.
Zu den sicherheitsspezifischen Merkmalen eines API-Gateways gehören die folgenden:
- Durchsetzung von Sicherheitsrichtlinien. Da APIs den Zugriff auf sensible Daten und Ressourcen ermöglichen, sind sie ein Ziel für jede Art von Angriffen. API-Gateways, die den gesamten API-Datenverkehr verwalten, sind ein hervorragender Kontrollpunkt, von dem aus Richtlinien und Regeln wie Authentifizierung, Autorisierung und Zugriffskontrolle durchgesetzt werden können, die die zugrunde liegenden Dienste schützen.
- DDoS-Schutz. Die Kontrolle über die Anzahl der API-Aufrufe innerhalb einer bestimmten Zeit stellt sicher, dass die Backend-Verarbeitungskapazität nie überschritten wird, selbst wenn ein Angreifer versucht, die Microservices mit Datenverkehr zu überfluten. Durch die vollständige Transparenz jeder Anfrage kann das API-Gateway auch Brute-Force-Angriffe erkennen. Darüber hinaus kann es als Unterbrecher fungieren, um Verbindungen zu stoppen, wenn Anfragen aufgrund von Problemen mit verwandten Diensten fehlschlagen könnten.
- Überwachung. Da alle Anfragen über das API-Gateway laufen, können Daten gesammelt werden, um Analysen und Einblicke in den API-Verkehr und die Nutzung von Diensten zu erhalten, die bei der Sicherheit, Fehlererkennung und Wartung helfen.
Bewährte Vorgehensweisen für die Sicherheit von API-Gateways
Um die Sicherheit von API-Gateway, API-Verkehr und Netzwerkdiensten zu gewährleisten, ist es wichtig, die folgenden bewährten Verfahren zu implementieren, die es dem Gateway ermöglichen, alle Versuche, eine dieser Komponenten zu stören oder anzugreifen, zu meistern:
Zentralisierte Authentifizierung. APIs bieten Zugang zu sensiblen und eingeschränkten Daten, daher ist eine starke Authentifizierung unerlässlich. Die Zentralisierung der Authentifizierung am Gateway beseitigt das Risiko, dass jeder Microservice versucht, diese komplexe Aufgabe sicher zu implementieren. Außerdem lässt sich der Code so leichter schreiben, lesen und warten. Noch besser ist die Verwendung eines zentralen Authentifizierungsservers zur Verwaltung der Authentifizierungs- und Token-Ausgabeprozesse.
Verschlüsselung des Datenverkehrs. Die Implementierung von HTTPS für den gesamten API-Datenverkehr erfolgt am besten auf der Ebene des API-Gateways und nicht für einzelne Microservices. Dies gewährleistet Konsistenz und vermeidet die Notwendigkeit einer sich wiederholenden Konfiguration über mehrere Systeme hinweg, wodurch mögliche Fehler vermieden werden.
Validierung von API-Anfragen. Die Validierung von API-Anfragen, bevor das Gateway sie an Backend-Dienste weiterleitet, verhindert fehlerhafte Anfragen und mindert das Risiko von Injektionsangriffen. Standardisierte Fehlerantworten verhindern die Preisgabe sensibler Informationen in der Fehlermeldung.
Ratenbegrenzung. Durch die Kontrolle der Anzahl von API-Anfragen kann ein Gateway verhindern, dass übermäßige böswillige oder echte API-Anfragen die Dienste überfordern. Dadurch wird verhindert, dass DDoS-Angriffe (Distributed Denial of Service) die Dienste lahmlegen und kaskadenartige Ausfälle in einem überlasteten System begrenzt werden.
Überwachung und Analyse. API-Gateways können Ausführungs- und Zugriffsprotokolle erstellen und diese an ein SIEM-System zur weiteren Analyse und zur Erkennung potenzieller Bedrohungen und Probleme senden. Die Transparenz und die Metriken, die das Gateway für die API-Nutzung bereitstellen kann, helfen bei der Lösung von Problemen beim Client-Zugriff und bei Anfragen sowie bei der Feststellung, ob nicht mehr aktuelle APIs noch in Gebrauch sind.
Zusätzliche Sicherheit neben API-Gateways kann zum weiteren Schutz von APIs beitragen. Gateways profitieren zum Beispiel davon, wenn sie hinter einer Web Application Firewall (WAF) liegen. Eine WAF kann den Zugriff beschränken und Anfragen von bekannten böswilligen IP-Adressen blockieren sowie präpariere oder verdächtige Anfragen herausfiltern, um vor gängigen Web-Exploits wie SQL-Injection-Angriffen zu schützen.
Um die Ausbreitung im Falle eines Angriffs zu verringern und die Wiederherstellung oder Fehlersuche bei einem Microservice zu erleichtern, sollten Sie stets separate, dedizierte API-Gateways für jeden Anwendungsfall, zum Beispiel für den internen Zugriff und IoT-Geräte, bereitstellen. Dies reduziert die mögliche Angriffsfläche und erleichtert die Konfiguration dedizierter Regeln und Richtlinien für jeden einzelnen Servicetyp.