Entdecken Sie das TÜV-zertifizierte GoogleTest mit Agentic AI für C/C++-Tests!
Details ansehen »
Whitepaper
Neugierig, was der Leitfaden beinhaltet? Beginnen Sie mit der Vorschau unten.
Heutige Angreifer sind zielorientiert, sei es der Diebstahl von Geschäftsgeheimnissen, persönlichen Daten von Verbrauchern oder die Schädigung eines Unternehmens durch einen Denial-of-Service-Angriff. Zero-Day-Schwachstellen zu finden und kundenspezifische Anwendungen anzugreifen, ist schwierig. Ein einfacherer Angriffsweg wird daher stets bevorzugt, sei es ein Angriff auf einen Zulieferer in einer Lieferkette mit mangelhaften Software-Sicherheitspraktiken, das Verleiten eines Benutzers zur Preisgabe von Insider-Zugangsdaten oder die Ausnutzung einer bekannten Schwachstelle in einer gängigen Open-Source-Softwarekomponente.
APIs machen über 80 % des gesamten Webverkehrs aus und bieten Angreifern ähnliche Angriffstechniken wie anfällige Open-Source-Software.
Die Probleme, die zu API-bezogenen Sicherheitslücken führen, liegen oft nicht darin begründet, dass der Angreifer (und in manchen Fällen auch der Sicherheitsforscher) besonders clever oder sorgfältig vorgeht. Vielmehr sind viele Probleme auf mangelhaftes Design und eine fehlerhafte Implementierung der API zurückzuführen.
Zentrale Grundsätze der Softwaresicherheit sind starke Authentifizierung und Autorisierung, das Prinzip der minimalen Berechtigungen und Datenschutz sowie die Prüfung auf Missbrauchsfälle. Jüngste Sicherheitslücken bei Clubhouse, John Deere und Experian zeigen beispielhaft, wie grundlegende Sicherheitspraktiken missachtet wurden, was zum Datenleck von Nutzern, Kunden und Verbrauchern führte.
„Schlecht konzipierte APIs können Unternehmen stören und das Vertrauen der Verbraucher untergraben, insbesondere wenn sie Datenschutzprobleme offenlegen.“
—Sicherheitslösungsexperte bei Parasoft
„Schlecht konzipierte APIs können Unternehmen schädigen und das Vertrauen der Verbraucher untergraben, insbesondere wenn sie Datenschutzprobleme offenlegen. Die API-Schwachstellen von Clubhouse, die Ghosting, Trolling und Abhören ermöglichen, sind Beispiele dafür, warum Sicherheit von Anfang an in die Entwicklung integriert werden muss und soliden Softwareentwicklungspraktiken folgen sollte, bei denen das Prinzip der minimalen Berechtigungen ein zentraler Baustein ist, um eine ganze Reihe von Sicherheitsproblemen zu eliminieren“, erklärt der Sicherheitsexperte von Parasoft.
In jedem Fall nutzten die Sicherheitsforscher, die die Schwachstellen identifizierten, die API – wie vorgesehen – um auf Informationen von Millionen von Nutzern und/oder Kunden zuzugreifen und die vorgesehene Funktionalität der API zu missbrauchen. Einige API-Designs waren für jeden Nutzer ohne Authentifizierung zugänglich und ermöglichten es, beliebige (oder alle) Nutzer abzurufen und Namen, Adressen, Käufe und weitere Informationen herunterzuladen. Dies waren vermeidbare Fehler im Design, der Implementierung und den Tests der APIs.
Eine gut konzipierte API erfordert die Mitwirkung von Produktverantwortlichen, Architekten und Sicherheitsexperten, um Missbrauchsfälle zu verstehen und entsprechende Sicherheitsvorkehrungen zu treffen. Wie die obigen Beispiele zeigen, sind Authentifizierungskontrollen unerlässlich, da der Authentifizierungsmechanismus für alle zugänglich ist, auch für potenzielle Angreifer.
Authentifizierungskontrollen gehen daher über die bloße Authentifizierung von Benutzern und Systemen hinaus. Sie umfassen Maßnahmen zur Verhinderung von Credential Stuffing und Brute-Force-Angriffen, schwachen Passwörtern sowie der Offenlegung sensibler Informationen wie Authentifizierungstoken und schwacher Verschlüsselungsschlüssel.
Starke Authentifizierungskontrollen sind nur ein erster Schritt. Wie von der OWASP API-Sicherheit Top 10Organisationen müssen außerdem sicherstellen, dass die Autorisierung sowohl auf Objektebene als auch auf Funktionsebene ordnungsgemäß erfolgt.
Die API-Erkennung ist unerlässlich. Transparenz über alle APIs ist erforderlich. Man kann etwas nicht schützen, ohne dessen Existenz zu kennen. Das Verständnis der Angriffsfläche und der exponierten APIs ist für Sicherheitstests essenziell. API-Testabdeckung und -Erkennung liefern wichtige Datenpunkte zur Minimierung des Risikos von API-Angriffen. Wie bereits erwähnt, hat der Wandel von monolithischen Anwendungen zu Microservices die Anzahl der APIs in Unternehmen deutlich erhöht. Dieser grundlegende Wandel erfordert von Unternehmen ein proaktiveres Vorgehen bei der API-Erkennung und der Analyse der Angriffsfläche.
Idealerweise enthalten Softwareprojekte eine detaillierte Dokumentation für interne Beteiligte, um die Wartung zu vereinfachen und neuen Entwicklern den Einstieg in das Projekt zu erleichtern. Ebenso benötigen APIs eine Dokumentation für Entwickler, die die API nutzen – seien es interne Entwickler und Tester oder externe Dienstleister. In der Realität führt der Druck, Funktionen hinzuzufügen und die Markteinführungszeit zu verkürzen, jedoch häufig zu einer unzureichenden Dokumentation.
Dies gilt insbesondere für APIs, die in der Regel einfacher aufgebaut und für den internen Gebrauch bestimmt sind. Ohne eine adäquate interne Dokumentation verfügen DevOps-Ingenieure nur über unvollständige Kenntnisse der Funktionsweise einer API. Ohne API-Verträge, -Definitionen und -Spezifikationen müssen Qualitätssicherung und Sicherheit das beabsichtigte Verhalten von APIs modellieren und Anwendungs- und Missbrauchsfälle erraten.
Sicherheitsressourcen sind in den meisten Organisationen knapp. Dies ist ein zunehmendes nationales Problem. QA und DevOps-Engineering konzentrieren sich üblicherweise auf Funktionstests, um sicherzustellen, dass die im Anforderungsdokument aufgeführten Funktionen den Spezifikationen entsprechen.
Dies umfasst zwar Anwendungsfälle wie Durchsatz- und Kapazitätstests, kann aber Sicherheitstests auslassen, die sich oft auf Missbrauchs- und Fehlverwendungsfälle konzentrieren, wie beispielsweise den Aufruf einer API mit absichtlich falschen Argumenten oder die nicht ordnungsgemäße Verarbeitung der von der API zurückgegebenen Werte.
Sicherheit und Tests sind oft mit Anwendungsfällen für eine Benutzeroberfläche vertraut. API-Anwendungsfälle sind komplexer, insbesondere zwischen Microservices.
Während die oben genannten Sicherheitsprobleme und -lücken zunächst unkompliziert erscheinen, verkompliziert der rasante Anstieg von Microservices und den daraus resultierenden APIs die Sicherheit und ermöglicht es Angreifern, mehrere APIs in einem mehrstufigen Angriff zu verknüpfen. Zugriffskontrollrichtlinien mit unterschiedlichen Hierarchien, Gruppen und Rollen können für die Sicherheitsverantwortlichen verwirrend sein und zu unzureichenden Sicherheitsmaßnahmen führen.
Testen und Absichern von APIs Es erfordert ein Verständnis der Anwendungslogik, über die Sicherheitsexperten oft nur wenig wissen. APIs sind eher wie Legosteine, die sich auf vielfältige Weise kombinieren lassen. Angreifer können APIs auf unbeabsichtigte Weise nutzen – sogar durch die Verknüpfung von APIs, um eine Anwendung anzugreifen. Wie viele Möglichkeiten gibt es beispielsweise, auf den Warenkorb zuzugreifen oder Zahlungsinformationen zu speichern?
„APIs sind erstaunlich flexibel. Die Möglichkeit, alle möglichen Kombinationen umfassend zu testen, ist entscheidend, um die Sicherheit Ihrer APIs zu gewährleisten.“
—Arthur Hicken, Chief Evangelist bei Parasoft
Für umfassende Tests ist programmatischer Einblick in die APIs und ihre Interaktionen, Grenzfälle, Protokolle sowie Kenntnisse der erwarteten Datentypen erforderlich. Das Erstellen von Tests ist mit ausreichenden Ressourcen natürlich möglich, jedoch ist der Lernprozess dieser Fähigkeit sehr anspruchsvoll.
Traditionelle Werkzeuge, die auf traditionelle Weise angewendet werden, stellen nur eine Teillösung dar. Statische Analysewerkzeuge Typischerweise untersuchen diese Tools den Quellcode. Obwohl sie einige Probleme mit der API identifizieren, fehlt ihnen das Wissen über die beabsichtigte Funktionalität, was ihre Vollständigkeit einschränkt.
Dynamische Analysescanner sind zwar auch hilfreich, suchen aber oft nur nach Einstiegspunkten in der Benutzeroberfläche und haben möglicherweise keine Kenntnis von APIs und deren Funktionalität.
Zwar können erfahrene Penetrationstester Schwachstellen in APIs aufdecken, doch ist diese Methode schlecht skalierbar und aus Zeit- und Kostengründen unpraktisch. Zudem ist sie mit agilen Entwicklungsmethoden wie CI/CD und DevSecOps inkompatibel.
Diese Tools verstehen keine API-Authentifizierungsmechanismen und müssen Protokolle wie OAuth2 und JSON Web Tokens berücksichtigen.
Sie haben außerdem Schwierigkeiten mit Inhaltstypen und HTTP-Antworten, die die Erkennung von API-Schwachstellen beeinflussen. Darüber hinaus gibt es keine Links, die diese Tools durchsuchen können, um APIs zu ermitteln, was die Sicherheitstests für APIs grundlegend verändert.
Hinzufügen API-Sicherheitstests Der gesamte Softwareentwicklungslebenszyklus ist auch in Umgebungen mit schnellen Entwicklungszyklen möglich, wenn Unternehmen ihren DevOps-Ingenieuren die richtigen Werkzeuge und Unterstützung zur Verfügung stellen.
Wichtig ist, dass Sicherheitstests neben Implementierungs- und Konfigurationsfehlern auch häufige Designfehler berücksichtigen müssen. Die Entwicklung sichererer Software ist kein Geheimnis. Es gibt verschiedene Richtlinien und Standards, die Unternehmen nutzen können, um Risiken zu identifizieren und zu minimieren.
Eine davon, die OWASP Application Security Verification Standards (ASVS), ist besonders hilfreich bei der Entwicklung und Implementierung von APIs. ASVS beschreibt sich selbst als „eine Liste von Anwendungssicherheitsanforderungen oder -tests, die von Architekten, Entwicklern, Testern, Sicherheitsexperten, Tool-Anbietern und Anwendern verwendet werden können, um sichere Anwendungen zu definieren, zu erstellen, zu testen und zu verifizieren.“
Auch wenn die Erlangung einer ASVS-Zertifizierung ein erstrebenswertes Ziel ist, können Organisationen, die ihre Software-Sicherheitsprogramme schrittweise verbessern möchten, die ASVS-Richtlinien auf eine weniger formale Weise nutzen.
Integration von API-Sicherheitsaktivitäten Früh im Softwareentwicklungszyklus ist dies möglich, sogar in Umgebungen mit schnellen Entwicklungszyklen, wenn Organisationen ihren Entwicklungsteams die richtigen Werkzeuge und Unterstützung zur Verfügung stellen.
Frühzeitige Sicherheitstests sind unerlässlich, um Sicherheitsprobleme mit APIs zu verhindern und aufzudecken. Doch alles beginnt mit einem guten Design. Die Entwicklung einer sicheren API ist kein Geheimnis. APIs benötigen unter anderem klare Definitionen der durch Sicherheitskontrollen erlaubten Parameter, eine Ratenbegrenzung zum Schutz vor Brute-Force-Angriffen sowie die Durchsetzung starker Authentifizierungsmechanismen, um API-Missbrauch zu verhindern.
Wird die Durchführung von Sicherheitstests erst spät im Softwareentwicklungszyklus durchgeführt, führt dies zu Verzögerungen und höheren Entwicklungskosten. Die Fehlerbehebung wird in der Wartungsphase teurer. Die steigenden Kosten sind größtenteils darauf zurückzuführen, dass es schwierig ist, Software zu refaktorisieren, um Fehler zu beheben oder Open-Source-Bibliotheken zu ändern, ohne dabei die Funktionen des ursprünglichen Designs zu beeinträchtigen.
Die ASVS-Standards berücksichtigen bei der „Shift-Left“-Methode API-Funktionalität, Authentifizierung und Autorisierung bereits in der Entwurfsphase des Lebenszyklus. Dies beinhaltet die Authentifizierung der Kommunikation zwischen Anwendungskomponenten, einschließlich APIs; die Anwendung des Prinzips der minimalen Berechtigungen auf alle Komponenten; die Verschlüsselung von API-Aufrufen; und die Verwendung von API-URLs, die keine sensiblen Informationen wie Sitzungstoken preisgeben.
OWASP bietet mit den OWASP API Top 10 eine Orientierungshilfe. Diese Liste beschreibt die allgemein anerkannten Schwachstellen in APIs, die den häufigsten und gravierendsten Problemen ausgesetzt sind. Viele dieser Schwachstellen betreffen Identitäts- und Zugriffsmanagement, während andere, wie beispielsweise Injection- und Logging-Schwachstellen, bereits in den meisten Testumgebungen für Anwendungssicherheit berücksichtigt und integriert sind.
Eine bessere Methode zum Testen von APIs besteht darin, funktionale Tests zu nutzen, um Einblick in die der Anwendung zugrunde liegenden APIs und deren Funktionalität zu erhalten, und die Testgenerierung mithilfe künstlicher Intelligenz (KI) zu erweitern, um geeignete Testfälle zu erstellen.
"API-Tests „Es kann überraschend komplex sein. Es erfordert Kenntnisse im Testen, in der Verwendung der APIs und in deren alternativen Einsatzmöglichkeiten, die von den User Stories abweichen. Kommt dann noch die Sicherheit hinzu, sind noch mehr Kenntnisse nötig, da die API-Schicht tiefer und technischer ist als die UI-Schicht“, erklärt Arthur Hicken, Chief Evangelist bei Parasoft.
„API-Tests können überraschend komplex sein. Wenn man dann noch die Sicherheit mit einbezieht, ist die API-Schicht tiefer und technischer als die UI-Schicht.“
—Arthur Hicken, Chief Evangelist bei Parasoft
Parasoft SOAtest Der Smart API Test Generator nutzt ein Browser-Plugin, das mithilfe von KI manuelle und automatisierte UI-Tests automatisch in automatisierte API-Tests umwandelt. Anstatt einfach nur Datenverkehr zu erfassen, aufzuzeichnen und wiederzugeben, Der intelligente API-Testgenerator nutzt KI Um aussagekräftige Muster zu erkennen, Bedrohungsmodelle anzuwenden und die Beziehungen zwischen diesen API-Aufrufen zu verstehen, kann es automatisierte API-Testszenarien generieren, die dieselben Aktionen wie Ihre UI-Tests ausführen, jedoch vollständig automatisiert und leicht erweiterbar sind.
Bereit, tiefer einzutauchen?