IBM Cloud Docs
Configuración de exploraciones de detecto-secretos

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:

  1. Instale detect-secrets en el sistema local:

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

  2. Ejecute los mandatos siguientes para explorar, generar o actualizar el archivo de línea base en el repositorio:

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

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

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

Tabla 1. Secretos-parámetros de exploración
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.