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