Sicherheitslücken bei Programmierschnittstellen entdecken und stopfen

APIs eröffnen neue Geschäftsfelder für Unternehmen, müssen aber richtig implementiert werden, um keine Schwachstellen in die IT-Systeme zu reißen.

Application Programming Interfaces, kurz APIs, sind für Sicherheitsprofis ein Thema und nicht unumstritten. Sie sind wahrscheinlich Bestandteil einiger Attacken auf prominente Webseiten, darunter Pinterest und Instagram. Auch eine Attacke auf Snapchat, bei der 4,6 Millionen Nutzerdaten geklaut wurden, wird dem Einsatz unsicherer APIs zugeschrieben. Die Programmierschnittstellen waren zwar nicht direkt Schuld, dennoch erlauben sie es den Angreifern, die Telefonnummern mit Mitgliedern von Snapchat abzugleichen.

In diesem Tipp diskutiere ich, wie unsichere APIs sein können und warum sie eine Gefahr für Unternehmen und Nutzer darstellen. Zudem erläutere ich Maßnahmen, die Sicherheitsteams treffen müssen, damit sie nicht nur die APIs im Unternehmen zuverlässig absichern, sondern auch die Art, wie APIs Daten verarbeiten.

Was ist eine API?

Eine API ist eine Sammlung von Funktionen und Routinen, mit denen sich spezielle Aufgaben erledigen lassen oder über die einfache Methoden für Softwarekomponenten zur Verfügung stellen. Damit lassen sich häufige Aufgaben und Prozessen, bei denen verschiedene Rechner miteinander interagieren, vereinfachen.

APIS können etwa eine Bibliothek sein, die spezielle Anweisungen für Routinen, Datenstrukturen, Objektklassen und Variablen enthalten. Alternativ können APIs auch einfach Spezifikationen für den Zugriff auf entfernte Systeme enthalten. Einige APIs basieren auf internationalen Standards, ein Beispiel dafür ist Portable Operating System Interface (POSIX). Andere werden als Open Source veröffentlicht oder sind in den Dokumentationen von Herstellern definiert. Ein Beispiel: Microsofts Windows API ermöglicht es Entwicklern, Software für Windows zu schreiben.

Viele Unternehmen stellen APIs für den Zugriff auf ihre Daten bereit, um zusätzliche Einnahmequellen und Geschäftsfelder zu erreichen. Die Popularität des Web 2.0 hat zudem dafür gesorgt, dass zahlreiche Nutzer und Programme APIs verwenden, um Daten unterschiedlicher Dienste abzugleichen oder zu nutzen. Ein Beispiel hierfür sind die Amazon Web Services, die sich über APIs auslesen oder steuern lassen.

Indem Unternehmen APIs öffentlich zugänglich machen, wird der Zugriff auf Services, Cloud-Systeme und andere Dienstleistungen für Partner und Kunden einfacher. Zudem können Drittentwickler die Schnittstellen nutzen, um neue Dienste oder Programme zu verwirklichen.

In einer Studie von Layer 7 Technologies gaben 43 Prozent der Befragten an, dass ihre Unternehmen aktuell APIs einsetzen. Weitere 27 Prozent wollten APIs über das nächste Jahr einführen. Die Facebook-Plattform ist ein gutes Beispiel für den Erfolg von APIs in Unternehmen: Dank den Schnittstellen konnten Entwickler zahlreiche Applikationen und Programme für Facebook entwickeln. Ohne Zweifel waren viele dieser Apps Teil des Erfolgs von Facebook.

Web-basierte APIs, wie sie etwa Facebook nutzt, setzten Anfragen via Hypertext Transfer Protocol (HTTP) ab, die Antworten als genau strukturierte Nachrichten liefern, meist in Formaten wie der Extensible Markup Language (XML) oder JavaScript Object Notation. Diese Arten von API ersetzen immer häufiger Dienste auf Basis des Simple Object Access Protokoll (SOAP) oder einer Serviceorientierten Architektur (SOA). Das liegt auch daran, da sie einfacher zu implementieren sind und sich ideal dafür eignen, offene Architekturen zum Austausch von Informationen zwischen Anwendungen und Nutzern aufzubauen.

API Sicherheitsfehler entdecken und vermeiden

Auch wenn APIs zahlreiche Vorteile mitbringen, so sind sie auch anfällig für Sicherheitsprobleme. Meist ist das Problem nicht das Konzept der API, sondern wie die Programmierschnittstelle geschrieben wurde. Viele Anwendungsentwickler schreiben APIs ohne sich dabei Gedanken über die Sicherheit zu machen, wodurch sowohl die Applikation wie auch die Daten Risiken ausgesetzt sind. Schlecht geschriebener Code kann schnell gefährlicher Code werden.

Glücklicherweise gibt es zahlreiche Dinge, die Organisationen und Entwickler tun können, um die Sicherheit von APIs in Unternehmensumgebungen sicherzustellen.

