API-Sicherheit

api

API-Sicherheit ist ein übergreifender Begriff, der sich auf Praktiken und Produkte bezieht, die böswillige Angriffe auf oder den Missbrauch von Anwendungsprogramm-Schnittstellen (API) verhindern. Da APIs zum Schlüssel für die Programmierung webbasierter Interaktionen geworden sind, sind sie zur Zielscheibe für Hacker geworden. Daher wurde die grundlegende Authentifizierung, bei der nur Benutzernamen und Passwörter erforderlich sind, durch verschiedene Formen von Sicherheitstoken ersetzt, wie sie z.B. bei der Multi-Faktor-Authentifizierung (MFA) verwendet werden.
APIs werden entweder mit Hilfe von REpresentational State Transfer (REST), einem Architekturstil zur Entwicklung von Webdiensten, der aufgrund seiner Einfachheit beliebt ist, oder mit dem Simple Object Access Protocol (SOAP), einem Nachrichtenprotokoll, das die Kommunikation verteilter Elemente einer Anwendung ermöglicht, erstellt. SOAP kann über eine Vielzahl von Protokollen auf niedrigerer Ebene übertragen werden, einschließlich des webbezogenen Hypertext Transfer Protocol (HTTP). REST-APIs verwenden HTTP und das unten beschriebene TLS der Transportschicht. REST-APIs verwenden auch Javascript Object Notation (JSON), ein textbasiertes, von Menschen lesbares Datenaustauschformat, das zur Darstellung einfacher Datenstrukturen und Objekte in Web-Browser-basiertem Code verwendet wird.

Bedeutung der API-Sicherheit

Cyberangriffe sind auf dem Vormarsch, insbesondere durch die Verwendung kompromittierter Identitäten und APIs. Einige Angriffe, die auf APIs angewendet werden könnten, sind: Man-in-the-Middle-Angriffe, Parameter-Angriffe und Identitäts-Angriffe.
Infolgedessen verlangen viele der größten Webdienstanbieter von ihren Partnern verstärkte Sicherheitsmaßnahmen, einschließlich der Verwendung von MFA, einem Sicherheitssystem, das mehr als eine Authentifizierungsmethode aus unabhängigen Kategorien von Zugangsdaten erfordert, um die Identität des Benutzers für eine Anmeldung oder eine andere Transaktion zu überprüfen. Zu diesen Dienstanbietern gehören Amazon und Microsoft, die seit August 2019 von ihren Programmpartnern für Cloud-Lösungen, Control Panel-Anbietern und Beratungspartnern verlangen, MFA für jeden Benutzer, einschließlich der Dienstkonten, durchzusetzen.
Die Implementierung der API-Sicherheit ist wichtig, da sie Angriffe wie Cross-Site-Scripting (XSS) und SQL-Injektionen verhindern und sensible Daten vor Verletzungen schützen kann. Insgesamt ist die API-Sicherheit für die erfolgreiche und sichere Leistung von APIs und der von ihnen unterstützten Programme von entscheidender Bedeutung.

Wie funktioniert die API-Sicherheit?

Die API-Sicherheit hängt stark von der Authentifizierung und Autorisierung ab. Die Authentifizierung ist der erste Schritt zur API-Sicherheit. Die Authentifizierung bezieht sich auf die Überprüfung, ob die Client-Anwendung eine sichere Identität besitzt und die API nutzen darf. Die Autorisierung ist ein weiterer Schritt, bei dem festgelegt wird, auf welche Daten und Aktionen eine authentifizierte Anwendung bei der Interaktion mit der API zugreifen kann.
Zusätzlich zur korrekten Implementierung eines sicheren Authentifizierungs- und Autorisierungssystems sollten APIs mit anderen Schutzfunktionen entwickelt werden, um die Anfälligkeit des Systems für böswillige Angriffe während der API-Aufrufe zu verringern.
Der API-Entwickler ist dafür verantwortlich, dass die von ihm erstellte API erfolgreich alle während der Aufrufe gesammelten Benutzereingaben validiert. Die Verwendung von vorbereiteten Anweisungen mit Bind-Variablen ist eine der effektivsten Methoden, um die API vor SQL-Injektion zu schützen. Die zum Schreiben der API verwendete Sprache enthält häufig Funktionen, die diese Sicherheitsmaßnahme unterstützen können.
XSS kann durch Bereinigung der Benutzereingaben aus dem API-Aufruf praktikabel behandelt werden. Durch die Bereinigung der Eingabe werden HTML- und JavaScript-Tags gelöscht und potenzielle XSS-Schwachstellen minimiert.
Die Drosselung ist auch eine effektive API-Sicherheitspraxis, da sie die Verwaltung und Einschränkung des Datenzugriffs eines Kunden ermöglicht. Durch die Verwendung von Drosselung können Unregelmäßigkeiten bei der Nutzung der API durch einen Kunden gemessen werden, und es wird eine zusätzliche Sicherheitsebene zwischen dem Kunden und den sensiblen Daten geschaffen.

