Mit <kes>+ lesen

Von der API-Security zum Secure API

Angesichts der nahezu vollständigen Durchdringung heutiger IT- und Services-Landschaften mit Aufrufen von Application-Programming-Interfaces (APIs) plädiert unser Autor dafür, die heute vielerorts üblichen, aber eher reaktiven Mechanismen für API-Sicherheit zu erweitern, um zukünftig wirklich sichere APIs – Secure APIs – zu gestalten.

Moderne Web-Applikationen – inklusive der Mobile-Apps auf unseren Smartphones – sind ohne Application-Programming-Interfaces (APIs) praktisch undenkbar. Software-Anwendungen nutzen diese APIs, um miteinander zu kommunizieren und Daten auszutauschen, beispielsweise in den Bereichen Social-Media-Integration, Payment-Gateways, Wetterdienste, Kartendienste und Geolokalisierung, Machine-Learning und Zugriff auf KI-Plattformen sowie beim Zugriff auf eine fast beliebige Anzahl von Clouddiensten, vor allem bei der Kommunikation (Communications-Platform as a Service, CPaaS). Hinzu kommen APIs auf fast allen IT-Systemen im Unternehmensumfeld sowie bei der Heimautomatisierung, zum Beispiel bei intelligenten Beleuchtungssystemen. Die weite Verbreitung und extensive Nutzung von APIs haben viele gute Gründe: Diese eröffnen schließlich weitreichende Möglichkeiten der Interaktion und Integration verschiedener Services und Anwendungen, Entwickler können komplexe Dienste und Funktionen (z. B. den SMS- oder WhatsApp-Nachrichtenversand) in modularer und wiederverwendbarer Form zur Verfügung stellen. Eine „API-First“-Software-Architektur – oder auch Microservices-Architektur – sorgt für eine klare Trennung zwischen unterschiedlichen Funktionsbereichen und ermöglicht dadurch eine erhebliche Verbesserung der Skalierbarkeit und Wartbarkeit von Webanwendungen. APIs spielen auch eine zentrale Rolle im Bereich der Interaktion mit Internet-of-Things-(IoT)- und mobilen Devices. Zudem tragen APIs wesentlich zu einer deutlich besseren User-Experience bei, da sie es Web- und Mobile-Apps ermöglichen, in Echtzeit mit Backend-Systemen im Hintergrund zu kommunizieren, ohne dass Seiten ständig neu geladen werden müssten (z. B. mit react.js oder ähnlichen Frameworks).

Top 10 der API-Security

Mit der weiten Verbreitung von APIs ergibt es sich nahezu zwangsläufig, dass diese auch bösartige Akteure auf den Plan rufen. Das Open Worldwide Application Security Project (OWASP) hat die wichtigsten API-Sicherheitsrisiken in seinen API-Security-Top-10 zusammengefasst:

Broken Object-Level-Authorization: Sicherheitslücken bei der Autorisierung auf Objektebene können Angreifern ermöglichen, auf Daten oder Funktionen zuzugreifen, für die sie keine Berechtigung haben.

Broken User-Authentication: Unzureichende Benutzerauthentifizierungsmethoden können Angreifern ermöglichen, Identitäten zu übernehmen oder unbefugten Zugriff zu erlangen.

Excessive Data-Exposure: APIs, die mehr Daten preisgeben, als für den Client notwendig ist, können das Risiko eines Datenlecks erhöhen.

Lack of Resources and Rate-Limiting: APIs, die keine angemessenen Beschränkungen für die Häufigkeit der Anfragen haben, können anfällig für Denial-of-Service-(DoS)-Angriffe oder Ressourcen-Erschöpfung sein.

Broken Function-Level-Authorization: Wenn Funktionen auf Serverebene nicht richtig autorisiert sind, können Angreifer Zugriff auf für sie nicht vorgesehene Funktionen erlangen.

Mass-Assignment: ist eine Schwachstelle, bei der Angreifer unbeabsichtigt Datenfelder in Objekten ändern können, indem sie API-Anfragen ausnutzen, die nicht ausreichend gefiltert werden.

