Sicherheitslücken in APIs müssen geschlossen werden

API Sicherheit

APIs werden bei Firmen immer populärer – damit nimmt natürlich auch das Interesse auf der dunklen Seite der Macht zu. APIs sind ein gern gehacktes Ziel, da hier die wichtigsten Informationen übermittelt werden. Wie kann ich die Sicherheit meiner API sicherstellen?

API Sicherheit

API-Sicherheit - Voraussetzung für moderne Unternehmen

Moderne Unternehmen pflegen moderne Technologien. Startups und KMUs machen seit Jahren von APIs (Application Programming Interfaces), also Programmierschnittstellen, Gebrauch. API-Sicherheit wird hier vorausgesetzt. Sichere APIs ermöglichen den gesicherten Datentransfer zwischen (verteilten) Systemen, damit Unternehmen Informationen zuverlässig teilen können.

Zur Ergänzung: Viele APIs basieren auf der REST Softwarearchitektur (REST-API). Beim Datentransfer werden hierbei Protokolle zum Datenaustausch in bestimmten Rückgabeformaten übertragen, z.B. SOAP für XML.

API-Sicherheit - die drei Pfeiler

Die Zugänglichkeit Ihrer Firma via APIs ist mittlerweile unerlässlich, weil Prozesse dadurch effizienter gestaltet und teilweise gar komplett automatisiert werden können. Wie App Developer auch können API-Entwickler Ressourcen nutzen, um Nutzern zu helfen, diese optimiert einzusetzen. Die große Herausforderung besteht darin, Anwendungsschnittstellen so zu programmieren, dass API-Sicherheit, definiert durch die drei Pfeiler Authentifizierung (Authentication), Autorisierung (Authorization) und Rückverfolgbarkeit (Accountability) von Nutzern sowie Anwendungen, hoch ist:

Hier wird die Quelle (Source) des HTTP-Aufrufs festgestellt.

Weil jeder HTTP-Aufruf im Kontext einer zustandslosen REST API unabhängig behandelt wird, muss der Handlungsspielraum jedes Mal aufs Neue abgesteckt werden.

Hier wird die Verarbeitung der Ressource im Detail protokolliert.

Sicherheitsmaßnahmen für APIs

API-Sicherheit - keine Garantie

API-Entwickler sind darauf spezialisiert Java REST API sichern zu können, sodass REST API Sicherheit gewährleistet wird.

API-Sicherheit kann nie zu 100 % garantiert werden, da APIs den Mechanismen des Web ausgesetzt sind – und hier gibt es leider nicht nur White Hats, sondern auch Black Hats. Das Bereinigen von Sicherheitslücken gehört zum Alltag eines guten CTOs und seines Teams. Deutsche und internationale Unternehmen können Maßnahmen ergreifen, um bspw. Java REST APIs optimal zu sichern.

Grundlegend gibt es also eine Art API-Sicherheits-Ideal: Zum einen will man als (REST) API-Entwickler den Angreifern das Leben schwer machen, zum anderen sollen die Programmierschnittstellen für Nutzer immer noch einfach zu bedienen sein.

API-Sicherheit - API-Management-Lösung als potentielles Sicherheitsrisiko

Die Tools zur Administration von APIs, s.g. API-Management Lösungen, die von Agenturen für API-Entwicklung deutschlandweit (München, Stuttgart, Hamburg, Berlin, etc.) implementiert und von Firmen benutzt werden, weisen verschiedene Komponenten zum Sichern von APIs auf. Hierzu zählt man gewöhnlich Methoden zur Authentifizierung und Datenratenbegrenzung (synonym Bandbreitenkontrolle). Derartige Methoden ermöglichen den sicheren Zugriff durch Mitarbeiter, Partner, Kunden und Third Party Developers auf geschützte Informationen.

Leider können trotz dieser Tools zur Verwaltung der APIs konventionelle Sicherheitsvorkehrungen teilweise umgangen werden. Wo API-Management-Lösungen und deren Methoden zu kurz kommen, müssen customized Lösungen für API-Sicherheit geschaffen werden, damit API-Attacks erfolgreich vorgebeugt oder abgewehrt werden.

Es folgen potentielle Bedrohungen der API-Sicherheit, die nicht nur deutsche Unternehmen sondern auch internationale Firmen mit ausgezeichneter IT-Infrastruktur und top API Developers Probleme bereiteten:

API-Sicherheit - potentielle Bedrohungen

Tools zur Verwaltung von APIs blocken zwar ungültige Login-Versuche. Sie verhindern jedoch oft nicht, dass Login-Versuche wiederholt ausgeübt werden können. API Hacker halten die Login-Anfragen im gerade noch unauffälligen Bereich und operieren mit unterschiedlichen IPs.

Hacker verschaffen sich Zugriff, indem sie nichtsahnende interne Benutzer dazu anleiten, sich in ein kompromittiertes System einzuloggen. Hier können API Token und API key – für komplexere Fälle sollte von API Keys weg hin zu OAuth2 und OpenID Connect gewechselt werden – vom Hacker abgegriffen werden, die dann den völlig ordinär scheinenden Zugriff auf API-Dienste ermöglichen.

Bei einem DDoS-Angriff finden orchestriert mehrere relative gewöhnliche API Requests (read / write) über verschiedene Clients hinweg statt, wobei das schiere API-Zugriffsvolumen den API-Dienst lahmlegt. So können API-Systeme kompromittiert werden (z.B. Domain-Hijacking durch fake DNS-Responses).

Mit Injection Attacks kann ein Hacker nicht vertrauenswürdige Elemente anhand einer Query in Programme bzw. Anwendungsdienste “injizieren”:Die Queries werden von einem Interpreter gelesen und verarbeitet und die Programmausführung ändert sich. So können bspw. API-Dienste durch das Laden von Dateien exzessiver Größe manipuliert werden.

Nicht nur mit Injection Attacks können Hacker (Mitarbeiter nicht ausgeschlossen) Daten extrahieren, klauen, vernichten oder manipulieren. Neben Injection Attacks gibt es weitere Gefährdungen der API-Sicherheit wie dem Einschleusen von malicious, also bösartigem Code und der Überlastung durch extreme Anwendung (Antwortzeiten des Servers nehmen zu).

Sämtliche Aktionen (read und write), die mit oder an einer API ausgeführt werden, sollten in einer Reporting-API dokumentiert werden. Hierzu sollte also eine Art API-Activity Log-File zugänglich sein. So kann während oder nach einer Gefahrenlage für die API-Sicherheit eine Analyse erfolgen, um in Zukunft optimal auf derartige Szenarien zu reagieren und Prävention zu betreiben.

API-Sicherheit - Fazit

Der Trade-Off zwischen Abwehrhaltung einnehmen und Nutzerfreundlichkeit offerieren sollte bei der Implementierung und Begutachtung von API-Sicherheit unbedingt eine zentrale Rolle einnehmen. API-Entwicklungsagenturen wie appleute stehen Ihnen beratend sowie praktisch zur Seite – seien Sie lieber “safe than sorry”.

Sichere APIs

Sie wollen mehrere Anwendungen über eine API verknüpfen?

Nehmen Sie Kontakt mit unserem Team auf – wir helfen Ihnen gerne!