Sikov - stock.adobe.com

API-Schlüssel: Risiken und bewährte Security-Verfahren

API-Schlüssel sind kein Garant für die API-Sicherheit. Sie sind lediglich der erste Schritt der Authentifizierung und benötigen selbst Schutz, um die Angriffsfläche zu reduzieren.

Mit der zunehmenden Nutzung von APIs (Programmierschnittstellen) stellt sich auch die Frage nach deren Sicherheit. Was nützt die Sicherheitsstrategie der Anwendungen, mit denen sie verbunden sind, wenn die APIs Daten preisgeben oder einen Einstiegspunkt für einen Angriff darstellen?

Angreifer sind ständig auf der Suche nach potenziellen Schwachstellen in APIs, die sie ins Visier nehmen können - ein möglicher Ansatzpunkt sind dabei API-Schlüssel beziehungsweise API Keys.

Grund genug, API-Schlüssel einmal näher zu betrachten, welche Sicherheitslücken sie aufweisen und wie man sie schützen kann.

Was ist ein API-Schlüssel?

Ein API-Schlüssel ist ein eindeutiger Code, der identifiziert und verifiziert, dass Anwendungen oder Endbenutzer, die eine API (Application Programming Interface) aufrufen, berechtigt sind, den Zugriff auf diese API anzufordern - und bietet somit eine erste Authentifizierungsstufe. Je nach Art des API-Schlüssels kann er den Zugang auf autorisierte Benutzer beschränken, Nutzungsmuster identifizieren, den Datenverkehr begrenzen und Aufrufe an eine API blockieren oder einschränken.

API-Schlüssel sind der erste Schritt im Authentifizierungsprozess. Sie stellen fest, ob die an die API übermittelten Aufrufe gültig sind, bestätigen die Identität der Anfragenden und stellen sicher, dass sie die Berechtigung haben, den Zugriff anzufordern. API-Schlüssel bieten jedoch nur begrenzte Authentifizierungsmöglichkeiten und sollten nicht als einzige Authentifizierungsmethode verwendet werden.

Schwachstellen bei API-Schlüsseln

Es ist wichtig zu wissen, dass API-Schlüssel eine Reihe von Schwachstellen aufweisen, die möglicherweise ausgenutzt werden können. Zu den Sicherheitsrisiken von API-Schlüsseln gehören die folgenden:

  • API-Schlüssel werden bei der Erstellung selten verschlüsselt. API-Schlüssel werden oft im Klartext generiert und gespeichert, was es böswilligen Akteuren ermöglicht, sie zu stehlen, wenn keine weitere Verschlüsselung erfolgt.
  • Es fehlt eine sichere Speicherung. Sobald ein Endbenutzer einen API-Schlüssel erhält, muss er ihn sicher aufbewahren. Dies kann mit Hilfe eines Geheimnismanagers, eines lokalen Gerätespeichers oder - noch schlimmer - durch Aufschreiben auf einen Haftzettel an seinem Arbeitsplatz geschehen.
  • Von Dritten erstellte API-Schlüssel sind nicht standardmäßig sicher. Unternehmen können Dienste von Drittanbietern nutzen, um API-Schlüssel zu erstellen, auszugeben und zu verteilen. Diese Drittanbieter bieten jedoch oft keine Sicherheitsfunktionen, so dass der Schutz und die Verschlüsselung von API-Schlüsseln den Softwareentwicklern überlassen bleibt.
  • API-Schlüssel bieten keine granularen Kontrollmöglichkeiten. Endbenutzer, die über detailliertere Zugriffsrechte und Berechtigungen für eine API verfügen, werden zum Beispiel nicht durch einen API-Schlüssel erkannt.

Wie man API-Schlüssel schützen kann

Trotz ihrer Schwächen sind API-Schlüssel unverzichtbare Komponenten bei der Nutzung von APIs. Sie erfordern daher eine sorgfältige Verwaltung und Sicherheitsmaßnahmen. Um die Sicherheit von API-Schlüsseln zu gewährleisten, sollten Sie sich an die folgenden bewährten Verfahren halten:

  • API-Schlüssel nicht innerhalb des Codes oder des Quellverzeichnisses der Anwendung speichern. Um die allgemeine Sicherheit einer Webanwendung zu optimieren, betten Softwareentwickler manchmal API-Schlüssel in den Code selbst ein. Wenn der Quellcode der API oder der Anwendung in einem öffentlichen Repository, wie beispielsweise GitHub, veröffentlicht wird, ist der API-Schlüssel öffentlich zugänglich.
  • API-Schlüssel sicher speichern. Erstellen Sie eine Umgebungsvariable, um API-Schlüssel darin zu speichern. Das Speichern eines API-Schlüssels als Umgebungsvariable verhindert, dass er preisgegeben wird, wenn der Quellcode in ein öffentliches Repository hochgeladen wird. Entwickler können API-Schlüssel auch in sicheren Dateien außerhalb des Quellbaums der Anwendung speichern oder einen Dienst zur Verwaltung von Geheimnissen verwenden.
  • API-Schlüssel erneuern. API-Schlüssel ändern sich nicht und laufen nicht ab, bis ihr Besitzer sie absichtlich löscht. Wechseln Sie die API-Schlüssel ständig, um potenzielle Schwachstellen zu reduzieren, falls sie offengelegt werden. Erstellen Sie eine Sicherheitsrichtlinie, die den Wechsel von API-Schlüsseln alle 30, 60 oder 90 Tage vorschreibt. Viele Compliance-Vorschriften und -Rahmenwerke, wie beispielsweise ISO 27001, verlangen eine regelmäßige Änderung der Schlüssel.
  • Ungenutzte API-Schlüssel löschen. Löschen Sie nicht nur die wechselnden Schlüssel, sondern auch ungenutzte oder nicht benötigte API-Schlüssel, um zu verhindern, dass böswillige Akteure sie für einen Angriff verwenden.

Erfahren Sie mehr über Anwendungs- und Plattformsicherheit