BLOG | BÜRO DES CTO

Der Schutz von API-Endpunkten erschwert die Sicherung von APIs

Lori MacVittie Miniaturbild
Lori MacVittie
Veröffentlicht am 30. Januar 2024

An Statistiken zur (Un-)Sicherheit von APIs mangelt es nicht. Eine flüchtige Suche im Internet liefert Ihnen praktisch jede Perspektive zu dem von Ihnen gewünschten Thema. Es genügt zu sagen, dass (a) API-Angriffe zunehmen und (b) einige dieser Angriffe erfolgreich sind. 

Es ist auch allgemein bekannt, dass Unternehmen schon damit zu kämpfen haben, alle in ihrem Unternehmen vorhandenen APIs zu finden. Das liegt nicht nur daran, dass diese APIs über den gesamten Kern, die Cloud und den Rand verteilt sind. Das liegt daran, dass es außer der bekannten Open API Specification (OAS) keine echten „Standards“ gibt, auf die man sich beim Definieren oder gar Finden von APIs stützen könnte. 

Das heißt nicht, dass wir sie brauchen. Schließlich hatten wir SOAP, WSDL und UDDI, und obwohl die Leute diese immer noch verwenden und auf XML als Datenformat vertrauen, ist der Großteil der Welt auf REST, JSON, GraphQL und gRPC umgestiegen. 

Selbst wenn wir Standards hätten, würde das nichts an der Tatsache ändern, dass APIs schwer zu sichern sind. 

Das liegt daran, dass der Begriff API ein Oberbegriff ist. Beispielsweise ist die OpenTelemetry-API einfach eine Möglichkeit zu sagen: „Wir stellen Entwicklern die Funktionen von OpenTelemetry zur Verfügung.“ Es ist nicht so, dass Sie eine Sicherheitsrichtlinie haben, die „die“ Open Telemetry API abdecken kann. Das wäre ideal und würde die Dinge erheblich einfacher machen. Aber das ist nicht, was wir haben. Was wir haben, sind Sicherheitsrichtlinien, die die Endpunkte der OpenTelemetry-API abdecken. 

Lassen Sie uns der Sache auf den Grund gehen, einverstanden?

APIs und Endpunkte

Verwenden wir für unser Beispiel die Open AI API, da generative KI derzeit bei allen in aller Munde ist. 

Als Erstes werden Sie feststellen, dass es zwar nur „eine“ API gibt, aber viele Endpunkte. Wie viele? Diese Zahl ändert sich jedes Mal, wenn neue Funktionen eingeführt werden. 

Hier ist eine (nicht vollständige Liste): 

  • https://api.openai.com/v1/chat/completions 
  • https://api.openai.com/v1/audio/speech 
  • https://api.openai.com/v1/audio/transcriptions 
  • https://api.openai.com/v1/audio/translations 
  • https://api.openai.com/v1/embeddings 
  • https://api.openai.com/v1/fine_tuning/jobs
  • https://api.openai.com/v1/files 

Multimodale generative KI erweitert die Liste der Inhaltstypen um Medien (Audio und Video), fügt jedoch neue Endpunkte zur Handhabung der Verarbeitungsanforderungen hinzu. Zusätzliche Funktionen, wie die Verwendung von Tools, können die Anzahl der Endpunkte ebenfalls erweitern. Jeder Fortschritt – jede neue Funktion, die uns begeistert – fügt der API normalerweise einen weiteren Endpunkt hinzu. 

Sie werden in diesen Endpunkten auch das „v1“ bemerken. Das bedeutet, dass mit Erscheinen von Version 2 ein weiterer Satz Sicherheitsrichtlinien für diese Endpunkte erforderlich ist und dass einige dieser Richtlinien je nach den Änderungen am tatsächlichen Endpunkt geändert werden müssen. 

Dies ist auch im IT-Stack vorhanden, wo die Automatisierung über Geräte-APIs erfolgt. Die Anzahl der Endpunkte hängt weitgehend von Ihrer Umgebung ab. Je mehr Geräte Sie verwalten, desto mehr Endpunkte müssen Sie verwalten und sichern. Oh, und vergessen wir nicht, dass keine zwei Geräte dieselbe API verwenden. Ich meine, das wäre doch verrückt, oder? Fast so, als ob sich zwei Cloud-Anbieter darauf einigen würden, dieselbe API zu verwenden. Dies ist wahrscheinlich der Grund, warum „Komplexität“ nach wie vor der am häufigsten genannte Grund dafür ist, eine Vielzahl von Betriebsaufgaben nicht zu automatisieren. Zu viele Tools und APIs erschweren die Automatisierung und erschweren die Sicherung noch mehr. 

Die API-Sicherheit muss sich jedoch an allen diesen Endpunkten orientieren, da Angreifer über sie eindringen können. Und jeder Endpunkt erfordert einen anderen Satz von Parametern, die als JSON (oder XML oder GraphQL oder -Objekte) in der Nutzlast landen. Es müssen Grenzen dafür vorhanden sein, was die einzelnen Parameter enthalten können: Ist es alphanumerisch? Charaktere? Ein Wertebereich? Wie lange kann es dauern? Welche Zeichen sind nicht erlaubt? Alle diese Informationen werden in eine Richtlinie umgesetzt, die das Erscheinungsbild des Inhalts vorschreibt und so das Durchschleichen von Angriffen verhindert. 

Das Erstellen einer Richtlinie nur für die Open AI API wird einige Zeit in Anspruch nehmen. Und es ist nur eine API. Laut unserer Studie, die 2024 veröffentlicht wird , verfügen die meisten Organisationen im Schnitt über 442,8 APIs, und bei sehr großen Organisationen schießt diese Zahl sprunghaft in die Höhe. Wenn man bedenkt, wie viele Endpunkte – und Versionen von Endpunkten – das bedeuten könnte, wird sehr schnell klar, warum API-Sicherheit so verdammt schwierig ist. 

Und warum Angreifer erfolgreich genug sind, um sie immer wieder ins Visier zu nehmen.