GoSec-Scans konfigurieren

Verwenden Sie gosec, um Golang Quellcode in Ihren gescannten Repositories zu untersuchen.

Erforderliche Parameter

Die Pipeline benötigt den Parameter in Tabelle 1, um den Gosec-Scan auszuführen. Eine vollständige Liste der Pipelineparameter finden Sie unter Pipelineparameter.

gosec-Scan-Parameter
Name Typ Beschreibung Erforderlich oder optional
opt-in-gosec text Um den Gosec-Scan zu aktivieren, setzen Sie die Eigenschaft auf einen beliebigen, nicht leeren Wert. Um die Überprüfung zu deaktivieren, setzen Sie den Wert auf einen leeren Wert oder entfernen Sie die Eigenschaft ganz. (Standard ist leer) Erforderlich

Gosec-Scan für private Git-Repositorys aktivieren

Wenn Ihr Projekt Abhängigkeiten erfordert, die sich in einem privaten Git-Repository befinden, und daher SSH-basierte Authentifizierung benötigt, können Sie die Pipeline aktivieren, um die Abhängigkeiten abzurufen, indem Sie optionale Parameter angeben. Weitere Informationen finden Sie unter Download von Abhängigkeiten für private Repositorys aktivieren.

Wenn für den Abruf von Abhängigkeiten ein Proxy angegeben werden muss, können Sie dessen URL zusammen mit den Anmeldeinformationen (Benutzername und Token) mit Hilfe von Pipeline-Parametern angeben. Weitere Informationen finden Sie unter GOPROXY aktivieren.

Download von Abhängigkeiten für private Repositorys aktivieren

Das Herunterladen von Abhängigkeiten für Repositorys kann aktiviert werden, indem alle folgenden Pipelineparameter bereitgestellt werden.

Pipelineparameter
Name Typ Beschreibung Erforderlich oder optional
gosec-private-repository-url text (veraltet) Ihre private Repository-Basis URL. optional
gosec-private-repository-host text Ihr privater Repository-Host. optional
gosec-private-repository-ssh-key secret Der SSH-Schlüssel für das private Repository optional
gosec-private-repository-user text Benutzer für das private Repository mit https-Zugang (Standard: x-oauth-basic) optional
gosec-private-repository-token secret Das Token, das für den https-Zugriff auf das private Repository verwendet wird (standardmäßig das Token, das für die erste Git-Integration in der Toolchain konfiguriert wurde, deren Repository URL auf gosec-private-repository-host gehostet wird) optional

GOPROXY aktivieren

Wenn GOPROXY angegeben werden muss, müssen alle folgenden Parameter angegeben werden.

GOPROXY-Parameter
Name Typ Beschreibung Erforderlich oder optional
gosec-proxy-virtual-repository-user text Der Benutzer des virtuellen Repositorys für gosec-Proxy optional
gosec-proxy-virtual-repository-token secret Das virtuelle Repository-Token für den gosec-Proxy optional
gosec-proxy-virtual-repository-url text Die URL des virtuellen Repositorys für den Gosec-Proxy optional

Optionale Parameter

Der Parameter gosec-scan-image kann verwendet werden, um ein anderes gosec-Image anzugeben, das verwendet werden soll, z. B. ein angepasstes Image oder eine bestimmte Version des offiziellen gosec-Image.

Die Verwendung des Flags gosec-additional-flags wird im Abschnitt Beispiele gezeigt

gosec optionale Parameter
Parametername Standardwert Beschreibung
gosec-additional-flags text Zusätzliche Flags, die an den Anfang des Befehls gosec angehängt werden sollen.
gosec-scan-image text Gibt ein alternatives gosec-Image an, einschließlich angepasster Images oder bestimmter Versionen des offiziellen Image.
gosec-repo-path-$repo_owner-$repo_name text Unterverzeichnispfad innerhalb des Repositorys, in dem sich das Stammverzeichnis des Go-Moduls befindet. Wird pro Projektarchiv verwendet, wenn sich go.mod nicht im Stammverzeichnis des Projektarchivs befindet.

Beispiele

Definieren Sie den Wert von gosec-additional-flags als -exclude-dir=<your_folder_1> -exclude-dir=<your_folder_2> -nosec=true. Der ausgeführte gosec-Befehl wird wie folgt aktualisiert:

./gosec -exclude-dir=<your_folder_1> -exclude-dir=<your_folder_2> -nosec=true -no-fail -fmt=json -out=gosec-results.json -stdout -verbose=text ./...

Um ein Go-Modul zu scannen, das sich in einem Unterverzeichnis befindet, setzen Sie den Parameter gosec-repo-path-$repo_owner-$repo_name. Wenn Ihr Repository-Eigentümer beispielsweise myorg ist, der Repository-Name myrepo lautet und sich das Go-Modul im Verzeichnis cmd/myapp befindet, definieren Sie den Parameter wie folgt:

  • Parametername:gosec-repo-path-myorg-myrepo
  • Parameterwert: cmd/myapp

Dadurch wird der Go-Code ab dem Pfad cmd/myapp anstelle des Repository-Stammverzeichnisses gescannt.

Eigene Konfigurationsdatei verwenden

Wenn Sie die Standardkonfiguration ändern möchten, erstellen Sie eine Datei config.json im Zielrepository. Weitere Informationen zu den Analyseparametern in der Konfigurationsdatei finden Sie unter gosec configuration.

Verwendung einer anderen statischen Scanimplementierung

Wenn Sie Ihre eigene statische Scanimplementierung verwenden wollen, ändern Sie Ihre Datei .pipeline-config.yaml und fügen Sie Ihr eigenes angepasstes Script zur Stufe static-scan hinzu. Weitere Informationen finden Sie unter Angepasste Scripts.