Security-Misconfiguration: Unzureichend konfigurierte Sicherheitseinstellungen können zahlreiche Schwachstellen eröffnen, durch die Angreifer Zugang erhalten oder die Daten preisgeben können.

Injection: Angriffe wie SQL-Injection, Command-Injection oder andere Injection-Flaws, bei denen nichtvertrauenswürdige Daten an einen Interpreter gesendet werden, können zu unbefugtem Zugriff oder Datenverlust führen.

Improper Assets-Management: Unzureichendes Management von API-Versionen und -Implementierungen kann zu Sicherheitslücken führen – besonders wenn alte, nicht mehr unterstützte APIs weiterhin exponiert sind.

Insufficient Logging and Monitoring: Unzureichendes Protokollieren und Überwachen kann das Erkennen von Sicherheitsverletzungen verzögern oder verhindern, was Angreifern mehr Zeit gibt, unentdeckt zu bleiben. Um diese Angriffsvektoren zu schwächen, ist es entscheidend, APIs mit Blick auf Sicherheit zu entwerfen und zu implementieren sowie regelmäßig zu testen. Sicherheitsmaßnahmen wie starke Authentifizierung und Autorisierung, Validierung und Desinfizierung von Eingaben, sichere Datenübertragung und effektive Fehlerbehandlung sind dabei unerlässlich.

Was fehlt für Secure APIs?

Neben den grundlegenden Sicherheitsmaßnahmen gibt es weitere fortgeschrittene Strategien und Techniken, die implementiert werden können, um die Sicherheit von APIs erheblich zu verstärken – in Richtung Secure APIs:

Web-Application-Firewall (WAF): Eine WAF kann helfen, APIs vor verschiedenen Angriffen zu schützen, indem sie eingehenden Datenverkehr, der bösartige Anfragen enthalten könnte, filtert und blockiert.

API-Security-Gateways: Solche spezialisierten Gateways bieten zusätzliche Sicherheitsschichten und können dabei helfen, Bedrohungen zu identifizieren und zu blockieren, bevor diese die API-Endpoints erreichen.

Zero-Trust-(ZT)-Architecture: erfordert die Implementierung eines Zero-Trust-Sicherheitsmodells, das davon ausgeht, dass interne wie externe Netzwerke potenziell kompromittiert sein könnten. Dieses benötigt eine kontinuierliche Authentifizierung und Autorisierung für jeden Benutzer und jedes Gerät, das auf die API zugreifen möchte.

Content-Security-Policy (CSP): Durch die Implementierung einer CSP lässt sich verhindern, dass bösartiger Code auf Webseiten ausgeführt wird, was besonders gegen Cross-Site-Scripting-(XSS)-Angriffe nützlich ist. Netzwerksegmentierung: dient der Trennung von Netzwerksegmenten, in denen sich APIs befinden, von anderen Teilen eines Netzwerks, um laterale Bewegungen eines Angreifers zu begrenzen.

API-Schichtung: Eine Aufteilung der APIs in mehrere Schichten reduziert die Angriffsoberfläche und erhöht die Sicherheit durch Isolation von Funktionen.

Token-Management: bedeutet eine sorgfältige Verwaltung der Lebensdauer von Tokens, indem man eine angemessene Token-Rotation und -Ablaufstrategie implementiert, um so das Risiko eines Token-Missbrauchs zu verringern.

Dependence-Scanning: Regelmäßige Scans der Abhängigkeiten können dabei helfen, bekannte Schwachstellen in genutzten Bibliotheken zu identifizieren, die im Code verwendet werden, sodass sich diese gegen gepatchte Versionen ersetzen lassen. Dynamische und statische

Code-Analyse: Empfehlenswert ist sowohl die Verwendung von Werkzeugen zur statischen Code-Analyse, um Sicherheitsprobleme im Code zu identifizieren, bevor dieser in Produktion geht, sowie dynamische Analysetools einzusetzen, um das Laufzeitverhalten von Anwendungen zu überprüfen. API-Keys und -Tokens sollten in keinem Fall im Quellcode hinterlegt sein – Authentifizierung und Autorisierung müssen im Backend um- und durchgesetzt werden, nicht im User-Interface (UI).

