Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Esta guía le guía por todos los pasos de configuración para ayudarle a sacar el máximo partido de la seguridad de aplicaciones nativas de la nube de Microsoft mediante la integración de GitHub Advanced Security (GHAS) y Microsoft Defender for Cloud (MDC).
Siguiendo esta guía, podrá:
- Configuración del repositorio de GitHub para la cobertura de Microsoft Defender for Cloud (MDC)
- Creación de un factor de riesgo en tiempo de ejecución
- Prueba de casos de uso reales en MDC
- Vinculación de código a recursos en la nube
- Inicie una campaña de seguridad en GitHub, aprovechando el contexto en tiempo de ejecución para priorizar las alertas de seguridad de GHAS en función del contexto en tiempo de ejecución.
- Crear incidencias de GitHub desde MDC para iniciar la solución
- Cierre el bucle entre los equipos de ingeniería y seguridad
Prerrequisitos
| Aspecto | Detalles |
|---|---|
| Requisitos del entorno | - Cuenta de GitHub con un conector creado en Microsoft Defender for Cloud (MDC) - Licencia de Seguridad avanzada de GitHub (GHAS) - CSPM de Defender habilitado en la suscripción - GitHub Security Copilot (opcional para la corrección automatizada) |
| Roles y permisos | - Permisos de administrador de seguridad - Lector de seguridad en la suscripción de Azure (para ver los resultados en MDC) - Propietario de la organización de GitHub |
| Entornos en la nube | - Disponible solo en nubes comerciales (no en US Gov, China Gov u otras nubes soberanas) |
Preparación del entorno
Paso 1: Configuración del repositorio de GitHub y ejecución del flujo de trabajo
Para probar la integración, use sus propios repositorios o un repositorio de GitHub de ejemplo que ya tenga todo el contenido para compilar una imagen de contenedor vulnerable.
Asegúrese de definir un conector para la organización de GitHub que planea usar en el portal de Microsoft Defender for Cloud. Para la definición del conector, siga los pasos descritos en Conexión de las organizaciones de GitHub.
Asegúrese de que tiene el análisis de código sin agente configurado para el conector de GitHub. Si no es así, siga los pasos descritos en: Configuración del examen de código sin agente (versión preliminar).
Nota:
Asegúrese de que el repositorio que usa para la integración es privado.
Si desea usar un repositorio de ejemplo, clone el siguiente repositorio en su organización de GitHub. Este repositorio tiene GHAS habilitado y se incorpora a un inquilino de Azure con DCSPM habilitado:build25-woodgrove/mdc-customer-playbook. Este repositorio es para que los clientes prueben la integración de Microsoft Defender for Cloud y GHAS.
En el repositorio, siga estos pasos:
- Vaya a Configuración.
- En el panel izquierdo, seleccione Secretos y Variables>Acciones.
- Agregue los siguientes secretos en el nivel de repositorio o organización:
| Variable | Description |
|---|---|
| ACR_ENDPOINT | Servidor de inicio de sesión de Azure Container Registry |
| ACR_PASSWORD | Contraseña de Azure Container Registry |
| ACR_USERNAME | Nombre de usuario de Azure Container Registry |
Nota:
Los nombres se pueden elegir libremente y no es necesario seguir un patrón específico.
Puede encontrar esta información en Azure Portal siguiendo estos pasos:
Seleccione el ACR en el que desea realizar la implementación.
Seleccione Claves de acceso en Configuración.
En el repositorio, seleccione Acciones.
Seleccione el flujo de trabajo Build and Push to ACR (Compilar y subir a ACR) y ejecute el flujo de trabajo.
Compruebe que la imagen se implementó en Azure Container Registry.
Para el repositorio de ejemplo proporcionado: la imagen debe estar en un registro denominado mdc-mock-0001 con la etiqueta mdc-ghas-integration.
Despliegue la misma imagen como un contenedor en funcionamiento en su clúster. Una manera de completar este paso es conectarse al clúster y usar el
kubectl runcomando . Este es un ejemplo de AKS:Establezca la suscripción del clúster:
az account set --subscription $subscriptionIDEstablezca las credenciales del clúster:
az aks get-credentials --resource-group $resourceGroupName --name $kubernetesClusterName --overwrite-existingImplemente la imagen:
kubectl run $containerName --image=$registryName.azurecr.io/mdc-mock-0001:mdc-ghas-integration
Paso 2: Creación del primer factor de riesgo: regla crítica para la empresa
Uno de los factores de riesgo que Defender for Cloud detecta para esta integración es la importancia empresarial. Las organizaciones pueden crear reglas para etiquetar distintos recursos como críticos para la empresa.
En El portal de Microsoft Defender for Cloud (Azure Portal), vaya a Configuración del entorno y elija Importancia del recurso.
En el panel derecho, seleccione el vínculo para abrir Microsoft Defender.
Seleccione Crear una nueva clasificación.
Escriba un nombre y una descripción.
Elija Recurso en la nube en el generador de consultas.
Escriba una consulta para establecer Nombre de recurso igual al nombre del contenedor que implementó en el clúster para su validación y seleccione Siguiente.
En la página Recursos de vista previa , si Microsoft Defender ya detectó el recurso, el nombre del contenedor se muestra con el tipo de recurso que es K8s-container o K8s-pod. Incluso si aún no está visible en la página de recursos de vista previa, continúe con el paso siguiente. Microsoft Defender aplica la etiqueta de importancia crítica al contenedor una vez detectado. Este proceso puede tardar hasta 24 horas.
Elija un nivel de importancia crítica y revise y envíe la regla de clasificación.
Paso 3: Validar que el entorno está listo
Nota:
Después de aplicar los pasos anteriores, pueden pasar hasta 24 horas para ver los siguientes resultados.
Pruebe que el examen sin agente de GitHub recoge el repositorio.
Compruebe que el MDC (en ACR) ha examinado la imagen de contenedor y la ha usado para crear un contenedor. En tu consulta, añade las condiciones para tu implementación específica.
Verifique que el contenedor se está ejecutando y que MDC examinó el clúster de AKS.
Compruebe que los factores de riesgo están configurados correctamente en MDC. Busque el nombre del contenedor en la página de inventario de MDC y debería verlo marcado como crítico.
Paso 4: Crear una campaña de GitHub
Dado que el flujo de trabajo implementa una imagen que crea un contenedor en ejecución con uno de los factores de riesgo (crítico para la empresa), los desarrolladores pueden ver factores de riesgo en GitHub.
Nota:
Después de clasificar el recurso como crítico, el MDC puede tardar hasta 12 horas en enviar los datos a GitHub. Obtenga más información aquí.
En GitHub, vaya a la organización de GitHub que usó para las pruebas de configuración.
SeleccioneSeguridad>Campañas>Crear una campaña a partir de filtros de análisis de código.
Cree la siguiente campaña. Esta campaña muestra alertas abiertas con gravedad media en la que la imagen implementada desde el repositorio está vinculada a un recurso crítico. El repositorio de pruebas debería ser detectado con esta campaña.
Seleccione Guardar y, a continuación, Publicar como campaña.
Escriba la información necesaria y, a continuación, publique la campaña.
Paso 5: Evaluar las recomendaciones de código a la nube
Use la experiencia de SDLC de recomendación de C2C y el enriquecimiento de alertas de seguridad para comprender el estado de los problemas de seguridad y asignar la recomendación para la resolución al equipo de ingeniería pertinente con la ayuda de la conexión entre las alertas de seguridad de Dependabot y las CVE coincidentes en la pestaña CVE asociado de la recomendación de tiempo de ejecución.
Ver las recomendaciones de C2C
- En el portal de MDC, vaya a la pestaña Recomendaciones .
- Busque el nombre del contenedor que creó y abra una de las recomendaciones que dice **Actualizar ***.
- Si usó el repositorio de ejemplo, busque: Actualización de la recomendación sobre expansión de llaves.
- Vaya a la pestaña Información de corrección y vea el código en el diagrama de nube.
- El diagrama mapea el contenedor en ejecución actualmente, la imagen del contenedor en el repositorio de código, y el repositorio de código de origen en GitHub.
Enriquecimiento bidireccional
Seleccione la pestaña CVEs asociados . Observe que algunos CVE tienen un vínculo en la columna Alertas de GitHub relacionadas.
Seleccione el vínculo Ver en GitHub para abrir la alerta de seguridad de GHAS correspondiente.
Movilización de ingeniería
Para cerrar el bucle entre los equipos de seguridad e ingeniería, puede crear un problema de GitHub para una aplicación en contenedor que priorice para el equipo de ingeniería los problemas de seguridad en los que deben centrarse. Esta priorización puede incluir el paso de los resultados que GHAS no ha recogido, pero que MDC detectó para los CVE que no forman parte de las dependencias directas (por ejemplo, vulnerabilidades en la imagen base, sistema operativo o software de terceros como NGINX).
El problema de GitHub se genera automáticamente con todos los CVE encontrados en el ámbito de la recomendación, incluyendo aquellos con y sin alertas de Dependabot, coincidiendo con otros contextos de tiempo de ejecución en el repositorio de origen.
Al asignar el problema, el estado del problema se actualiza en el portal de MDC.
Correcciones agentivas
En el lado de GitHub, si tiene una licencia de GitHub Copilot, puede resolver el problema con la ayuda del Agente de codificación de GitHub:
- Asigne el agente de codificación de GitHub al problema.
- Revise la corrección generada.
- Si parece razonable, aplique la corrección.
- Observe la actualización del estado del problema en MDC en Cerrado.