IBM Cloud Docs
Configurazione delle scansioni detect - secrets

Configurazione delle scansioni detect - secrets

Detect - secrets è uno strumento di sicurezza lato client che rileva i segreti all'interno di una base di codice per correggere e prevenire le perdite di segreti.

Per ulteriori informazioni, vedi IBM/detect - secrets.

Detect - secrets esegue la scansione dell'intera codebase corrente e genera un'istantanea dei segreti attualmente identificati. L'elenco dei segreti viene quindi utilizzato per controllare i segreti identificati come veri positivi o falsi positivi, le toolchain DevSecOps creano quindi problemi Git per i veri positivi.

Utilizzo del file di linea di base

Un file baseline è l'istantanea di una scansione segreta di rilevamento. Il file elenca i potenziali segreti ad ogni esecuzione e contrassegna i falsi positivi, che non sono contrassegnati come problemi nelle esecuzioni successive.

Il file di baseline deve essere aggiornato periodicamente. Aggiorna e controlla il file di baseline eseguendone il commit e il push nel repository. L'inserimento di questi falsi positivi nella baseline garantisce che non vengano creati problemi per questi file esistenti durante le scansioni future.

Classificazione dei segreti

Quando una scansione detect - secrets è completa, i segreti rilevati devono ancora essere classificati come veri positivi o falsi positivi.

Tre condizioni classificano un segreto potenzialmente rilevato:

  • Non controllato- Un segreto viene classificato come non controllato se è un potenziale segreto che deve essere revisionato nel processo di verifica.
  • Verificato come reale- Un segreto viene classificato come reale se è contrassegnato come un vero positivo durante un controllo e il file di base contiene ancora il segreto.
  • Live- Un segreto viene categorizzato come live se il segreto viene confermato come un segreto live dai plug-in utilizzati da detect - secrets.

Gestione della baseline

I seguenti comandi gestiscono la baseline dei segreti:

  • Il comando detect-secrets scan genera un file di base o aggiorna il file esistente per contenere un'istantanea di tutti i potenziali segreti rilevati dell'esecuzione.
  • Il comando detect-secrets audit etichetta i segreti in modo che sia possibile restringere l'elenco di controllo dei segreti da migrare.

I controlli identificano i segreti rilevati come veri o falsi positivi, è quindi possibile aggiornare il file di linea di base in modo che i falsi positivi possano essere esclusi dalle future esecuzioni di scansione.

Aggiornamento della baseline

Effettuare le seguenti operazioni per aggiornare la baseline:

  1. Installare detect - secrets sul computer locale:

    pip install --upgrade "git+https://github.com/ibm/detect-secrets.git@master#egg=detect-secrets"

  2. Esegui i seguenti comandi per eseguire la scansione, generare o aggiornare il file di baseline nel tuo repository:

    1. Esegui il seguente comando per eseguire la scansione della cartella del repo:

      detect-secrets scan --update .secrets.baseline

      È possibile utilizzare l'indicatore --exclude-files quando si desidera ignorare alcuni file che contengono falsi positivi o che non richiedono la scansione. Le regole di esclusione si basano sul formato di espressioni regolari.

      Per eseguire una scansione con esclusioni di file e cartelle, utilizzare il comando seguente:

      detect-secrets scan --update .secrets.baseline --exclude-files '<folder_to_ignore>|<file_to_ignore>'

      Esempio: detect-secrets scan --update .secrets.baseline --exclude-files "package-lock.json|go.sum"

      L'elenco di file esclusi viene registrato nel file di base.

      Se non viene fornita alcuna opzione --exclude-files nelle scansioni successive, il rilevamento dei segreti rispetta automaticamente l'elenco di esclusione esistente dal file di baseline.

      Tuttavia, se si desidera specificare un nuovo elenco di esclusione durante detect-secrets scan, il nuovo elenco sovrascrive l'elenco di esclusione esistente nel file di linea di base.

    2. Eseguire il seguente comando per esaminare e controllare il file di baseline creato con il passo di scansione:

      detect-secrets audit .secrets.baseline

      Questo comando attiva un terminale interattivo per contrassegnare i falsi positivi. È possibile indicare (y) es se il segreto trovato è un segreto effettivo o (n) o se è un falso positivo.

    3. Esegui il commit e il push del file .secrets.baseline al repository, il suo processo deve essere eseguito localmente su base periodica.

Rileva - parametri di scansione segreti

Se si dispone di un file di baseline esistente, la scansione utilizza la configurazione esistente. Le impostazioni e i risultati del controllo precedenti non vengono sovrascritti. Se non esiste alcun file di baseline, viene creata automaticamente una baseline temporanea per l'esecuzione.

Il parametro detect-secrets-baseline-filename specifica un nome file personalizzato per il file di base utilizzato da detect - secrets. Per impostazione predefinita, detect - secrets ricerca un file denominato .secrets.baseline nella directory root del repository. Tuttavia, se si assegna un nome diverso al file di base, è possibile fornire il relativo nome file utilizzando questo parametro.

Il parametro detect-secrets-exclusion-list sovrascrive l'elenco di esclusione predefinito quando un'esecuzione viene eseguita senza un file di baseline esistente. Questo parametro identifica i file da ignorare in modo da non creare problemi ad essi collegati.

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

Il parametro detect-secrets-verbose, quando è impostato su 1, registra il nome del file corrente sottoposto a scansione.

Tabella 1. Segreti - parametri di scansione
Nome Immettere Descrizione Obbligatoria o facoltativa
detect-secrets-baseline-filename Stringa Il nome del file di baseline nel repository dell'applicazione. Il valore predefinito è .secrets.baseline. Obbligatorio se il file di baseline non è il nome predefinito .secrets.baseline.
detect-secrets-exclusion-list Stringa Un elenco regex di file da escludere nella scansione detect - secrets. Il valore predefinito è requirements.txt|go.mod|go.sum|pom.xml|build.gradle|package-lock.json. Facoltativo, questo elenco di file sostituisce l'elenco di esclusione generale solo quando non è presente alcun file .secrets.baseline.
detect-secrets-image Stringa Specifica un'immagine di segreti di rilevamento alternativa, incluse immagini personalizzate o versioni specifiche dell'immagine ufficiale. Facoltativo
detect-secrets-verbose Stringa Emette il nome del file attualmente sottoposto a scansione. Il valore predefinito è 0. Facoltativo, indicatore di debug 0 - off, 1 - on.