API-Sicherheitstypen und -Werkzeuge

API-Manager: API-Manager überwachen die APIs in einer sicheren, skalierbaren Umgebung. Das Ziel des API-Managements ist es, Organisationen, die eine API veröffentlichen oder verwenden, die Möglichkeit zu geben, den Lebenszyklus der Schnittstelle zu überwachen und sicherzustellen, dass die Anforderungen der Entwickler und Anwendungen, die die API verwenden, erfüllt werden.
Offene Autorisierung (OAuth): OAuth ist ein offener Standard für die token-basierte Authentifizierung und Autorisierung im Internet. OAuth ermöglicht es, dass die Kontoinformationen eines Endbenutzers von Diensten Dritter, wie z.B. Facebook, verwendet werden können, ohne das Passwort des Benutzers preiszugeben. OAuth agiert als Vermittler im Namen des Endbenutzers und stellt dem Dienst ein Zugriffstoken zur Verfügung, das die gemeinsame Nutzung bestimmter Kontoinformationen autorisiert. Der Prozess zum Erhalt des Token wird als Flow bezeichnet.
MFA: Wie oben erwähnt, ist MFA ein Sicherheitssystem, das mehr als eine Authentifizierungsmethode aus unabhängigen Kategorien von Berechtigungsnachweisen erfordert, um die Identität des Benutzers für eine Anmeldung oder eine andere Transaktion zu überprüfen.
Transportschicht-Sicherheit (TLS): TLS ist ein Protokoll, das Authentifizierung, Datenschutz und Datenintegrität zwischen zwei kommunizierenden Computeranwendungen bietet. Es ist das heute am weitesten verbreitete Sicherheitsprotokoll und wird für Webbrowser und andere Anwendungen verwendet, die einen sicheren Datenaustausch über ein Netzwerk erfordern, wie z. B. Webbrowsersitzungen, Dateiübertragungen, VPN-Verbindungen, Remote-Desktop-Sitzungen und Voice-over-IP (VoIP).
Security Assertion Markup Language (SAML): SAML ist ein offener Standard für den Austausch von Sicherheitsinformationen über Identität, Authentifizierung und Autorisierung über verschiedene Systeme hinweg. SAML wird mit dem XML-Standard (Extensible Markup Language) für die gemeinsame Nutzung von Daten implementiert, und SAML bietet einen Rahmen für die Implementierung von Single Sign-On (SSO) und anderen föderierten Identitätssystemen.

Herausforderungen der API-Sicherheit

Zu den Herausforderungen, denen sich die API-Sicherheit stellt, gehören:
Anders als Webanwendungen (Webapplikationen) - Da APIs auf völlig andere Weise funktionieren und reagieren als Webapplikationen, müssen ihre Sicherheitslandschaften und -infrastrukturen in einer Weise gedacht werden, die sich auf ihr Verhalten bezieht.
Zusätzliche Herausforderungen bei Service-APIs - Einige Cloud-basierte Software als Service (SaaS) ist nur über APIs verfügbar; dies sind Service-APIs. Service-APIs schaffen Sicherheitsherausforderungen, weil sie mit Daten in großen Mengen umgehen und sich in Sicherheits- und Authentifizierungsmodellen unterscheiden.
Einzigartige Anwendungen - Alle Anwendungen sind unterschiedlich, aber um eine API zu sichern, muss das Design verstanden werden. Zum Verständnis des Designs gehört das Lesen und Sortieren durch Schichten und Variationen des Codes, die sich aufgrund von Technologie und menschlichen Unterschieden ändern.
APIs können Angreifern helfen, sich zu verstecken - APIs führen neue Dateiformate, Protokolle und Strukturen in ihrer Leistung ein. Diese neuen und vielfältigen Teile erleichtern es Hackern, bekannte Angriffe wie XSS oder SQL-Injektion zu verschleiern.
Interne APIs erfordern Schutz - APIs können auch intern oder innerhalb desselben Systems verwendet werden. Diese unterschiedliche Verwendung von APIs erfordert neue Sicherheitsüberlegungen und eine mögliche Überholung der bestehenden Sicherheitsinfrastruktur.
Verstopfte Pipelines - Entwickler und DevOps-Teams sind dafür verantwortlich, Sicherheitsteams mit Informationen darüber zu versorgen, was bestimmte API-Endpunkte tun und wie sie arbeiten; diese Informationen gehen jedoch häufig bei der funktionsübergreifenden Kommunikation verloren, so dass es für Sicherheitsteams unmöglich ist, die API, mit der sie arbeiten, vollständig zu verstehen.
Unbeabsichtigte Backend-Sichtbarkeit - Wenn sie nicht ordnungsgemäß überwacht und gesichert werden, können APIs Angreifern fälschlicherweise Zugang zu den Backend-Funktionen von Anwendungen bieten.

REST-API-Sicherheit vs. SOAP-API-Sicherheit


Wie bereits erwähnt, gibt es zwei Haupttypen von APIs: SOAP-APIs und REST-APIs oder RESTful-APIs.
REST-APIs sind moderner, während SOAP-APIs schon länger existieren und in großem Umfang implementiert sind. Beide Arten von APIs zeigen Daten mit HTTP-Anfragen und -Antworten an; die Formate und die Syntax, die sie dazu verwenden, weisen jedoch große Unterschiede auf. Beide APIs unterstützen auch Secure Sockets Layer (SSL) zum Schutz der Daten während des gesamten Übertragungsprozesses, aber auch zusätzliche Funktionen unterscheiden sich zwischen den beiden Modellen. Daher hängt die Sicherheit bei SOAP- gegenüber REST-APIs von dem Format und der Semantik ab, die in jedem der beiden Modelle verwendet werden.
Da es SOAP-APIs schon länger gibt als REST-APIs, wurden Erweiterungen zu SOAP hinzugefügt, die sich aus bestimmten Sicherheitsüberlegungen speziell mit transaktionalen Nachrichten befassen. Die Verwendung von SOAP in großen Unternehmen ermöglicht es der API, von den Empfehlungen des W3C und der OASIS zu profitieren, insbesondere von XML-Verschlüsselung, XML-Signatur und SAML-Tokens.
SOAP bietet auch hervorragende Unterstützung für Web-Service-Spezifikationen. Die WS-ReliableMessaging-Spezifikation bietet SOAP mit integrierter Kommunikationsfehlerbehandlung, und die WS-Security-Spezifikation ermöglicht einen Sicherheitsschutz auf Unternehmensebene.
Andererseits enthalten REST-APIs keine spezifischen Sicherheitsmuster oder -funktionen. Dies liegt hauptsächlich daran, dass sich die API auf die Bereitstellung und Nutzung von Daten konzentriert und nicht darauf, wie Sicherheit in den Kommunikationsprozess eingebaut werden kann. Es sollte nicht davon ausgegangen werden, dass ihre Sicherheitsmaßnahmen unkonventionell sind. Daher muss der Implementierung von Sicherheit im Code durch Entwickler, die REST-Architekturmuster, Bereitstellung und Übertragung verwenden, große Aufmerksamkeit gewidmet werden.
Darüber hinaus bietet WS-ReliableMessaging zwar eine integrierte Fehlerbehandlung für SOAP-APIs, aber REST-APIs müssen die Daten bei jedem Fehler erneut senden.
Wenn sensible Daten verwaltet werden, wie z.B. Bankkonten und Kreditdaten, kann SOAP bei der Wahl eines API-Modells am sinnvollsten sein. Die wahre Stärke der API-Sicherheit hängt jedoch davon ab, wie die API implementiert wird. Eine REST-API, die sicher konstruiert und implementiert wurde, ist sicherer als eine schlecht konzipierte und schlecht implementierte SOAP-API.

Über den Autor: Uwe Poltoranin
Datenschutzbeauftragter (DGI / bitkom) Datenschutzbeauftragter (TüV Rheinland Akademie) IT-Sicherheitsbeauftragter (TüV Rheinland Akademie)
BSI Grundschutz Praktiker (DGI), ISMS-Prüfer / leitender Prüfer nach ISO / IEC 27001 ( ISACA), IT-Risikomanager (DGI)
Projektmanagement IPMA® Level C, ITIL®Foundation Level, PRINCE2® Foundation Level, Certified Scrum Master - Scrum Product Owner
Nach oben scrollen