Advanced API Security Best Practices [Cheat Sheet]
Designed for developers and security professionals who already grasp foundational principles, this 11-page cheat sheet provides practical, step-by-step guidance for securing APIs.
Eine Anwendungsprogrammierschnittstelle oder API ist eine Art von Software, die die Kommunikation zwischen unterschiedlicher Software und Diensten ermöglicht.
Es gibt vier primäre API-Architekturen:
REST ist eine zustandslose, einheitliche Architektur, bei der Client und Server unabhängig voneinander arbeiten und über HTTP interagieren.
SOAP ist komplexer und verbraucht mehr Bandbreite als REST, da es ausschließlich mit dem XML-Datenformat arbeitet.
RPC oder Remote Procedure Call-Protokoll ermöglicht die Ausführung von Prozeduren auf einem Remote-Server innerhalb eines verteilten Systems.
GraphQL ist eine schemagesteuerte, stark typisierte Infrastruktur mit einer einzigartigen Abfragesprache, die es Clients ermöglicht, spezifische Daten in einer einzigen Anfrage abzurufen.
APIs sind einer Vielzahl von Bedrohungen ausgesetzt. Einige davon kommen von außen, wie etwa unbefugte Zugriffe von Hackern, andere kommen von innen und können Systeme stören oder die API für Angriffe anfällig machen. API-Sicherheit bezieht sich auf die Strategien, Toolsets und Verfahren, die zur Gewährleistung der Sicherheit von APIs entwickelt wurden.
Die API-Sicherheit konzentriert sich auf drei wichtige Sicherheitsbereiche:
Anwendungssicherheit
Informationssicherheit
Netzwerksicherheit
API-Sicherheit kann auch bei Problemen wie Zugriffskontrolle, identitätsbasierter Sicherheit, Inhaltsvalidierung, Ratenbegrenzung, Anforderungsdrosselung, Überwachung und Analyse sowie Datenschutz helfen. Da APIs als Einstiegspunkte für Anwendungen oder Netzwerke dienen, ist API-Sicherheit von größter Bedeutung, um Unternehmen vor potenziellen Bedrohungen zu schützen.
APIs bilden heute die Grundlage moderner Softwareentwicklung. Die meisten Organisationen nutzen APIs zum Datenaustausch und zur Schnittstelle mit internen oder externen Softwarekomponenten.
APIs sind jedoch anfällig für Cyberangriffe und werden häufig von Hackern angegriffen, die Schwachstellen für böswillige Zwecke ausnutzen wollen. Defekte oder offengelegte APIs zählen zu den häufigsten Ursachen für schwerwiegende Datenlecks.
Um die Sicherheit einer API zu gewährleisten, muss die Vertraulichkeit der Daten gewahrt und sichergestellt werden, dass nur autorisierte Benutzer darauf zugreifen können. Dazu gehört auch die Gewährleistung der Datenintegrität während und nach der Übertragung. Dieses gesteigerte Bewusstsein hat den Fokus auf die API-Sicherheit verstärkt.
Die OWASP Top 10 ist eine Liste von Sicherheitsrisiken, die Entwicklern dabei helfen soll, Anwendungen unter Berücksichtigung der Sicherheit zu entwickeln. Sehen wir uns an, wie diese Punkte mit APIs zusammenhängen:
Beschädigte Autorisierung auf Objektebene: APIs können steuernde Objektkennungen verbinden, und ohne entsprechende Sicherheit könnte die API diese Kennungen offenlegen und sie damit angreifbar machen. So kam es beispielsweise 2018 beim United States Postal Service (USPS) zu einer Sicherheitslücke aufgrund schwacher Zugriffs- und Autorisierungskontrollen, wodurch wichtige Daten von über 60 Millionen Benutzern kompromittiert wurden.
Defekte Authentifizierung: Ohne robuste Authentifizierungsmechanismen können Angreifer Zugriff auf APIs erhalten und diese für böswillige Zwecke verwenden. Im Juni 2021 wurde eine exponierte API ohne ordnungsgemäße Authentifizierung ausgenutzt, wodurch die persönlichen Daten von etwa 1,3 Millionen Personen kompromittiert wurden. Eine einfache Token- oder Schlüsselauthentifizierung hätte diesen Angriff vereiteln können.
Beschädigte Autorisierung auf Objekteigenschaftsebene: Entwickler geben gelegentlich überflüssige Daten zurück, da sie davon ausgehen, dass APIs nur von authentifizierten Benutzern aufgerufen werden. Angreifer können diese überschüssigen Daten jedoch ausnutzen. HealthEngine war von dieser Sicherheitslücke in seiner Feedback-API betroffen, wodurch die persönlichen Daten von über 59.000 Patienten verloren gingen.
Unbegrenzter Ressourcenverbrauch: Bei jeder API-Anfrage wird eine bestimmte Menge an Ressourcen verbraucht, darunter Netzwerkbandbreite, Speicher und Rechenleistung. Dies stellt eine interne Schwachstelle dar, da unbegrenzte Anfragen eine API überlasten können, was zu höheren Betriebskosten oder sogar zu einer Dienstverweigerung für legitime Benutzer führen kann.
Defekte Autorisierung auf Funktionsebene: Viele Systeme haben komplexe Zugriffskontrollrichtlinien. Wenn keine Autorisierungen auf Funktionsebene implementiert sind, können Angreifer auf nicht autorisierte Funktionen zugreifen. In einem aktuellen Fall im September 2022 infiltrierte ein Angreifer aufgrund dieser Schwachstelle die IT-Infrastruktur von Uber.
Uneingeschränkter Zugriff auf sensible Geschäftsabläufe: Übermäßiger Zugriff auf kritische Geschäftsabläufe kann den Betrieb stören. Im Jahr 2011 kam es bei CITI zu einem Datendiebstahl, der 350.000 nordamerikanische Karteninhaber betraf. Der Grund dafür war ein Angriff, bei dem die Geschäftsabläufe manipuliert wurden.
Serverseitige Anforderungsfälschung (SSRF): SSRF-Schwachstellen treten auf, wenn eine API Daten von einer nicht validierten benutzerdefinierten URL abruft, wodurch Angreifer möglicherweise Sicherheitsmaßnahmen umgehen können. Moderne Tech-Stacks wie Docker und Kubernetes sind besonders anfällig.
Sicherheitsfehlkonfiguration: Unsichere API-Konfigurationen können zu verschiedenen Angriffen führen, die Daten offenlegen und unbefugten Zugriff ermöglichen. Diese Schwachstellen entstehen durch unzählige Faktoren, wie fehlende Patches, veraltete Systeme oder offengelegte Fehlerdetails.
Unzureichende Bestandsverwaltung: Da APIs häufig mehr Endpunkte offenlegen als herkömmliche Webanwendungen, ist eine genaue Dokumentation unerlässlich. Eine schlechte Bestandsverwaltung kann auf unsichere Speicherung, schwache Verschlüsselung oder unzureichende Zugriffskontrollen zurückzuführen sein.
Unsichere Nutzung von APIs: Die Nutzung von APIs hängt oft vom Vertrauen der Entwickler in die Antworten von Drittanbietern ab. Viele Entwickler glauben, dass APIs von Drittanbietern, insbesondere solche von namhaften Unternehmen, von Natur aus sicher sind. Dieses fehlgeleitete Vertrauen kann zu Schwachstellen führen. Anstatt Ihre APIs direkt anzugreifen, könnten Angreifer diese Drittanbieterintegrationen ausnutzen. Vorfälle wie die SSRF-Angriffe können sich aufgrund unzureichender Validierung und Bereinigung von Antworten manifestieren. So hatte Parler im Januar 2021 beispielsweise Sicherheitsprobleme, weil es APIs von Drittanbietern erlaubte, ohne Authentifizierung auf Daten zuzugreifen. Angreifer errieten URLs mit vertraulichen Informationen und griffen ohne Authentifizierung auf die Daten zu.
Profi-Tipp
Durch das Verständnis dieser Risiken und die Implementierung geeigneter Sicherheitsmaßnahmen können Unternehmen die potenziellen Bedrohungen im Zusammenhang mit APIs erheblich eindämmen. Besuchen Sie OWASPs API Security Top 10, um eine detaillierte Aufschlüsselung der einzelnen Risiken zu erhalten.
API-Sicherheit für SOAP, REST und GraphQL
Jede der drei primären API-Architekturen – SOAP, REST und GraphQL – hat ihre eigenen einzigartigen Sicherheitsimplikationen.
API Architecture
Security Implications
SOAP-API-Sicherheit
SOAP ist ein optimiertes, XML-basiertes Nachrichtenprotokoll, das für den Austausch strukturierter Daten in dezentralen Computernetzwerken entwickelt wurde. Es ist an verschiedene Protokolle wie HTTP und SMTP anpassbar. Die Sicherheitsebenen von SOAP umfassen sowohl Transportschichtsicherheit (wie HTTPS) zum Verschlüsseln von Daten während der Übertragung als auch Sicherheit auf Nachrichtenebene, einschließlich digitaler XML-Signaturen, um die Nachrichtenintegrität aufrechtzuerhalten. Durch Befolgen der Web Services (WS)-Spezifikationen, die standardisierte Richtlinien bieten, bietet SOAP robuste Sicherheitsfunktionen wie WS-ReliableMessaging für eine verbesserte Fehlerbehandlung.
REST-API-Sicherheit
REST-APIs verwenden JSONs zur Datendarstellung und verlassen sich bei Datenübertragungen auf HTTP/s, was den Entwicklungsprozess rationalisiert. Da REST keine inhärenten Sicherheitsmechanismen besitzt, hängt seine Sicherheit vom Design der API ab. Die Implementierung von Sicherheitsmaßnahmen bei Datenübertragung, Bereitstellung und Client-Interaktionen ist unerlässlich. Normalerweise verlassen sich REST-APIs auf Protokolle wie HTTPS und verwenden eine tokenbasierte Authentifizierung, um die Sicherheit zu erhöhen.
GraphQL API-Sicherheit
GraphQL, eine Open-Source-API-Sprache, fungiert sowohl als Abfragesprache als auch als Laufzeit für die Abfrageausführung. Sein streng typisiertes Schema gewährleistet Datenkonsistenz. Seine Flexibilität kann jedoch ein zweischneidiges Schwert sein: Komplexe, ungefilterte Abfragen können Server in die Irre führen und möglicherweise bösartige Anfragen ausführen. Die Einführung von Sicherheitspraktiken wie Drosselung, Festlegen von Abfragetiefenbegrenzungen und Implementieren von Abfragetimeouts kann diese Schwachstellen mindern.
Profi-Tipp
Entwickelt Ihr Unternehmen Anwendungen mit GenAI? Genau wie jeder andere Multi-Tenant-Dienst können Anwendungen mit GenAI unter herkömmlichen API-Schwachstellen leiden. Erfahren Sie, wie Sie generative KI-Modelle sicher als Teil Ihrer Multi-Tenant-Cloud-Apps bereitstellen .
API-Sicherheitsstandards
Der Schlüssel zur Sicherheit Ihrer APIs liegt in der Einhaltung besserer API-Sicherheitsstandards. Sie können beginnen, indem Sie die folgenden Punkte einhalten:
API-Erkennung und Inventarisierung
Um eine API zu schützen, müssen Sie sich zunächst ihrer Existenz bewusst sein. Eine kontinuierliche automatische Erkennung und Inventarisierung mithilfe von Scannern ist entscheidend, um alle API-Endpunkte zu erkennen und ihre Parameter und Datentypen zu verstehen.
API-Risiken und -Schwachstellen identifizieren
Das Erkennen der Schwachstellen Ihres Systems ist entscheidend für die Sicherheit von APIs. Bleiben Sie über Systemkomponenten auf dem Laufenden, identifizieren Sie potenzielle Schwachstellen in Ihrem API-Lebenszyklus und setzen Sie mehrschichtige API-Sicherheitstools gegen Bedrohungen ein, die in den wichtigsten API-Risiken, Bot-Angriffen und DDoS-Angriffen von OWASP behandelt wurden.
Verschlüsselung verwenden
Verschlüsselte APIs sind weniger anfällig für Sicherheitsverletzungen. Durch die Nutzung von Signaturen wird sichergestellt, dass nur autorisierte Benutzer auf Daten zugreifen und diese ändern können. Methoden wie TLS-Verschlüsselungsprotokolle schützen API-Daten wirksam.
Implementieren Sie eine starke Authentifizierung und Autorisierung
Bei der Authentifizierung wird der Benutzer verifiziert, normalerweise mithilfe von API-Schlüsseln oder einer grundlegenden Zugriffsauthentifizierung, während bei der Autorisierung sichergestellt wird, dass Benutzer nur auf zulässige Daten zugreifen. Dies wird häufig über eine rollenbasierte Zugriffskontrolle (RBAC) erreicht. Beides ist für eine robuste API-Sicherheit von entscheidender Bedeutung.
Verwenden Sie Ratenbegrenzungen und Drosselung
DoS- und DDoS-Angriffe stellen eine ernsthafte Bedrohung für Ihren Betrieb dar, und APIs sind ein häufiger Angriffsvektor. Durch die Durchsetzung von Kontingenten und Ratenbegrenzungen können Sie solche Bedrohungen und zusätzliche Risiken wie Credential Stuffing verhindern.
Verwenden Sie ein API-Gateway
Verwaltete APIs reduzieren Schwachstellen. Da API-Gateways als Vermittler zwischen Clients und Backend-Diensten fungieren, können sie den Datenverkehr authentifizieren und Ihre API-Sicherheit verbessern.
Wie wir besprochen haben, beginnt die API-Sicherheit mit der Erkennung und Inventarisierung von APIs. Bestehende Lösungen für die API-Sicherheit basieren meist auf Agenten und Netzwerkscannern. Diese bieten jedoch keine vollständige Transparenz und sind zudem komplex in der Bereitstellung. Mit dem Wiz Dynamic Scanner hat Wiz einen neuen und modernen Ansatz für die API-Sicherheit eingeführt.
Mit seinem agentenlosen Scannen für alle großen Cloud-Anbieter analysiert der Wiz Dynamic Scanner alle Cloud-Ebenen Ihrer Bereitstellung und ermöglicht so die Erkennung aller Risikokomponenten und Angriffspfade, die in Ihrer Cloud-Umgebung vorhanden sein könnten.
Mit diesem Ansatz haben Sie vollständige Transparenz und können alle Ihre APIs, die dem Internet ausgesetzt sind, sowie den zugehörigen Kontext identifizieren. So können Sie sich ein umfassendes Bild davon machen, was ausgesetzt ist und welchen Explosionsradius es haben könnte, wenn die Angriffe ausgenutzt würden.
Um ein klareres Verständnis zu erhalten und zu sehen, wie es sich in Ihrer Umgebung verhält, vereinbaren Sie eine Demo mit Wiz, um sich selbst ein Bild von der Funktionsweise und allen bereitgestellten Funktionen zu machen.
Ein agentenloser, kontextbezogener Ansatz zur API-Sicherheit
Erfahren Sie, wie Kunden mit Wiz jetzt einfach die Frage „Wo in meiner Umgebung sind APIs verfügbar?“ mit dem gesamten Kontext beantworten können, der mit der Ausführungsumgebung verknüpft ist.