Tengo algunos problemas para entender cómo activar la detección de secretos en Gitlab CI/CD. Creé un nuevo NodeJS Express a partir de una plantilla y luego activé los devops automáticos desde Configuración > CI/CD y marqué la casilla de verificación Predeterminado para canalización de Devops automáticos en el Menú de Devops automáticos. Después de eso, abrí el archivo app.js en la carpeta del proyecto e inserté una variable que parece un valor clave. Aquí está la pieza de código donde inserté la línea:
... var app = express(); var key = "api-12321321321321321"; // view engine setup app.set('views', path.join(__dirname, 'views')); ...
Después de confirmar los cambios, esperaba que la canalización fallara debido a la filtración del secreto. Aquí hay una imagen que muestra que se aprobó la decisión secreta.
¿Alguien puede decirme cómo hacer para que la tubería informe el error?
Este comportamiento también me confundió cuando lo probé por primera vez.
Sin embargo, parece que GitLab hizo esto a propósito. Esto es lo que dice la documentación oficial :
Entonces, con una cuenta gratuita o premium, puede usar este reportero, pero no verá ningún resultado, a menos que descargue el reporte JSON.
Además, NO se menciona que el trabajo fallará. Esta es solo nuestra expectativa.
En otras palabras, si tiene una cuenta gratuita/premium, esta característica es casi inútil, ya que nadie irá al trabajo y lo inspeccionará manualmente.
La única solución sería anular el trabajo secret_detection
, analizar gl-secret-detection-report.json, verificar si pasó o falló y decidir PASAR o FALLAR el TRABAJO.
Esto debería ser más fácil con GitLab 13.12 (mayo de 2021):
Herramienta de configuración para la detección de secretos
Siguiendo los pasos de la herramienta de configuración GitLab SAST, estamos agregando soporte para la detección de secretos en la página de configuración de seguridad.
Creemos que la seguridad es un esfuerzo de equipo y esta experiencia de configuración hace que sea más fácil para los que no son expertos en CI comenzar con GitLab Secret Detection .La herramienta ayuda a un usuario a crear una solicitud de combinación para habilitar el análisis de detección de secretos mientras aprovecha las mejores prácticas de configuración, como el uso de la plantilla
SAST.gitlab-ci.yml
administrada por GitLab.
La herramienta de configuración puede crear un nuevo archivo.gitlab-ci.yml
si no existe uno o actualizar los archivos simples existentes de GitLab CI, lo que permite que la herramienta se use con proyectos que ya tienen la configuración de GitLab CI.Ver Documentación y Epic .
Ver GitLab 14.5 (noviembre de 2021)
Compatibilidad adicional con patrones de detección de secretos
Hemos actualizado el escáner de detección de secretos de GitLab para detectar 47 nuevos patrones secretos 'bien identificables' para aplicaciones ampliamente utilizadas. Esto lleva la detección de detección de secretos de GitLab a más de 90 patrones detectables.
Si es un proveedor de aplicaciones SaaS y su aplicación genera tokens secretos con patrones bien identificables, y desea que GitLab pueda detectarlos, agregue su patrón de expresión regular y algunos tokens de muestra no válidos en un comentario sobre este problema y los agregaremos a GitLab Secret Detection.
Consulte Documentación y emisión .
GitLab tiene una publicación completa sobre cómo configurar esto en una canalización: https://docs.gitlab.com/ee/user/application_security/secret_detection/
EDITAR:
Las instrucciones dadas son un poco confusas:
Debe agregar la etiqueta de include
en el "nivel raíz" de su configuración.
Ejemplo
stages: - build - test image: node:latest build: stage: build script: - echo "Building" - npm install typescript - yarn run build test: stage: test script: - echo "Testing" include: - template: Security/Secret-Detection.gitlab-ci.yml
La detección secreta se ejecutará en la etapa de prueba: Pipeline