Mit dieser GitHub -Aktion können Sie den Branchencodescanner von Contrast Security (Kontrastscan) verwenden, um Schwachstellen in Ihrem Code zu finden. Die Aktion vergleicht die Code -Scan -Analyse des PR mit der letzten Code -Scan -Analyse des Zielziels. GitHub fehlschlägt die Überprüfung, ob neue Schwachstellen eingeführt wurden.
Wenn Sie mit GitHub -Aktionen nicht vertraut sind, lesen Sie die Dokumentation der Github -Aktionen, um zu erfahren, welche Github -Aktionen sind und wie Sie sie einrichten. Führen Sie danach die folgenden Schritte aus:
Konfigurieren Sie die folgenden Github Secrets Contrast_api_key, contrast_organization_id, contrast_auth_header und contrast_api_url

CodeSec unter Kontrastsicherheitsnutzern: Abrufen der Authentifizierungsdetails für die Geheimnisse mit der CLI.
Installationsanweisungen hier: https://www.contrastsecurity.com/developer/codesec
Wenn Sie ein neuer Benutzer sind, erstellen Sie ein Konto mit dem Befehl "Contrast Auth"
Führen Sie den Befehl "Kontrastkonfiguration" in der CLI aus, um die erforderlichen Anmeldeinformationen zu sammeln

Lizenzierte Kontrastsicherheitsbenutzer: Erhalten Sie Ihre Authentifizierungsdetails für die Geheimnisse aus dem Menü "Benutzereinstellungen" in der Kontrast -Weboberfläche: Sie benötigen Folgendes

Kopieren Sie den Beispiel -Workflow unten und erstellen Sie einen Zweig Ihres Codes, um Kontrastsicherheits -Scan hinzuzufügen. Dieser Zweig befindet sich typischerweise unter .github/workflows/build.yml
Aktualisieren Sie die Workflow -Datei, um anzugeben, wann die Aktion ausgeführt wird (z. B. auf Pull_Request, beim Push))
on :
# Trigger analysis when pushing to main or an existing pull requests. Also trigger on
# new pull requests
push :
branches :
- main
pull_request :
types : [opened, synchronize, reopened]Aktualisieren Sie den Filepath in der Workflow -Datei, um den Speicherort des erstellten Artefakts oder der Datei zum Scannen zu spenden
with :
artifact : mypath/target/myartifact.jar Auf der Grundlage des Schweregrads der anfälligen festgestellten festgelegten Schweregrad (kritisch/hohe/medium oder niedrig) zu scheitern und true nicht zu true
severity : high
fail : true Damit GitHub Schwachstellen auf der Registerkarte Sicherheit des Repo auflisten kann, muss die Kontrastaktion von dieser Github -Aktion begleitet werden
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif Der Wert von sarif_file muss results.sarif sein.
Erstellen Sie nach dem Verhalten eine Pull -Anfrage (PR), um das Update wieder zu Ihrer Hauptzweig zu verschmelzen. Das Erstellen des PR löst den Scan aus, um zu laufen. Die zusätzliche "Code -Scan -Überprüfung" wird im PR angezeigt
Da es wahrscheinlich neue Erkenntnisse gibt, wenn Sie einen Kontrastscan hinzufügen, möchten wir nicht scheitern und das Zusammenführen des PR, der einen Kontrastscan hinzufügt, blockieren, um den Eigentümer des PR dazu zu zwingen, jetzt alle neu exponierten Schwachstellen zu beheben, die bereits in der Codebasis vorhanden waren.
Nach dem Kontrastscan läuft im Hauptzweig, alle neuen PRs, die Sie erstellen, wenn der Kontrastscan ausgeführt wird. Überprüfen Sie, ob sie neue Schwachstellen über die gerade festgelegten Basis hinausführen.
Alle kontrastbezogenen Kontogeheimnisse sollten als Github-Geheimnisse konfiguriert werden und über Umgebungsvariablen im GitHub-Läufer an den Scanner übergeben werden. Ein einfacher Workflow, um loszulegen, ist:
on :
# Trigger analysis when pushing to main or an existing pull requests. Also trigger on
# new pull requests
push :
branches :
- main
pull_request :
types : [opened, synchronize, reopened]
name : Contrast Security Scan
jobs :
build_and_scan :
permissions :
contents : read # for actions/checkout
security-events : write # for github/codeql-action/upload-sarif
actions : read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
runs-on : ubuntu-latest
# check out project
steps :
- uses : actions/checkout@v2
# steps to build the artifact you want to scan
# -name: Build Project
# ...
# Scan Artifact
- name : Contrast Scan Action
uses : Contrast-Security-OSS/[email protected]
with :
artifact : mypath/target/myartifact.jar
apiKey : ${{ secrets.CONTRAST_API_KEY }}
orgId : ${{ secrets.CONTRAST_ORGANIZATION_ID }}
authHeader : ${{ secrets.CONTRAST_AUTH_HEADER }}
severity : high
fail : true
# To list vulnerabilities in the GitHub Security Tab of the repo include GitHub upload-sarif action
# The value of `sarif_file` must be `results.sarif`
- name : Upload SARIF file
uses : github/codeql-action/upload-sarif@v2
with :
sarif_file : results.sarif Diese Github -Aktion und das Kontrast -Maven -Plugin erreichen dasselbe. Sie können beides nicht gleichzeitig verwenden. Wenn Sie beispielsweise Maven verwenden, um Ihren Code zu erstellen und org.contrastsecurity.maven: Scannen während des Builds auszuführen, verwenden Sie die Kontrast -Scan -Github -Aktion nicht.