Incident-Response-Plan: die Entwicklung eines detaillierten Aktionsplans mit dem Ziel, dass die relevanten Teams wissen, wie sie auf Sicherheitsvorfälle in diesem Zusammenhang reagieren müssen. Dieses Wissen sollte regelmäßig im Rahmen von Übungen überprüft werden. Regelmäßige Sicherheitsschulungen: Relevante Teams sollten mit regelmäßigen Schulungen über die neuesten Bedrohungen und Best Practices in der API-Sicherheit auf dem Laufenden gehalten werden.

Regelmäßige Sicherheitsschulungen: Relevante Teams sollten mit regelmäßigen Schulungen über die neuesten Bedrohungen und Best Practices in der API-Sicherheit auf dem Laufenden gehalten werden.

Besondere Schutzmaßnahmen sollte man auch im Zusammenhang mit eigenen Large Language Models (LLMs) der künstlichen Intelligenz (KI) treffen, die per API erreichbar sind, um beispielsweise Model- und Data-Poisoning sowie Model- und Data-Evasion zu vermeiden. Hier können WAFs bereits heute behilflich sein – in naher Zukunft ist an dieser Stelle zudem die Erweiterung der einschlägigen Produkt-Portfolios im Bereich der Cyber-Sicherheit zu erwarten. In der Praxis haben in den vergangenen Jahren einige Mobile-Health-Applikationen zweifelhafte Berühmtheit erlangt: Von 30 getesteten Apps enthielten 77% hartkodierte API-Keys – viele davon waren unbeschränkt gültig. 7% enthielten hartkodierte Benutzernamen und Passwörter, 100% der getesteten API-Endpoints waren anfällig für sogenannte Broken-Object-Level-Authorization- (BOLA)-Attacken. Auch bei einigen bekannten Dating-Apps (Bumble, Grindr) gab es erhebliche Sicherheitslücken, die es ermöglichten, Accounts zu übernehmen oder personenidentifizierbare Daten (PII) zu extrahieren. Die Angriffe auf Coinbase und Peloton gelten als weitere „unschöne“ Beispiele: Bei Coinbase gab es infolge eines Broken-Object-Level-Authorization-Bugs die Möglichkeit für Dritte, Accounts zu übernehmen. In einem ähnlichen Zusammenhang stand ein Problem im Peloton-API in Kombination mit Excessive-Data-Exposure: Der Fehler ermöglichte es beliebigen Personen, persönlich identifizierbare Informationen (PII) von Peloton-Nutzern zu extrahieren respektive einzusehen. API-Attacken sind dabei im Vergleich zu klassischen Cyber-Attacken erheblich einfacher zu realisieren, da sich ein Angreifer nicht durch die gesamte Kill-Chain durcharbeiten muss, sondern unmittelbar Zugriff erhält.

Wachsende Angriffsfläche

Im letzten Jahr ist die Häufigkeit von API-Angriffen deutlich gestiegen. Dieser Aufwärtstrend, der von Check Point Research in den AI-Daten von Check Point ThreatCloud beobachtet wurde, unterstreicht den dringenden Bedarf an robusten API-Sicherheitsstrategien. Wichtige Erkenntnisse sind:

Signifikante Zunahme der Angriffe: Im Januar 2024 war jede Woche 1 von 4,6 Unternehmen weltweit von Angriffen auf Web-APIs betroffen, was einen Anstieg von 20 % im Vergleich zum Januar 2023 bedeutet und das wachsende Risiko im Zusammenhang mit API-Schwachstellen verdeutlicht.

