Myst - stock.adobe.com

API-Sicherheit und die Bedeutung der Zugriffskontrollen

APIs haben die Art und Weise, wie wir Software entwickeln und einsetzen, revolutioniert – gleichzeitig aber auch das Risiko von Datenschutzverletzungen und Cyberangriffen erhöht.

Da APIs kritische Funktionen wie die Server-zu-Server-Kommunikation, Datenverarbeitung und IT-Systemintegration verwalten und damit für die Aufrechterhaltung des Betriebs essenziell sind, muss ihre Absicherung oberste Priorität haben. Doch schon die Implementierung starker Zugangskontrollen und der Schutz der sensiblen Anmeldeinformationen stellt die Security-Abteilungen vor Herausforderungen. Cyberkriminellen bietet dies vielfältige Möglichkeiten für Missbrauch.

Wer Zugriff auf API-Berechtigungsnachweise hat, ist autorisiert, Anfragen an die API zu stellen, um mit den sensiblen Daten, Anwendungen oder Webdiensten zu interagieren. Dabei sind zwei Komponenten von Berechtigungsnachweisen für die API-Sicherheit von wesentlicher Bedeutung.

1. API-Schlüssel beziehungsweise Token: Eine eindeutige alphanumerische Zeichenfolge dient hier als Identifikationsmerkmal. Sie wird dem Entwickler oder der Anwendung vom API-Anbieter zur Verfügung gestellt und dient als Identitätsnachweis bei sicheren API-Anfragen.

2. Secrets: In einigen Fällen wird ein API-Schlüssel oder Token mit einem Secret gepaart. Dabei handelt es sich um eine vertrauliche Information, die nur dem API-Anbieter und der autorisierten Anwendung bekannt ist. Dieses Secret kommt zum Einsatz, um kryptografische Signaturen zu erzeugen oder andere sicherheitsrelevante API-Vorgänge durchzuführen.

Zu den bewährten API-Security-Praktiken gehören die zufällige Generierung von Schlüsseln und Secrets, die Verwendung unterschiedlicher Schlüssel für verschiedene Anwendungen, die regelmäßige Rotation der Schlüssel sowie das Löschen der Schlüssel, wenn sie nicht mehr benötigt werden. Moderne PAM-Tresore (Privileged Access Management) verwalten diese Prozesse automatisch und in einer Geschwindigkeit, die für schnelle Entwicklungszyklen und DevOps-Workflows erforderlich ist.

Welche Sicherheitspraktiken dabei jeweils zum Einsatz kommen, hängt auch vom Typus der Programmierschnittstelle (das heißt Web API, Database API, Cloud API, Payment API etc.) und dem jeweiligen potenziellen Sicherheitsrisiko ab.

Wie sich Zugriffskontrollen auf die API-Sicherheit auswirken

API-Zugriffskontrollen bestimmen, wer auf welche Ressourcen zugreifen, und bestimmte Aktionen durchführen darf. Verantwortliche können verschiedene Hebel ziehen, um das „Wer, Was und Wann“ der API-Zugriffskontrolle zu bestimmen und die API-Sicherheit zu optimieren.

  • Authentifizierung: Mit API-Schlüsseln, Token oder anderen Authentifizierungsmethoden wie OAuth 2.0 kann die Identität des Benutzers oder der Anwendung, die die API-Anforderungen stellt, verifiziert werden. Bei vielen Anwendungen erfolgt die Authentifizierung dabei über Single-Sign-On im Hintergrund.
  • Autorisierung: Ferner kann festlegt werden, welche Aktionen der authentifizierte Benutzer oder die Anwendung durchführen darf, indem Rollen, Berechtigungen und Richtlinien im Vorfeld definiert werden.
  • Scopes: Mithilfe von individuell festgelegten Geltungsbereichen können die Verantwortlichen während des Authentifizierungsprozesses bestimmte Berechtigungen definieren und so genau steuern, auf welche Teile einer API ein Benutzer oder eine Anwendung zugreifen darf.
  • Sitzungsverwaltung: Mit der Token-basierten Authentifizierung kann die Verwendung von unsicheren Sitzungscookies unterbunden werden. Indem die verantwortlichen Teams sicherstellen, dass die Token ein angemessenes Ablaufdatum haben oder widerrufen werden können, erhöhen sie die Sicherheit nachhaltig.

Grundsätzlich empfiehlt sich ein granularer Ansatz bei der Zugriffskontrolle, der einem strengen Least-Privilege-Prinzip (POLP, Principle of least Privilege) folgt. So kann sichergestellt werden, dass Personen und Systeme nur auf die Daten und Funktionen zugreifen können, die sie für die Erledigung ihrer Aufgaben auch tatsächlich benötigen. PAM-Lösungen können dabei helfen, risikobasierte Zugriffskontrollen einzurichten, die Just-in-Time-Zugriff unterstützen und die API-Sicherheit so auf eine hohe Stufe heben.

Wesentliche Sicherheitsfunktionen bei Drittanbieter-APIs

