
Automatisiert statische API-Sicherheitsprüfungen von OpenAPI-Verträgen in CI/CD mit über 300 Prüfungen für Authentifizierung, Autorisierung und Datenbeschränkungen, inklusive Mindestpunktzahl-Gates und SARIF-Ausgabe.
Die Action für statische Sicherheitstests von REST-APIs ermittelt REST-API-Verträge, die der OpenAPI-Spezifikation (OAS, früher bekannt als Swagger) entsprechen, und führt gründliche Sicherheitsprüfungen an ihnen durch. Unterstützt werden sowohl OAS v2 als auch v3.0.x, jeweils im JSON- und YAML-Format.
Sie können diese Action in den folgenden Szenarien verwenden:
Die Action wird von 42Crunch API Security Audit unterstützt. Security Audit führt eine statische Analyse der API-Definition durch, die mehr als 300 Prüfungen auf Best Practices und potenzielle Schwachstellen in Bezug auf Authentifizierung, Autorisierung sowie Dateneinschränkungen umfasst.
Standardmäßig führt diese Action Folgendes aus:
.json- und .yaml-Dateien.Auf diese Weise können Sie neue oder geänderte API-Verträge im Repository finden.
Sie können das Verhalten der Action fein abstimmen, indem Sie bestimmte Teile des Repositorys oder Dateinamenmasken angeben, die bei der Erkennung von APIs ein- oder ausgeschlossen werden sollen. Sie können die Erkennung sogar vollständig deaktivieren und stattdessen nur bestimmte zu prüfende API-Dateien auflisten und diese Ihren vorhandenen APIs in der 42Crunch API Security Platform zuordnen. Alle diese Einstellungen konfigurieren Sie in der Konfigurationsdatei 42c-conf.yaml. Erweiterte Beispiele finden Sie hier.
Alle entdeckten APIs werden in eine API-Collection in der 42Crunch-Plattform hochgeladen. Standardmäßig verwendet die Action die Umgebungsvariablen GITHUB_REPOSITORY und GITHUB_REF, um das Repository und den Branch-/Tag-/PR-Namen zu benennen, aus dem die API-Collection stammt. Sie können den Namen mit dem Parameter default-collection-name der Action überschreiben. Bei späteren Ausführungen werden die APIs in der Collection mit den Änderungen in Ihrem Repository synchron gehalten.
Fügen Sie diese Action Ihren CI/CD-Workflows in GitHub hinzu und lassen Sie sie bei API-Definitionen mit Sicherheitsproblemen fehlschlagen.
Security Audit vergibt für jeden API-Vertrag einen Audit-Score von 0 bis 100, der die Sicherheitsfläche Ihrer APIs widerspiegelt. Sie können den Parameter min-score der GitHub-Action verwenden, um den Schwellenwert für den Audit-Score festzulegen, bei dem die Action fehlschlägt (Standard ist 75, sofern kein anderer Wert angegeben ist). Dies hilft, API-Definitionen von schlechter Qualität zu erkennen und die Probleme bereits so früh wie möglich, nämlich zum Designzeitpunkt, zu beheben.
Erweiterte Fehlerbedingungen können in der Konfigurationsdatei 42c-conf.yaml festgelegt werden, z. B. Audit-Score nach Kategorie (Sicherheit oder Datenvalidierung), Schweregrad der Probleme oder sogar bestimmte Probleme, die über ihre Problem-ID angegeben werden. Erweiterte Beispiele finden Sie hier.
Darüber hinaus erzwingt das Plugin Security Quality Gates, die auf Plattformebene definiert sind (standardmäßige oder tag-gesteuerte). Security Quality Gates setzen die im Unternehmen definierten Anwendungssicherheitsanforderungen durch.
Bei jeder Ausführung enthält die Action einen Link zu dem detaillierten, priorisierten Bericht mit Handlungsempfehlungen für jede Ihrer OpenAPI-Dateien:
Folgen Sie den Links, um den detaillierten Bericht in der 42Crunch-Plattform zu lesen:
Sie können die von der 42Crunch-Prüfung gefundenen Probleme auch direkt in GitHub auf der Registerkarte Security unter Code scanning alerts verfolgen.
Aktivieren Sie dies, indem Sie einfach upload-to-code-scanning:true zu den Parametern der Action in Ihrem GitHub-Workflow hinzufügen.
Klicken Sie auf einen der Alerts, um die genaue Stelle in Ihrem Code zu sehen und Details zur Schwachstelle sowie die empfohlenen Abhilfemaßnahmen zu erhalten.
Diese Action nutzt den 42Crunch-API-Sicherheitsaudit-Dienst. Bevor Sie die Action verwenden, benötigen Sie ein Konto auf der 42Crunch-Plattform. Wenn Sie kein 42Crunch-Kunde sind, können Sie auf dieser Seite ein kostenloses Konto anfordern: https://42crunch.com/get-started/.
Befolgen Sie dann die in der Dokumentation beschriebenen Schritte, um ein API-Token für die Authentifizierung der Action bei der 42Crunch-Plattform zu erstellen und es als Secret in GitHub zu speichern.
api-tokenErforderlich Das API-Token, mit dem sich die GitHub-Action bei der 42Crunch-Plattform authentifiziert. Legen Sie Ihr API-Token nicht direkt in der Workflow-Datei ab! Erstellen Sie stattdessen ein GitHub-Secret in Ihren Repository-Einstellungen und referenzieren Sie es wie im folgenden Beispiel gezeigt.
min-scoreDer Mindest-Audit-Score, den OpenAPI-Dateien erreichen müssen, andernfalls schlägt die Action fehl. Standard ist 75.
upload-to-code-scanningLädt die Prüfergebnisse in GitHub Code Scanning hoch. Standard ist false. Beachten Sie, dass der Workflow für diesen Schritt bestimmte Berechtigungen benötigt, damit er erfolgreich ist.
...
jobs:
run_42c_audit:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for results upload to Github Code Scanning
...
ignore-failuresWenn auf true gesetzt, erzwingt dies einen erfolgreichen Abschluss der Ausführung, auch wenn die von Ihnen festgelegten Fehlerbedingungen (wie min-score oder SQG-Kriterien) erfüllt sind. Standard ist false.
Dieser Parameter kann nützlich sein, wenn Sie SQG-Fehlerszenarien erkennen möchten, ohne sie durchzusetzen (d. h. Entwicklungsteams eine Schonfrist einräumen, bevor Builds zum Scheitern gebracht werden).
ignore-network-errorsWenn auf true gesetzt, erzwingt dies einen erfolgreichen Abschluss der Ausführung, auch wenn ein Netzwerkfehler aufgetreten ist (z. B. eine fehlgeschlagene Verbindung zur 42Crunch-Plattform usw.). Standard ist false.