Configuración de exploraciones de detecto-secretos
Detect-secrets es una herramienta de seguridad del lado del cliente que detecta secretos dentro de una base de códigos para remediar y evitar fugas de secretos.
Para obtener más información, consulte IBM/detect-secrets.
Detect-secrets explora toda la base de código actual y genera una instantánea de los secretos identificados actualmente. A continuación, la lista de secretos se utiliza para auditar los secretos identificados como verdaderos positivos o falsos positivos, las cadenas de herramientas de DevSecOps y, a continuación, crear problemas de Git para los verdaderos positivos.
Utilización del archivo de línea base
Un archivo de línea base es la instantánea de una exploración secreta de detección. El archivo lista secretos potenciales en cada ejecución y marca falsos positivos, que no se marcan como problemas en ejecuciones posteriores.
El archivo de línea base debe actualizarse periódicamente. Actualice y audite el archivo de línea base comprometiéndolo y devolvéndolo al repositorio. La inclusión de estos falsos positivos en la línea base garantiza que no se creen problemas para estos archivos existentes durante futuros escaneos.
Clasificación de secretos
Cuando se completa una exploración de detecto-secretos, los secretos detectados todavía no se han clasificado como positivos reales o falsos positivos.
Tres condiciones clasifican un secreto detectado potencialmente:
- No auditado-Un secreto se categoriza como no auditado si es un secreto potencial que debe revisarse en el proceso de auditoría.
- Auditado como real-Un secreto se categoriza como auditado como real si se marca como un verdadero positivo durante una auditoría y el archivo de línea base todavía contiene el secreto.
- Activo-Un secreto se clasifica como activo si el secreto se confirma como un secreto activo por los plugins utilizados por detect-secrets.
Gestión de la línea base
Los mandatos siguientes gestionan la línea base de secretos:
- El mandato
detect-secrets scan
genera un archivo de línea base o actualiza el archivo existente para que contenga una instantánea de todos los secretos potenciales detectados de la ejecución. - El mandato
detect-secrets audit
etiqueta secretos para que pueda acotar la lista de comprobación de secretos a migrar.
Las auditorías identifican los secretos detectados como verdaderos o falsos positivos; a continuación, puede actualizar el archivo de línea base para que los falsos positivos se puedan excluir de las futuras ejecuciones de exploración.
Actualización de la línea base
Realice los pasos siguientes para actualizar la línea base:
-
Instale detect-secrets en el sistema local:
pip install --upgrade "git+https://github.com/ibm/detect-secrets.git@master#egg=detect-secrets"
-
Ejecute los mandatos siguientes para explorar, generar o actualizar el archivo de línea base en el repositorio:
-
Ejecute el mandato siguiente para explorar la carpeta de repositorio:
detect-secrets scan --update .secrets.baseline
Puede utilizar el distintivo
--exclude-files
cuando desee ignorar determinados archivos que se sabe que contienen falsos positivos o que no requieren exploración. Las reglas de exclusión se basan en el formato de expresiones regulares.Para realizar una exploración con exclusiones de archivo y carpeta, utilice el mandato siguiente:
detect-secrets scan --update .secrets.baseline --exclude-files '<folder_to_ignore>|<file_to_ignore>'
Ejemplo:
detect-secrets scan --update .secrets.baseline --exclude-files "package-lock.json|go.sum"
La lista de archivos excluidos se registra en el archivo de línea base.
Si no se proporciona ninguna opción
--exclude-files
en exploraciones posteriores, detectar secretos respeta automáticamente la lista de exclusión existente del archivo de línea base.Sin embargo, si desea especificar una nueva lista de exclusión durante la
detect-secrets scan
, la nueva lista sobrescribe la lista de exclusión existente en el archivo de línea base. -
Ejecute el mandato siguiente para revisar y auditar el archivo de línea base que se crea con el paso de exploración:
detect-secrets audit .secrets.baseline
Este mandato activa un terminal interactivo para marcar falsos positivos. Puede indicar (y) es si el secreto encontrado es un secreto real o (n) o si es un falso positivo.
-
Confirme y devuelva el archivo
.secrets.baseline
al repositorio, su proceso debe realizarse localmente de forma periódica.
-
Parámetros de exploración de Detect-secrets
Si tiene un archivo de línea base existente, el escaneo utiliza la configuración existente. Los resultados y valores de auditoría anteriores no se sobrescriben. Si no existe ningún archivo de línea base, se crea automáticamente una línea base temporal para la ejecución.
El parámetro detect-secrets-baseline-filename
especifica un nombre de archivo personalizado para el archivo de línea base que utiliza detect-secrets. De forma predeterminada, detect-secrets busca un archivo denominado .secrets.baseline
en el directorio raíz del repositorio. Sin embargo, si nombra el archivo de línea base de forma diferente, puede proporcionar su nombre de archivo utilizando este parámetro.
El parámetro detect-secrets-exclusion-list
altera temporalmente la lista de exclusión predeterminada cuando se realiza una ejecución sin un archivo de línea base existente. Este parámetro identifica los archivos que se deben ignorar
para que no se creen problemas que estén enlazados a ellos.
El parámetro detect-secrets-image
se puede utilizar para especificar una imagen de detecto-secretos diferente a utilizar, como una imagen personalizada o una versión específica de la imagen oficial de detecto-secretos.
El parámetro detect-secrets-verbose
, cuando se establece en 1, registra el nombre del archivo actual que se está explorando.
Nombre | Tipo | Descripción | Obligatoria u opcional |
---|---|---|---|
detect-secrets-baseline-filename |
Serie | El nombre del archivo de línea base en el repositorio de apps. El valor predeterminado es .secrets.baseline . |
Necesario si el archivo de línea base no es el nombre predeterminado .secrets.baseline . |
detect-secrets-exclusion-list |
Serie | Una lista de expresiones regulares de los archivos que se van a excluir en la exploración de detecto-secretos. El valor predeterminado es requirements.txt|go.mod|go.sum|pom.xml|build.gradle|package-lock.json . |
Opcional, esta lista de archivos altera temporalmente la lista de exclusión general sólo cuando no hay ningún archivo .secrets.baseline presente. |
detect-secrets-image |
Serie | Especifica una imagen de secretos de detección alternativa, incluidas imágenes personalizadas o versiones específicas de la imagen oficial. | Opcional |
detect-secrets-verbose |
Serie | Genera el nombre del archivo que se está explorando actualmente. El valor predeterminado es 0 . |
Opcional, distintivo de depuración 0-off, 1-on. |