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.
| 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.
| 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.
| 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
| 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.