Configurazione delle scansioni GoSec

Utilizzare gosec per ispezionare il codice sorgente di Golang nei repository sottoposti a scansione.

Parametri obbligatori

La pipeline ha bisogno del parametro nella Tabella 1 per eseguire la scansione Gosec. Per un elenco completo dei parametri della pipeline, vedi Parametri della pipeline.

parametri di scansione gosec
Nome Tipo Descrizione Richiesto o facoltativo
opt-in-gosec text Per abilitare la scansione gosec, impostare la proprietà su un valore qualsiasi non vuoto. Per disattivare la scansione, impostare un valore vuoto o rimuovere completamente la proprietà. (Il valore predefinito è vuoto) Richiesto

Abilitazione della scansione gosec per repository Git privati

Se il tuo progetto richiede dipendenze che si trovano in un repository Git privato e quindi necessita di autenticazione basata su SSH, puoi abilitare la pipeline per richiamare le dipendenze fornendo parametri facoltativi. Per ulteriori informazioni, vedi Abilita il download delle dipendenze per i repository privati.

Se è necessario specificare un proxy per recuperare le dipendenze, è possibile specificare il suo URL insieme alle credenziali (nome utente e token) usando i parametri della pipeline. Per ulteriori informazioni, consultare Abilita GOPROXY.

Abilita il download delle dipendenze per i repository privati

Lo scaricamento delle dipendenze per i repository può essere abilitato fornendo tutti i seguenti parametri della pipeline.

parametri della conduttura
Nome Tipo Descrizione Obbligatorio o facoltativo
gosec-private-repository-url text (deprecato) Il vostro repository privato di base URL. opzionale
gosec-private-repository-host text L'host del repository privato. opzionale
gosec-private-repository-ssh-key secret La chiave SSH per il repository privato opzionale
gosec-private-repository-user text Utente per il repository privato con accesso https (predefinito a x-oauth-basic) opzionale
gosec-private-repository-token secret Il token utilizzato per l'accesso https al repository privato (di default è il token configurato per la prima integrazione git nella toolchain il cui repository URL è ospitato su gosec-private-repository-host's value) opzionale

Abilita GOPROXY

Se è necessario specificare GOPROXY, è necessario fornire tutti i seguenti parametri.

Parametri GOPROXY
Nome Tipo Descrizione Obbligatorio o facoltativo
gosec-proxy-virtual-repository-user text L'utente del repository virtuale per il proxy gosec facoltativo
gosec-proxy-virtual-repository-token secret Il token del repository virtuale per il proxy gosec facoltativo
gosec-proxy-virtual-repository-url text L'URL del repository virtuale per il proxy gosec facoltativo

Parametri facoltativi

Il parametro gosec-scan-image può essere utilizzato per specificare un'immagine gosec differente da utilizzare, ad esempio un'immagine personalizzata o una specifica versione dell'immagine gosec ufficiale.

L'uso del flag gosec-additional-flags è illustrato nella sezione degli esempi

parametri opzionali di gosec
Nome parametro Valore predefinito Descrizione
gosec-additional-flags text Indicatori aggiuntivi da aggiungere all'inizio del comando gosec.
gosec-scan-image text Specifica un'immagine gosec alternativa, incluse immagini personalizzate o versioni specifiche dell'immagine ufficiale.
gosec-repo-path-$repo_owner-$repo_name text Percorso della sottodirectory all'interno del repository in cui si trova la radice del modulo Go. Da usare per ogni repo quando go.mod non si trova nella radice del repository.

Esempi

Definire il valore di gosec-additional-flags come -exclude-dir=<your_folder_1> -exclude-dir=<your_folder_2> -nosec=true e l'esecuzione del comando gosec viene aggiornata come:

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

Per eseguire la scansione di un modulo Go situato in una sottodirectory, impostare il parametro gosec-repo-path-$repo_owner-$repo_name. Per esempio, se il proprietario del repository è myorg, il nome del repository è myrepo e il modulo Go si trova nella directory cmd/myapp, definire il parametro come:

  • Nome parametro: gosec-repo-path-myorg-myrepo
  • Valore del parametro: cmd/myapp

In questo modo il codice Go verrà analizzato a partire dal percorso cmd/myapp invece che dalla radice del repository.

Utilizzo del proprio file di configurazione

Se si desidera modificare la configurazione predefinita, creare un file config.json nel repository di destinazione. Per ulteriori informazioni sui parametri di analisi nel file di configurazione, vedi gosec configuration.

Utilizzo di un'altra implementazione della scansione statica

Se si desidera utilizzare la propria implementazione di scansione statica, modificare il proprio file .pipeline-config.yaml e aggiungere il proprio script personalizzato alla fase static-scan. Per ulteriori informazioni, consultare Script personalizzati.