Bereits während der Entwicklung – und vor der Veröffentlichung – sollte der Code von einem Sicherheitsexperten auf Schwachstellen abgeklopft werden. Auch die Dokumentation der API ist enorm wichtig. Sauber dokumentierter Code lässt sich bei der Überprüfung einfacher analysieren, der Untersuchende kann sofort sehen, welche Aktionen die API ausführen soll. Zudem erhalten diejenigen, die die API in eine Applikation einbauen, genaue Anweisungen für die Integration.

In der Dokumentation sollten die Entwickler festhalten, wie die API aufgerufen wird, welche Daten sie liefert, in welchem Format diese Daten und die Fehlermeldungen, welche die API auswirft, zurückgeliefert werden. In internen Aufzeichnungen sollte zudem klar sein, wer die API nutzen darf. Für interne Auswertungen sollten erläutert sein, wer wann auf welche Daten zugegriffen hat. Apropos Zugriff: Wo möglich, sollten die maschinellen IDs zusätzlichen Authentifizierungsprüfungen unterzogen werden. Jeder API-Aufruf sollte überprüft werden, um sicherzustellen, dass der Nutzer oder das Gerät die richtigen Zugriffsrechte hat. Leider unterlassen viele Entwickler diese Überprüfungen, sobald der Nutzer einmal angemeldet ist.

Black-Box-Testing und Fuzzing sind die richtigen Methoden, um zu sehen, wie APIs mit unerwarteten oder manipulierten Eingaben zurechtkommen. Unverzichtbar sind Routinen, die die Eingaben von unerwünschten Zeichen säubern und Cross-Site Request Forgery Attacken abwehren – viele API-Aufrufe kommen von unbekannten Quellen, lassen sich also nahezu beliebig manipulieren. Zusätzlich sollten Test von unterschiedlichen Endpunkten aus gemacht werden, nicht nur von Web-Browsern. Zahlreiche APIs scheitern beim Einsatz der SSL-Verschlüsselung, wenn die Aufrufe nicht von Web-Browsern ausgeführt werden, sondern beispielsweise von einer mobilen App. Stellen Sie sicher, dass die sensitiven Daten jederzeit verschlüsselt sind, wenn sie nicht in reinem Text wiedergegeben werden müssen. Penetration Tests und Schwachstellen-Assesments sollten APIs im Fokus haben, da diese Zugriff auf Endpunkte bieten können.

API-Code doppelt prüfen

Unternehmen, die APIs von Drittanbietern in ihrer Umgebung nutzen möchten, sollten sicherstellen, dass ihre Entwickler genau verstehen wie sie sich sicher in die eigene Umgebung integrieren und wie sich die gelieferten Daten verifizieren lassen. Viele Entwickler – sowohl hauseigene wie auch externe Anbieter – nutzen existierenden Code aus dem Internet, besonders wenn es sich um Beispiel-Code handelt, der Aufrufe der API beschreibt. Wird Code allerdings einfach nur kopiert und direkt eingefügt, kann dies Schwachstellen in eine Applikation reißen.

Unternehmen sollten sich daran erinnern, dass Geschwindigkeit zwar wichtig ist, das gilt aber auch für die Details. Entwickler sollten die API-Dokumentation genau lesen und sich nicht auf Gerüchte aus dem Internet verlassen. Die Zeitpläne sollten hier genügend Freiraum lassen, damit sich Entwickler genau in die jeweils genutzten APIs einarbeiten können. Dazu gehört auch, dass sich die Entwickler mit den möglichen Risiken auseinandersetzen und Gegenmaßnahmen gegen Angriffe entwickeln können. Schlecht geschriebene APIs können neue Angriffsmöglichkeiten schaffen oder die Risiken in den Bereichen Integrität, Verfügbarkeit oder Geheimhaltung vergrößern. Wo möglich, sollten Unternehmen APIs vermeiden, die nicht gut genug dokumentiert sind. Wenn Verschlüsselungssysteme für den Zugriff genutzt und diese Authentifizierungsmechanismen beim API-Aufruf eingesetzt werden, muss sichergestellt sein, dass die Inhalten gemäß der Richtlinien gespeichert werden und niemals fest in die Skripte und Konfigurationen hinterlegt sind.

Die Probleme mit den APIs gehen nicht schnell weg. APIs sind inzwischen wichtige Eckpunkte der digitalen Strategie vieler Unternehmen. Da sie so wichtig sind, verdienen die Programmierschnittstellen mehr Aufmerksamkeit von denen, die sie nutzen oder erstellen. Werden APIs sicher integriert, können sie Daten einfach und sicher zuliefern. Schlecht implementiert, können sie Angreifer nutzen, um Unternehmen und Nutzer zu attackieren.

Artikel wurde zuletzt im März 2014 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Websicherheit: Tools und Best Practice

0 Kommentare

Älteste Beiträge 

Passwort vergessen?

Kein Problem! Tragen Sie Ihre E-Mail-Adresse unten ein. Wir werden Ihnen eine E-Mail mit Ihrem Passwort schicken.

Ihr Passwort wurde an die folgende E-Mail-Adresse gesendet::

- GOOGLE-ANZEIGEN

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

SearchDataCenter.de

Close