I “segreti” sono qualsiasi tipo di dati sensibili o privati ​​che concede agli utenti autorizzati il ​​permesso di accedere a infrastrutture IT critiche (come account, dispositivi, rete, servizi basati su cloud), applicazioni, archiviazione, database e altri tipi di dati critici per un’organizzazione. Ad esempio, password, ID di accesso AWS, chiavi di accesso segrete AWS, chiave OAuth di Google ecc. Sono segreti.

I segreti dovrebbero essere tenuti rigorosamente privati. Tuttavia, a volte gli aggressori possono accedervi facilmente a causa di criteri di sicurezza imperfetti o errori involontari degli sviluppatori. A volte gli sviluppatori utilizzano segreti predefiniti o lasciano segreti hardcoded come password, chiavi API, chiavi di crittografia, chiavi SSH, token ecc. nelle immagini del contenitore, specialmente durante i cicli di sviluppo e distribuzione rapidi nella pipeline CI / CD. Inoltre, a volte gli utenti memorizzano le password in testo normale.

Deepfence SecretScanner aiuta gli utenti a scansionare le immagini del contenitore o le directory locali sugli host e genera un file JSON con i dettagli di tutti i segreti trovati.

Opzioni della riga di comando

$ ./SecretScanner --help

Usage of ./SecretScanner:
  -config-path string
    	Searches for config.yaml from given directory. If not set, tries to find it from SecretScanner binary's and current directory
  -debug-level string
    	Debug levels are one of FATAL, ERROR, IMPORTANT, WARN, INFO, DEBUG. Only levels higher than the debug-level are displayed (default "ERROR")
  -image-name string
    	Name of the image along with tag to scan for secrets
  -json-filename string
    	Output json file name. If not set, it will automatically create a filename based on image or dir name
  -local string
    	Specify local directory (absolute path) which to scan. Scans only given directory recursively.
  -max-multi-match uint
    	Maximum number of matches of same pattern in one file. This is used only when multi-match option is enabled. (default 3)
  -max-secrets uint
    	Maximum number of secrets to find in one container image or file system. (default 1000)
  -maximum-file-size uint
    	Maximum file size to process in KB (default 256)
  -multi-match
    	Output multiple matches of same pattern in one file. By default, only one match of a pattern is output for a file for better performance
  -output-path string
    	Output directory where json file will be stored. If not set, it will output to current directory
  -temp-directory string
    	Directory to process and store repositories/matches (default "/tmp")
  -threads int
    	Number of concurrent threads (default number of logical CPUs)

Prova rapidamente a utilizzare Docker

Installa Docker ed esegui SecretScanner su un’immagine contenitore utilizzando le seguenti istruzioni:

  • Costruisci SecretScanner:

docker build --rm=true --tag=deepfenceio/secretscanning:latest -f Dockerfile .

  • In alternativa, estrai l’ultima build dall’hub Docker eseguendo:

docker pull deepfenceio/secretscanning

  • Estrarre un’immagine del contenitore per la scansione:

docker pull node:8.11

  • Esegui SecretScanner:
    • Scansiona un’immagine contenitore:
      docker run -it --rm --name=deepfence-secretscanner -v $(pwd):/home/deepfence/output -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker deepfenceio/secretscanning -image-name node:8.11
      
    • Scansiona una directory locale:
      docker run -it --rm --name=deepfence-secretscanner -v $(pwd):/home/deepfence/output -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker deepfenceio/secretscanning -local /home/deepfence/src/SecretScanner/test
      

Per impostazione predefinita, SecretScanner creerà anche file json con i dettagli di tutti i segreti trovati nella directory di lavoro corrente. È possibile specificare esplicitamente la directory di output e il nome del file json utilizzando le opzioni appropriate.

Istruzioni per la costruzione

  1. Installa Docker
  2. Installa Hyperscan
  3. Installa go per la tua piattaforma (versione 1.14)
  4. Installare i moduli go, se necessario: gohsyaml.v3ecolor
  5. go get github.com/deepfence/SecretScannerscaricherà e creerà SecretScanner automaticamente nella directory $GOPATH/bin$HOME/go/bin. Oppure clonare questo repository ed eseguire go build -v -iper creare l’eseguibile nella directory corrente.
  6. Modificare il file config.yaml secondo necessità ed eseguire lo scanner segreto con la directory del file di configurazione appropriata.

Per riferimento, il file di installazione ha i comandi per costruire su un sistema Ubuntu.

Istruzioni per l’esecuzione su host locale

./SecretScanner --help

./SecretScanner -config-path /path/to/config.yaml/dir -local test

./SecretScanner -config-path /path/to/config.yaml/dir -image-name node:8.11

Output di SecretScanner di esempio

SampleJsonOutput

 

https://github.com/deepfence/SecretScanner

Twitter
Visit Us
LinkedIn
Share
YOUTUBE