Branchenweite Auswirkungen: Das Bildungswesen ist der am stärksten betroffene Sektor, wobei die meisten Sektoren einen zweistelligen Anstieg der Angriffe im Vergleich zum Vorjahr verzeichnen. In der Zwischenzeit erfuhren cloudbasierte Unternehmensnetzwerke einen Zuwachs der Angriffe um 34 % im Vergleich zum Vorjahreszeitraum und überholten On-Premises-Organisationsnetzwerke bei den Gesamtauswirkungen von API-Angriffen, was die sich entwickelnde Cloud-Bedrohungslandschaft unterstreicht.

Bemerkenswerte Schwachstellen und Vorfälle: Exploits wie der Fortinet-Authentifizierungs-Bypass und die Zero-Day-Schwachstellen von Ivanti hatten weitreichende Auswirkungen, wobei letztere einen unbefugten Datenzugriff und die Verbreitung von Crypto-Miner-Malware zur Folge hatten, was zeigt, wie wichtig der Schutz von APIs vor neuen Bedrohungen ist. Mehr Schwachstellen Darüber hinaus häufen sich die Sicherheitslücken: Zu den wichtigsten identifizierten Schwachstellen gehören einer Analyse zufolge schwerwiegende Sicherheitsmängel in Produkten von Fortinet, Joomla! und ownCloud, die einen unbefugten Zugriff und die Offenlegung von Informationen ermöglichten. Neben diesen drei Beispielen, deren Auswirkungen nachfolgend kurz erläutert werden, ist vor allem die jüngste Begegnung von Ivanti mit Zero-Day-Schwachstellen im Gedächtnis geblieben, die zu erheblichen Sicherheitsverletzungen geführt hat – einschließlich unbefugtem Zugriff und dem Einsatz von Crypto-Mining-Malware, was die raffinierte Natur dieser Angriffe belegt. Angreifern gelingt es immer wieder, auf kreative Weise die Schwachstellen ausfindig zu machen und auszunutzen.

Fortinet Multiple Products Authentication Bypass (CVE-2022-40684) – 9.8 CVSS: Bei dieser im Oktober 2022 bekannt gegebenen Sicherheitslücke konnten unbefugte Benutzer die Authentifizierungsmaßnahmen in verschiedenen Fortinet-Produkten umgehen. 2023 war im Durchschnitt 1 von 40 Unternehmen weltweit pro Woche von dieser Sicherheitslücke betroffen.

Joomla! Authentication Bypass (CVE-2023-23752) – 5.3 CVSS: Bei dieser im Februar 2023 bekannt gegebenen Sicherheitslücke handelt es sich um eine Schwachstelle, die unbefugten Zugriff auf Joomla!-Websites ermöglicht und so möglicherweise die Authentifizierungsmaßnahmen für Benutzer gefährdet hat. 2023 war (nach der Bekanntgabe) durchschnittlich 1 von 42 Unternehmen weltweit pro Woche von dieser Sicherheitslücke betroffen.

ownCloud Graph API Information Disclosure (CVE-2023-49103) – 7,5 CVSS: Durch diese im November 2023 bekannt gegebene Sicherheitslücke konnten möglicherweise sensible Informationen in ownCloud-Instanzen offengelegt werden. 2023 war davon (nach der Offenlegung) durchschnittlich 1 von 86 Unternehmen weltweit pro Woche betroffen.

Fazit

Ohne APIs sind moderne Applikationen, allem voran Web- und Mobile-Apps undenkbar – über 80 % des Web-Traffics enthalten mittlerweile API-Calls. Durch die Nutzung von APIs können sehr komplexe Funktionen an Dritte ausgelagert werden (Kommunikation, Sign-up, Authentifizierung, KI-Integration u. v. a. m.) – Anbieter können sich auf die Kernfunktionalitäten ihrer App konzentrieren und diese schneller auf den Markt bringen. Allerdings steigt mit der API-Nutzung auch die Missbrauchsgefahr durch Dritte, weshalb es Maßnahmen zur Minimierung der Angriffsfläche und zur Absicherung braucht, damit aus der – eher reaktiv aufgestellten – API-Security zukünftig wirklich sichere Schnittstellen – Secure APIs – werden.

Diesen Beitrag teilen: