Überblick
Unter API-Sicherheit versteht man den Schutz der Integrität von APIs, und zwar sowohl derer, die Ihnen gehören, als auch derer, die Sie verwenden. Was aber bedeutet das genau?
Nun, Sie haben sicherlich schon mal vom Internet of Things (IoT) gehört, bei dem Rechenleistung in alltägliche Objekte integriert ist. Das IoT macht es möglich, dass Ihr Telefon und Ihr Kühlschrank kommunizieren. Wenn Sie also nach der Arbeit auf dem Weg nach Hause für eine spontane Party einkaufen möchten, wissen Sie immer genau, was noch fehlt. Vielleicht sind Sie auch Mitglied eines DevOps-Teams, das Microservices und Container verwendet, um ältere und cloudnative Apps auf schnelle und iterative Weise zu entwickeln. APIs sind eine der am häufigsten genutzten Methoden der Kommunikation zwischen Microservices und Containern, ähnlich wie zwischen Systemen und Apps. Mit der Bedeutung von Integration und Interkonnektivität nimmt auch die Bedeutung von APIs immer mehr zu.
Warum ist die API-Sicherheit so wichtig?
Unternehmen nutzen APIs, um Services zur verbinden und Daten zu übertragen. Beschädigte, ungeschützte oder gehackte APIs sind der Hauptverursacher schwerer Datenverluste. Denn hierbei können vertrauliche medizinische, finanzielle und persönliche Daten der Öffentlichkeit preisgegeben werden. Dabei ist allerdings zu beachten, dass nicht alle Daten gleich sind oder auf dieselbe Weise geschützt werden müssen. Ihre Strategie der API-Sicherheit hängt vom Typ der übertragenen Daten ab.
Wenn Ihre API eine Verbindung zu einer Drittanbieteranwendung herstellt, müssen Sie verstehen, wie diese App die Informationen zurück zum Internet überträgt. Um auf das Beispiel mit dem Kühlschrank zurückzukommen... Vielleicht ist es Ihnen egal, ob ein Fremder Ihre Essgewohnheiten kennt, aber wenn dieser dann dieselbe API nutzt, um Ihren Standort zu ermitteln, sieht das Ganze schon etwas anders aus.
Was ist API-Sicherheit im Web? REST API-Sicherheit oder SOAP API-Sicherheit?
Bei der API-Sicherheit im Web geht es hauptsächlich um die Übertragung von Daten über APIs, die mit dem Internet verbunden sind. OAuth (Open Authorization) ist der offene Standard für die Zugriffsdelegation. Damit können User Dritten Zugriff auf Webressourcen gewähren, ohne dazu Passwörter preisgeben zu müssen. OAuth ist der Technologiestandard, mit dem Sie das Video mit dem Bauchplatscher Ihres Cockerspaniels über eine einzelne Teilen-Schaltfläche auf Ihren sozialen Netzwerken bereitstellen können.
Die meisten API-Implementierungen sind entweder REST (Representational State Transfer) oder SOAP (Simple Object Access Protocol).
REST APIs nutzen HTTP und unterstützen die TSL-Verschlüsselung (Transport Layer Security). TLS ist ein Standard, mit dem Internetverbindungen geschützt werden und sichergestellt wird, dass die zwischen zwei Systemen (Server/Server oder Server/Client) übertragenen Daten verschlüsselt werden und unverändert bleiben. Wenn ein Hacker also versuchen sollte, Ihre Kreditkartendaten von einer Shopping-Website zu stehlen, kann er diese Daten weder lesen noch ändern. Ein Zeichen dafür, dass eine Website per TLS geschützt ist, ist das Kürzel „HTTPS“ (Hyper Text Transfer Protocol Secure) vor der URL.
REST APIs verwenden auch JavaScript Object Notation (JSON), ein Dateiformat, das die Datenübertragung zwischen Webbrowsern vereinfacht. Durch den Einsatz von HTTP und JSON müssen REST APIs Daten nicht speichern oder neu paketieren und arbeiten so schneller als SOAP APIs.
SOAP APIs nutzen integrierte Protokolle mit dem Namen Web Services Security (WS Security). Mit diesen Protokollen werden bestimmte Regeln für Vertraulichkeit und Authentifizierung definiert. SOAP APIs unterstützen die Standards der beiden großen internationalen Normungsgremien, OASIS (Organization for the Advancement of Structured Information Standards) und W3C (World Wide Web Consortium). Sie verwenden zur Durchführung der Authentifizierung und Autorisierung eine Kombination aus XML-Verschlüsselung, XML-Signaturen und SAML-Tokens. Im Allgemeinen werden SOAP APIs aufgrund ihrer umfassenderen Sicherheitsmaßnahmen gelobt, allerdings verursachen sie auch mehr Verwaltungsaufwand. Aus diesen Gründen werden sie für Organisationen empfohlen, die sehr sensible Daten handhaben.
Was sind einige der gängigsten Best Practices der API-Sicherheit?
Verwahren Sie Ihr Erspartes unter der Matratze? Sicherlich nicht. Wie viele andere auch vertrauen Sie es einer Bank an und nutzen separate Methoden zur Autorisierung/Authentifizierung von Zahlungen. Bei der API-Sicherheit ist das nicht viel anders. Sie benötigen eine vertrauenswürdige Umgebung mit Richtlinien für die Autorisierung bzw. Authentifizierung.
Hier einige der gängigsten Methoden zur Stärkung Ihrer API-Sicherheit:
- Einsatz von Tokens: Erstellen Sie vertrauenswürdige Identitäten, weisen Sie ihnen Tokens zu, und kontrollieren Sie so den Zugriff auf Services und Ressourcen.
- Einsatz von Verschlüsselung und Signaturen: Verschlüsseln Sie Ihre Daten mit Methoden wie TLS (siehe oben). Machen Sie Signaturen erforderlich, um sicherzustellen, dass nur autorisierte User Ihre Daten entschlüsseln und modifizieren.
- Identifizierung von Schwachstellen: Halten Sie Betriebssystem, Netzwerk, Treiber und API-Komponenten auf dem neuesten Stand. Machen Sie sich schlau darüber, wie alles zusammen funktioniert, und identifizieren Sie Schwachstellen, die Ihre APIs anfällig machen könnten. Verwenden Sie Sniffer, um Sicherheitsprobleme zu erkennen und auf Datenlecks zu überwachen.
- Einsatz von Quotas und Throttling: Konfigurieren Sie Quotas für die Anzahl der Aufrufe Ihrer API, und überwachen Sie ihre Nutzung. Eine ungewöhnliche hohe Zahl an Aufrufen kann auf einen Missbrauch hindeuten. Es kann sich aber auch um einen Programmierfehler handeln, bei dem die API in einer Endlosschleife gefangen ist. Erstellen Sie Throttling-Regeln, um Ihre APIs vor Spikes und Denial-of-Service-Attacken zu schützen.
- Einsatz eines API Gateways: API Gateways agieren als primäres Kontrollorgan im API-Datenverkehr. Ein gutes Gateway ermöglicht nicht nur die Authentifizierung von Daten, sondern auch die Kontrolle und Nutzungsanalyse Ihrer APIs.
API-Management und -Sicherheit
Die API-Sicherheit steht und fällt nicht selten mit einem guten API-Management. Viele API-Managementplattformen unterstützen drei Typen von Sicherheitsschemata. Diese sind:
- API-Schlüssel – ein einzelner Token-String (d. h. ein kleines Hardwaregerät, das eindeutige Authentifizierungsinformationen bereitstellt).
- Standardauthentifizierung (APP ID/APP Key) – eine aus zwei Tokens (d. h. Username und Passwort) bestehende Lösung.
- OpenID Connect (OIDC) – eine einfache Identifikationsschicht, die auf dem beliebten OAuth Framework (d. h. der User wird durch das Abrufen grundlegender Profilinfos unter Verwendung eines Authentifizierungsservers verifiziert) aufsetzt.
Bei der Auswahl eines API-Managers sollten Sie wissen, welche und wie viele dieser Sicherheitsschemata er handhaben kann und wie Sie die oben beschriebenen API-Sicherheitspraktiken integrieren können.
Warum Red Hat für API-Management und API-Sicherheit?
Datenverletzungen können schlimme Auswirkungen haben, allerdings haben Sie Möglichkeiten, die Sicherheit zu verbessern. APIs lohnen sich in jedem Fall, Sie müssen nur wissen, was Sie genau brauchen. Red Hat veröffentlicht einen jährlichen Red Hat Product Risk Report, der globale Sicherheitslücken in Unternehmenssoftware und die Lösungen aufzeigt, die Red Hat in seinen Produkten zu bieten hat. Vieles hängt von Ihren kontinuierlichen Sicherheitsmaßnahmen ab und davon, ob Sie die richtigen Fragen stellen, wissen, welche Bereiche Ihre Aufmerksamkeit erfordern und ob Sie einen API-Manager verwenden, dem Sie vertrauen können. Wir helfen Ihnen gerne.
Unsere Empfehlung: unser preisgekröntes Red Hat 3scale API Management. Es enthält:
- Einen API-Manager zur Verwaltung von API-, Anwendungs- und Entwicklerrollen
- Einen Datenverkehrsmanager (ein API-Gateway) zur Durchsetzung der Richtlinien des API-Managers
- Einen IDP-Hub (Identity Provider) zur Unterstützung zahlreicher Authentifizierungsprotokolle
Red Hat 3scale API Management dekodiert am API-Gateway zeitgestempelte Tokens, die ablaufen, es überprüft, ob die Client-Verifizierung gültig ist, und bestätigt die Signatur mittels eines öffentlichen Schlüssels.