Im Vergleich zum herkömmlichen Entwicklungsprozess von Webanwendungen ist der moderne Entwicklungsprozess dynamischer, basiert auf einem schnelleren Lieferzyklus und folgt einem Microservice-Framework. Solche Frameworks hängen weitgehend von Anwendungsprogrammierschnittstellen (APIs) als eine der wichtigsten Komponenten ab. Leider bieten APIs zwar viele Vorteile, sind aber aufgrund der grundlegenden Anwendungsschwachstellen und Sicherheitsrisiken der API-Schicht auch ein häufiges Ziel von Angriffen.
Dieser Artikel befasst sich mit der OWASP API Top 10 Liste und zeigt auf, wie Angriffsvektoren und Best Practices eine Sicherheitsschwachstelle ausnutzen, um sie zu vermeiden.
Was ist die OWASP-Top-10-Liste und warum ist sie für Ihr Unternehmen wichtig?
Das OWASP Web Application Security Project ist eine weltweite Gemeinschaft, die sich mit dem Schutz von Webanwendungen und sicheren Programmierpraktiken befasst. OWASP identifiziert und veröffentlicht regelmäßig die 10 kritischsten Sicherheitsprobleme von Webanwendungen zusammen mit einer Rangliste und einer Anleitung zur Behebung in einem Online-Dokument namens OWASP Top 10.
Moderne Anwendungen werden durch die Kopplung verschiedener Systeme, die als Microservices verpackt sind, erstellt. Die lose Kopplung solcher Anwendungen hat dazu geführt, dass Anwendungsprogrammierschnittstellen (APIs) das Rückgrat moderner Web- und Mobilanwendungen bilden. Leider werden APIs für den Großteil des Webverkehrs in modernen Anwendungen auch als Torhüter für die Daten der Anwendungen betrachtet. Aufgrund der inhärenten Schwachstellen nutzen Hacker verschiedene Angriffsmechanismen, um APIs und damit verbundene Dienste auszunutzen und sensible Daten zu stehlen. Die anhaltende Bedrohung von APIs hat zur Entwicklung der OWASP API Security Top 10 geführt – einer Liste mit den 10 größten Sicherheitsproblemen speziell für Web-APIs. Diese Liste hebt die möglichen Sicherheitsschwachstellen hervor und bietet Lösungen, um jede Schwachstelle zu verstehen und zu entschärfen.
Dieser Beitrag befasst sich mit der OWASP API Top 10 Liste für API-Sicherheit.
Risiken von API-Schwachstellen
Während APIs einen effizienten Rahmen für die Verbindung verschiedener Softwarekomponenten bieten, geben sie in der Regel Backend-Daten an Drittanbieter weiter, was sie zu einem Hauptziel von Angriffsvektoren macht. APIs sind grundsätzlich darauf ausgelegt, Anwendungsressourcen offen und verfügbar zu machen, was es für Bedrohungsakteure einfacher macht, bösartigen Code zu nutzen und einzuschleusen. Darüber hinaus sind APIs frei verfügbar und umfassend dokumentiert, so dass Hacker sie leicht durchschauen können um dann Cybersecurity-Angriffe durchzuführen. Da unsichere APIs die Innovation bremsen, indem sie die Angriffsoberfläche einer Anwendung erweitern, benötigen Unternehmen einzigartige Ansätze und Strategien zur Implementierung von API-Sicherheit.
OWASP Top 10 API-Schwachstellen
Zu den 10 häufigsten Schwachstellen für die API-Sicherheit gehören:
Fehlerhafte Autorisierung auf Objektebene
APIs stützen sich auf die Autorisierung auf Objektebene, um die Zugriffsberechtigungen auf Ressourcen für legitime Benutzer zu validieren. Der API-Endpunkt erhält die ID des angeforderten Objekts und implementiert dann Autorisierungsprüfungen auf der Codeebene, um sicherzustellen, dass der Benutzer die Berechtigung hat, die angeforderte Aktion durchzuführen. APIs legen in der Regel die Endpunkte offen, die Identifikatoren für Objekte bereitstellen. Ohne Autorisierungsprüfungen auf Objektebene oder bei unsachgemäßer Implementierung können Angreifer den API-Endpunkt des angeforderten Objekts manipulieren und dann nicht korrekt überprüfen, ob der Benutzer, der die Anforderung übermittelt, über die erforderlichen Zugriffsrechte für die Ressource verfügt, und ihm somit unberechtigten Zugriff gewähren.
Fehlerhafte Benutzerauthentifizierung
API-Endpunkte müssen externen Diensten zugänglich gemacht werden und werden von verschiedenen Agenten über Benutzerauthentifizierungen aufgerufen. Eine unzureichende oder unsachgemäße Authentifizierungsimplementierung am API-Endpunkt ermöglicht es böswilligen Benutzern, die Authentifizierungstoken legitimer Benutzer vorübergehend zu kompromittieren, um auf sensible Informationen zuzugreifen. Eine fehlerhafte Authentifizierung am API-Endpunkt kann sich in verschiedenen Problemen äußern. Zu den häufigen Fehlkonfigurationen, die zu einer fehlerhaften Authentifizierung führen, gehören:
- Unsichere interne APIs
- Schwache API-Schlüssel mit unregelmäßiger Rotation
- API-Endpunkte, die GET-Parameter verwenden, um sensible Informationen zu senden
- Ungültige Token-Zugangsvalidierung/fehlende Validierung für JWT-Zugangs-Tokens
- Autorisierungsmängel, die den Endpunkt anfällig für Credential Stuffing und Brute-Force-Angriffe machen
- Schwache/schlecht verwaltete Passwörter
APIs mit lückenhafter Benutzerauthentifizierung ermöglichen es Hackern, die Identität legitimer Benutzer anzunehmen, was Raum für tiefgreifendere, ausgeklügelte Angriffe bietet.
Übermäßige Offenlegung von Daten
Bei der Bearbeitung von Benutzeranfragen verlassen sich APIs in der Regel auf Client-Benutzeroberflächen, die die abgerufenen Daten filtern. Wenn ein Benutzer den Zugriff auf eine Ressource anfordert, gibt die API das gesamte in der Anwendung gespeicherte Datenobjekt zurück. Die Client-Anwendung filtert dann die Antwort, um nur die Informationen anzuzeigen, die der Benutzer sehen möchte. Leider machen Entwickler oft den Fehler, APIs als generische Datenquellen zu implementieren. Dies ermöglicht es Angreifern, die API direkt aufzurufen, um auf die Daten zuzugreifen, die die Client-Benutzeroberfläche herausfiltern soll. Je nach offengelegtem Inhalt können Angreifer einen Einbruch durchführen oder die offengelegten Daten nutzen, um sich erweiterte Rechte zu verschaffen.
Fehlende Ressourcen- und Ratenbegrenzung
Bei einigen APIs fehlt ein Standardmechanismus zur Begrenzung der Häufigkeit und Anzahl von Anfragen eines bestimmten Clients. Hacker nutzen dies aus, indem sie Anfragen zum Hochladen/Ändern großer Dateien erstellen oder zahlreiche Anfragen an die API stellen, so dass der API-Host überlastet ist. Infolgedessen kann der Hardware der API der Arbeitsspeicher, die Netzwerkbandbreite und die CPU ausgehen, und es kann in solchen Fällen zu einem Pufferüberlauf kommen. Dadurch erhöht sich die Rückfallzeit der API, wodurch die Anzahl der Clients, die die API verarbeiten kann, verringert wird, was häufig zu einem Ausfall des Servers führt.
Massenzuweisung
Massenzuweisung tritt auf, wenn die API die vom Client bereitgestellten Daten ohne geeignete Filtertechniken an die Anwendungen bindet. Entwickler verwenden Bindungsmethoden, um Entwicklungszyklen zu beschleunigen, indem sie Funktionen verwenden, um Benutzereingaben mit internen Objekten und Codevariablen zu verbinden. Angreifer erkunden die API-Struktur um die Objektbeziehungen herausfzufinden, und erkunden dann Schwachstellen bei der Massenzuweisung, um die Eigenschaften von Objekten zu aktualisieren und zu ändern, die eigentlich verborgen sein sollten. Sobald sie die Eigenschaften sensibler Objekte geändert haben, neigen Angreifer dazu, ihre Privilegien zu erweitern, Sicherheitsüberprüfungen zu umgehen und sensible Daten zu manipulieren.
Falsche Sicherheitskonfiguration
API-Ressourcen, Anwendungsinfrastrukturen und Transportprotokolle können Fehlkonfigurationen enthalten, die Sicherheitsverletzungen begünstigen können. Diese Fehlkonfigurationen können innerhalb von API-Ressourcen, Transportprotokollen oder der Anwendungsinfrastruktur auftreten. Dazu gehören:
- Verwendung der Standardkonfiguration ohne oder mit schwacher Authentifizierung
- Keine Durchsetzung von HTTPS
- Unnötige HTTP-Methoden
- Falsch konfigurierte HTTP-Header
- Datenverfälschung durch nicht sanitisierte Eingaben
- Datenlecks
- Offener Cloud-Speicher
- Ausführliche Fehlermeldungen
- Ad-hoc-Konfigurationen
- Cross-Origin Source Sharing
Einschleusung
Ein API-Endpunkt verbraucht im Allgemeinen Benutzerdaten als Anforderungsparameter oder in seiner URL. Wenn die API-Endpunkte über keinen eingebauten Mechanismus zur Unterscheidung nicht vertrauenswürdiger Benutzerdaten verfügen, können Angreifer bösartige Eingaben in die Anwendung einschleusen. Angreifer können diese nicht vertrauenswürdigen Daten auch als Teil eines Befehls/einer Abfrage bereitstellen und die Anwendung dazu verleiten, sie auszuführen, um Zugriff auf sensible Daten zu erhalten. Eine unzureichende Validierung der Eingabedaten kann zu Injektionsangriffen führen, bei denen es zu Datenlecks, einer Ausweitung der Berechtigungen oder einer Dienstverweigerung kommt. Zu den üblichen Schwachstellen bei der Befehlsinjektion gehören SQL-Injektion mit API-Parametern, Injektion von Betriebssystembefehlen, Cross-Site-Scripting usw.
Unsachgemäße Verwaltung von Assets
Angesichts der schnellen Bereitstellungszyklen, die für die Entwicklung moderner Anwendungen charakteristisch sind, stellen DevOps-Teams häufig mehr APIs in der Produktion bereit, was zu Problemen bei der Anlagenverwaltung führt. Erstens zwingt der Wunsch nach Abwärtskompatibilität DevOps-Teams dazu, alte Versionen von APIs in Betrieb zu lassen. Angreifer haben es häufig auf solche älteren Versionen abgesehen, um veraltete Sicherheitsprüfungen auszunutzen. Andere APIs entsprechen möglicherweise nicht den Richtlinien zur Datenverwaltung, was sie zu wichtigen Einstiegspunkten für die Offenlegung von Daten macht.
Unzureichende Protokollierung und Überwachung
Die meisten API-Angriffe erfolgen über einen längeren Zeitraum hinweg, wobei der Angreifer sich die Zeit nimmt, Schwachstellen zu erkunden und die richtigen Angriffsstrategien zu planen. Mit den richtigen Protokollierungs- und Überwachungsmechanismen können Entwicklerteams böswillige Aktionen erkennen, sobald sie initiiert werden.
Leider implementieren die meisten Unternehmen zwar eine ordnungsgemäße Protokollierung von Server- und Netzwerkereignissen, verfügen aber häufig nicht über die Mechanismen für eine angemessene API-spezifische Protokollierung. Ein Hauptgrund dafür ist, dass die Entwickler keinen Einblick in die API-Nutzung haben. Infolgedessen versäumen es die Entwickler, Ereignisse wie fehlgeschlagene Eingabevalidierungen, fehlgeschlagene Authentifizierungsprüfungen und andere Anwendungsfehler, die auf einen ungültigen Zugriff hindeuten würden, zu berücksichtigen. Fehlen solche Warnungen, können Angreifer für längere Zeit unentdeckt bleiben und das System vollständig ausnutzen.
Whitepaper
API Schwachstellen Präventionsguide
Erfahren Sie, wie Sie API-Schwachstellen erkennen und verhindern können.
Bewährte Praktiken für die API-Sicherheit
Trotz der inhärenten Herausforderungen und der sich ständig weiterentwickelnden Bedrohungslandschaft können Unternehmen die richtige Kombination aus bewährten Verfahren und Sicherheitstools einsetzen, um eine robuste API-Sicherheit zu gewährleisten. Einige bewährte Praktiken zur Sicherung von APIs umfassen:
Erstellen und Aktualisieren eines API-Inventars
Um APIs korrekt zu verwalten und zu sichern, sollten funktionsübergreifende Teams die Anzahl und Identität aller APIs kennen, die ihr Unternehmen besitzt und verwendet. Die Entwickler sollten außerdem routinemäßig API-Bestände ermitteln und aktualisieren, indem sie Perimeter-Scans durchführen. Darüber hinaus sollte das Betriebsteam diese Inventardaten untereinander austauschen, um sicherzustellen, dass die API-Ressourcen ordnungsgemäß erfasst werden.
Starke Verschlüsselungsmechanismen implementieren
Die Datenübertragung zwischen dem API-Server und den Clients sollte verschlüsselt werden, um das Abfangen von Benutzeranfragen und Anwendungsantworten zu verhindern. Starke Verschlüsselungsalgorithmen gelten als eine der robustesten Methoden zur Abschwächung vieler Angriffe, wie z. B. Man-in-the-Middle- oder Brute-Force-Angriffe.
Verwendung von Quoten und Drosselung zur Begrenzung von Anfragen
Die Einrichtung von Kontingenten und die Festlegung von Schwellenwerten helfen dabei, Denial-of-Service-Angriffe zu verhindern, indem sie die Anzahl der Anfragen begrenzen, die ein Client in einem bestimmten Zeitraum stellen kann. Bei der Drosselung werden Berechtigungen für die Ermittlung von API-Aufrufen festgelegt. Durch eine ausgelöste Drosselung schaltet das System dann in einen temporären Zustand, in dem der Benutzer mit einer begrenzten Antwortrate im System angemeldet bleibt.
Einsatz starker Authentifizierungs- und Autorisierungsstrategien
Verwenden Sie robuste Authentifizierungsmechanismen wie Multi-Faktor-Authentifizierung, JWT-Zugangs-Tokens und das OAuth-Protokoll, um die Identität der Absender von Anfragen zu überprüfen. Entwickler sollten außerdem das Prinzip der geringsten Privilegien und rollenbasierte Zugriffskontrolle neben anderen geeigneten Autorisierungsmechanismen verwenden, um die Berechtigungen zu verwalten, sobald ein Benutzer angemeldet ist.
Haben Sie in letzter Zeit die Sicherheit Ihrer APIs überprüft?
API-Scanner für Schwachstellen
Sicherheitsteams sollten eine Scan-Lösung in Betracht ziehen, die automatisch bekannte Schwachstellen in Anwendungen aufspürt, um das Risiko zu verringern, über die API gehackt zu werden. Die Crashtest Security Suite ist ein umfassendes Scanning-Tool, das sich nahtlos in die DevOps-Toolchain einfügt und so die Integration von API-Schwachstellen-Scans in den Entwicklungs-Workflow erleichtert. Erstellen Sie ein Konto und erhalten Sie eine kostenlose, 2-wöchige Testversion, um Ihre APIs in wenigen Minuten zu scannen.
Weitere Informationen zu den Best Practices für APIs finden Sie hier.
Häufig gestellte Fragen
Welche Tests kann ich durchführen, um sichere APIs zu gewährleisten?
Bei der Erstellung von Sicherheitstests für APIs sollten Entwickler zufällige Szenarien erstellen, die die 10 wichtigsten OWASP-Schwachstellen abdecken. Zu den spezifischen Szenarien, die entwickelt werden können, gehören Tests zur Benutzerauthentifizierung, Tests zur Manipulation von Parametern, Injektionstests, Tests zu unbehandelten HTTP-Methoden und Fuzz-Tests.
Was sind API-Sicherheitsschemata?
API-Sicherheitsschemata helfen Entwicklern, bei der Erstellung von APIs eine robuste, bewährte Zugriffskontrolle zu implementieren. Zu den gängigen unterstützten Schemata gehören API-Schlüssel, Basisauthentifizierung und OpenID Connect (OIDC).
Welche Änderungen sind für die zukünftige Liste zu erwarten?
Die OWASP API Security-Liste der 10 größten Schwachstellen ist eine sich ständig ändernde Liste, die auf den sich entwickelnden Trends bei Cyberangriffen und Entwicklungstechniken basiert. Daher kann die künftige Liste Kombinationen aus aktuellen und neu identifizierten Schwachstellen enthalten. Zu den jüngsten Neuzugängen gehören Fehler bei der Datenintegrität, unsicheres Design und kryptografische Fehler.