Integración de la CLI de Defender for Cloud con canalizaciones de CI/CD
Defender for Cloud Command Line Interface (CLI) es una aplicación que puede usar en canalizaciones de integración continua e implementación continua (CI/CD). Ejecuta herramientas de análisis estáticos y conecta código a servicios en la nube. Puede usar la CLI de Defender for Cloud en cualquier proceso de compilación para examinar imágenes de vulnerabilidades de seguridad con escáneres de seguridad integrados. Envía los resultados del examen al portal de Defender for Cloud. Después, Cloud Security Explorer puede acceder a la imagen de contenedor y sus vulnerabilidades.
Requisitos previos
Una suscripción de Azure con Defender for Cloud incorporado. Si aún no tiene una cuenta de Azure, cree una de forma gratuita.
Una de las siguientes herramientas de canalización de CI/CD: Jenkins, BitBucket Pipelines, Google Cloud Build, Bamboo, CircleCI, Travis CI, TeamCity, Oracle DevOps services, AWS CodeBuild
En Azure DevOps, extensión de Microsoft Security DevOps (MSDO) instalada en la organización de Azure DevOps.
El Defender CSPMestá habilitado.
Permiso de administrador de seguridad para crear el identificador de cliente y el secreto.
Configurar
En las secciones siguientes, se explica cómo recuperar el identificador de cliente y los secretos, actualizar el script de canalización de CI/CD y agregar variables de entorno a la canalización de CI/CD.
Recuperación del token de API
Para permitir que los datos de seguridad de la CLI de Defender for Cloud se pasen al back-end de Defender for Cloud, el administrador de seguridad de Defender for Cloud debe generar primero una clave de API desde Defender for Cloud para la autenticación.
Cuando se generan tokens, el administrador de seguridad selecciona un ámbito de suscripción que se va a asociar al token. Los datos que se insertan en Defender for Cloud desde este token se limitan a la suscripción a la que está asociado el token. Estos tokens de API son inmutables y solo se pueden generar o eliminar.
Desde allí, el administrador de seguridad debe pasar de forma segura el token a los desarrolladores que se van a agregar a la canalización de CI/CD.
Inicie sesión en Azure Portal.
Vaya a Microsoft Defender for Cloud>Administración>Configuración del entorno >Integraciones.
Seleccione Agregar integración y, a continuación, seleccione Ingesta de DevOps.
Escriba un nombre descriptivo para el token; el inquilino seleccionado almacena la información del token. El secreto de cliente se genera al introducir una descripción para el secreto y la fecha de caducidad.
Habilite el token en configuración y cree los tokens.
Copie cada token. No se pueden editar ni recuperar después de seleccionar Aceptar.
En la tabla Integraciones, se muestra la nueva ingesta.
Actualización del script de canalización de CI/CD
Cada herramienta de canalización de CI/CD tiene una sintaxis diferente. Este código es un ejemplo de una canalización de Bitbucket:
image: atlassian/default-image:3
pipelines:
default:
- parallel:
- step:
name: 'MSDO trivy test'
script:
- curl -L -o ./msdo_linux.zip https://www.nuget.org/api/v2/package/Microsoft.Security.DevOps.Cli.linux-x64/
- unzip ./msdo_linux.zip
- chmod +x tools/guardian
- chmod +x tools/Microsoft.Guardian.Cli
- ls -lah .
- tools/guardian init --force
- tools/guardian run -t trivy --export-file ./ubuntu-test.sarif --publish-file-folder-path ./ubuntu-test.sarif
Variables de canalización
Después de recibir los tokens de forma segura, el desarrollador debe configurar una variable de entorno para la clave. La variable de entorno se pasa a la CLI a través del script de shell que el desarrollador puede recibir de curl o copiar manualmente el script de shell en su repositorio.
NOMBRE | Valor |
---|---|
GDN_PUSH_TOKEN_CLIENT_ID | <Id. de cliente> |
GDN_PUSH_TOKEN_CLIENT_ID | <Id. de cliente> |
GDN_PUSH_TOKEN_CLIENT_SECRET | <Secreto de cliente> |
GDN_PIPELINENAME | bitbucket, jenkins, gcp, bamboo, circle, travis, teamcity, oci, aws |
GDN_PUSH_TOKEN_TENANT_ID | <identificador del inquilino> |
Revisión de los resultados en Cloud Security Explorer
Después de ejecutar correctamente la canalización, vaya de nuevo a Microsoft Defender for Cloud.
En el menú de Defender for Cloud, seleccione Cloud Security Explorer.
Seleccione lista desplegable Seleccionar tipos de recursos, seleccione DevOpsy, a continuación, seleccione Listo.
Seleccione el + icono para agregar un nuevo criterio de búsqueda.
Elija la lista desplegable Seleccionar condición. A continuación, seleccione Datos y, a continuación, seleccione Inserciones.
Elija la lista desplegable Seleccionar tipos de recursos. A continuación, seleccione Contenedores, luego Imágenes de contenedor y, a continuación, seleccione Listo .
Seleccione el ámbito seleccionado durante la creación de la integración en Configuración del entorno.
Selecciona Search.
Consulte los resultados de la canalización a la asignación de imágenes.
Correlación con contenedores supervisados
En Cloud Security Explorer, escriba la siguiente consulta: Canalización de CI/CD:>Canalización + Imágenes de contenedor:>Contenido en + Registros de contenedores (grupo).
Revise los Nombres de recursos para ver la asignación de contenedores.