So wichtig die Verwaltung von Anmeldeinformationen und die Absicherung privilegierter Zugriffe auch sind, der Grundstein der API-Sicherheit wird bereits während der Entwicklung beziehungsweise dem Design der Programmierschnittstelle gelegt. Entwickler, die ihre eigenen APIs erstellen, sollten daher unbedingt überprüfen, ob sie diese richtig konfiguriert haben, um potenzielle Schwachstellen und damit Einstiegspunkte von Kriminellen zu beseitigen. Kommen APIs von Drittanbietern zum Einsatz, sollte sich diese vor deren Integration in die eigene IT-Umgebung unbedingt vergewissert werden, dass folgende Sicherheitsfunktionen und -elemente vorhanden sind:

  • Rate Limiting / Drosselung: Ermöglicht es, die Anzahl der API-Anfragen, die ein Benutzer oder eine Anwendung innerhalb eines bestimmten Zeitrahmens stellen kann, zu begrenzen. Dies verhindert eine übermäßige Nutzung oder einen böswilligen Missbrauch der API, und damit eine Verschlechterung der Servicequalität.
  • Verschlüsselung: Schützt Daten sowohl im Ruhezustand als auch bei der Übertragung vor Missbrauch. Wichtig sind dabei Verschlüsselungsalgorithmen, die dem Industriestandard entsprechen, sowie der Einsatz von HTTPS (TLS/SSL) für die sichere Datenübertragung.
  • Fehlermanagement: Stellt sicher, dass allgemeine Fehlermeldungen an den Anbieter übermittelt werden, ohne sensible Informationen über das System preiszugeben.
  • Eingabevalidierung: Mit der Validierung und Bereinigung sämtlicher Eingaben, können SQL Injection, XSS (Cross Site Scripting) und andere Injektionsangriffe verhindert werden.
  • Gateway-Konfiguration: Werden APIs in der Cloud verwendet, muss sichergestellt werden, dass das API-Gateway richtig konfiguriert ist.
  • Content Security Policy (CSP): Mit der Implementierung eines CSP-Headers, lassen sich Quellen von Inhalten einschränken, die von einer API geladen werden können. So wird das Risiko von XSS-Angriffen nachhaltig verringert.
  • Cross-Origin Resource Sharing (CORS): Indem CORS-Richtlinien konfiguriert werden, lässt sich kontrollieren, welche Domänen auf die API zugreifen dürfen.
  • Datei-Uploads: Unterstützt eine API Datei-Uploads, können hochgeladene Dateien validiert und bereinigt und auf diese Weise Sicherheitsprobleme wie File-Inclusion-Angriffe und Malware-Uploads verhindert werden.

Klassische Beispiele für API-Sicherheitslücken und -Angriffswege

Der häufigste Weg für Angreifer, sich Zugang zu APIs zu verschaffen, ist der Missbrauch von Anmeldeinformationen, die sich im Code befinden. Eine große Gefahr geht dabei vom Quellcode aus. Entwickler sichern ihren Code oft in Wikis, Message Boards und Slack-Kanälen. Und allzu oft landet dieser dann in öffentlichen Repositories wie GitHub. Das Fatale: Der Großteil dieses Quellcodes enthält eingebettete API-Anmeldeinformationen. So konnten die Sicherheitsexperten von GitGuardian im Rahmen eines Scans von über einer Milliarde Commits in GitHub etwa 10 Millionen Secrets, einschließlich API-Schlüssel, aufspüren.

Andreas Müller, Delinea

„Der häufigste Weg für Angreifer, sich Zugang zu APIs zu verschaffen, ist der Missbrauch von Anmeldeinformationen, die sich im Code befinden. Eine große Gefahr geht dabei vom Quellcode aus.“

Andreas Müller, Delinea

Angreifer kennen diese Schwachstellen bestens und durchsuchen öffentliche Repositories deshalb aktiv nach API-Anmeldeinformationen für schändliche Aktionen. Ist es ihnen erst einmal gelungen, sich Zugang zu APIs zu verschaffen, setzen sie ihren Angriff dort weiter fort und suchen gezielt nach weiteren Anmeldedaten, idealerweise privilegierten, mit denen sie auf weitere Ressourcen in der IT-Umgebung zugreifen können. Problematisch ist dabei, dass ein Angreifer, sobald er sich mit einer API-Berechtigung authentifiziert hat, nur schwer aufgespürt werden kann, da er innerhalb der erwarteten Parameter arbeitet.

Selbst wenn die oben beschriebenen Sicherheitsmaßnahmen befolgt wurden, ist er dann in der Lage eine beliebige Anzahl schädlicher Aktivitäten durchzuführen, etwa das Einschleusen von bösartigem Code durch eine SQL-Injection- oder einen NoSQL-Injection-Angriff. Umso wichtiger ist es, Benutzereingaben immer zu validieren und zu bereinigen, bevor sie in APIs verarbeitet werden, und parametrisierte Abfragen zu verwenden, um Injektionsangriffe zu verhindern.

Ferner können APIs Ziel von DDoS-Angriffen werden, die die Infrastruktur eines Unternehmens überfordern und zu kostspieligen Serviceunterbrechungen führen. Besonders schädlich sind solche Angriffe dann, wenn APIs in der Cloud gehostet werden. Daher sollten IT-Abteilungen stets Lösungen zur DDoS-Abwehr und zur Überwachung des Datenverkehrs einsetzen, um DDoS-Angriffe umgehend zu erkennen und abzuschwächen. Cloud-basierte DDoS-Schutzdienste sind dabei essenziell, wenn APIs in der Cloud gehostet werden.

Fazit

APIs sind ein attraktives Ziel für Cyberkriminelle und längst einer der wichtigsten Angriffsvektoren. Bedenkt man, welch entscheidende Rolle APIs bei der digitalen Transformation spielen, und welch umfangreichen Zugang sie zu sensiblen Daten und Systemen bereitstellen, wird deutlich, dass sie einen starken Ansatz für Sicherheit und Konformität erfordern. Effektive API-Sicherheit steht und fällt dabei mit der Fähigkeit von Unternehmen, Anmeldeinformationen sicher zu verwalten und mit PAM-Lösungen, die speziell auf die Absicherung von API-Secrets zugeschnitten sind.

Die Autoren sind für den Inhalt und die Richtigkeit ihrer Beiträge selbst verantwortlich. Die dargelegten Meinungen geben die Ansichten der Autoren wieder.

Erfahren Sie mehr über Anwendungs- und Plattformsicherheit