
Scanner basato su regex per individuare credenziali hard-coded in codebase, progettato per integrazione CI/CD con supporto per commenti di soppressione e bassi tassi di falsi positivi.
Questo script è pensato per scansionare un codebase ampio e diversificato alla ricerca di credenziali hard-coded, o credenziali presenti nei file di configurazione. Queste rappresentano un serio problema di sicurezza e possono essere estremamente difficili da rilevare e gestire.
L'obiettivo specifico di questo script è creare uno strumento che possa essere utilizzato direttamente dai team di sviluppo in una pipeline CI/CD, per gestire il processo di correzione di questo problema, avvisando il team quando le credenziali sono presenti nel codice, in modo che il team possa risolvere immediatamente i problemi non appena si presentano.
È possibile applicare lo strumento come scanner puntuale per questo problema, ma – poiché è probabile che le credenziali si re-introducano nel codebase nel tempo – consigliamo vivamente l'integrazione dello script nel processo CI/CD, nel meccanismo di build automatizzato o in qualsiasi altro processo di scansione automatizzata regolarmente programmata che il team esegue.
Lo script è scritto con i seguenti obiettivi:
Lo script cerca di offrire una certa compatibilità con altri popolari strumenti SAST.
Il testo all'inizio o nelle vicinanze dell'inizio di un file # noqa file sopprime la segnalazione di qualsiasi ulteriore problema in quel file, così come il testo flake8: noqa.
Il testo su una singola riga # noqa sopprime la segnalazione di problemi su quella riga.
Molti altri commenti di soppressione comuni funzioneranno anche; l'elenco attuale è:
# noinspection
# noqa
#noqa
@SuppressWarnings
DevSkim
NOLINT
NOSONAR
checkmarx
coverity
fortify
noinspection
nosec
safesql
veracode
Raccomandiamo anche l'uso del commento # noqa cred, per chiarire ai membri del team che è specificamente la presenza di una credenziale la ragione del falso positivo. Molti degli strumenti qui menzionati (es. devskim) fanno uso di codici di errore specifici relativi agli strumenti della piattaforma o del linguaggio in uso, che servono allo stesso scopo. È possibile che sulla stessa riga di codice ci siano più errori di tipo diverso.
Avvertiamo che è una pessima pratica sopprimere un avviso da uno strumento SAST che è un vero positivo. È buona pratica rivedere periodicamente i commenti di soppressione SAST/lint in un codebase per assicurarsi che nessun "vero positivo" sia stato soppresso.
Il flag da riga di comando -nosuppress fa sì che lo script ignori tutti i commenti di soppressione.