Configuración de la integración nativa de GitHub Seguridad Avanzada con Microsoft Defender para la nube

En esta guía se proporcionan pasos de configuración y otras acciones que le ayudarán a integrar GitHub Advanced Security (GHAS) y Microsoft Defender para la nube con un caso de uso que le ayude a validar la integración de un extremo a otro. Esta integración ayuda a maximizar la seguridad de las aplicaciones nativas de la nube de Microsoft al correlacionar los riesgos y el contexto en tiempo de ejecución con el código originado para una corrección más rápida con tecnología de inteligencia artificial.

Siguiendo esta guía, podrá:

  • Configure el repositorio de GitHub para la cobertura de Defender for Cloud.
  • Cree un factor de riesgo en tiempo de ejecución.
  • Pruebe casos de uso reales en Defender for Cloud.
  • Vincule el código a los recursos en tiempo de ejecución.
  • Inicie una campaña de seguridad en GitHub. Esta campaña usa el contexto en tiempo de ejecución para priorizar las alertas de seguridad de GHAS.
  • Cree incidencias de GitHub desde Defender for Cloud para comenzar el proceso de remediació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 Defender for Cloud
- Licencia de GitHub Advanced Security (GHAS) en repositorios conectados
- Plan de Defender Cloud Security Posture Management (DCSPM) habilitado en la suscripción.
- Microsoft Security Copilot (opcional para la corrección automatizada con tecnología de IA)
Roles y permisos - Permisos de administrador de seguridad
- Administrador de seguridad en la suscripción de Azure (para ver los resultados en Defender for Cloud)
- Propietario de la organización de GitHub (para conectar repositorios y configurar campañas de seguridad)
Entornos en la nube - Disponible solo en nubes comerciales (no en Azure Government, Azure operado por 21Vianet 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 proyecto de espacio aislado example que tenga un repositorio de GitHub de prueba con todo el contenido para crear una imagen de contenedor vulnerable.

  1. Inicie sesión en Azure Portal.

  2. Vaya a Microsoft Defender para la nube>DevOps security.

  3. Escriba el nombre del repositorio de código en la barra de búsqueda (ejemplo: zava-webshop).

  4. Valide que realmente pertenece a la organización que está supervisando (ejemplo: zava-corporation org).

  5. Revise si hay algún resultado para el repositorio.

  6. Asegúrese de que Estado de seguridad avanzado está On, lo que indica que ha habilitado GitHub Advanced Security en el repositorio supervisado: > el repositorio incorporado.

  7. Si no se encuentra el repositorio, consulte la documentación de Microsoft Defender para la nube para la solución de problemas y el proceso de incorporación del conector de GitHub.

  8. Asegúrese de que el examen sin agente esté activado para el conector de GitHub.

    Captura de pantalla de la configuración del plan en Defender CSPM con el examen de código sin agente activado y todas las opciones del analizador habilitadas.

Paso 2: Validar que el entorno está listo

La validación confirma que el entorno está configurado correctamente para exponer el código en las recomendaciones en tiempo de ejecución y generar resultados accionables. Durante este paso, Defender comprueba que:

Código completo para la visibilidad en tiempo de ejecución

  • Microsoft Defender para la nube supervisa continuamente los repositorios de código fuente para detectar vulnerabilidades de seguridad.
  • Los artefactos de compilación, como las imágenes de contenedor, se escanean en registros de contenedores antes de la implementación.
  • Las cargas de trabajo en tiempo de ejecución implementadas en clústeres de Kubernetes se supervisan para detectar riesgos de seguridad.
  • Defender for Cloud correlaciona y realiza un seguimiento de cada artefacto desde el código, a través de la compilación y la implementación, al tiempo de ejecución y de vuelta.

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.

Vaya a Microsoft Defender para la nube>Cloud Security Explorer y realice la consulta. Las consultas de validación comprueban si Defender pueden identificar artefactos generados por las canalizaciones y las cargas de trabajo. Si las consultas devuelven resultados, indica que el examen y la correlación funcionan según lo previsto.

Captura de pantalla de Explorer de Seguridad en la Nube de Defender for Cloud mostrando una consulta sobre los envíos de repositorios de GitHub a imágenes de contenedor.

Nota:

Si no se devuelve ningún resultado, puede indicar que aún no se generan artefactos, el escaneo no está configurado o faltan permisos. Consulte Roles y permisos de usuario para obtener más información.

  1. Valide que Defender for Cloud (en Azure Container Registry) examine la imagen de contenedor y la use para crear un contenedor.

  2. En tu consulta, añade las condiciones para tu implementación específica.

    Captura de pantalla del Cloud Security Explorer de Defender for Cloud que muestra una consulta para empujes a imágenes de contenedor vulnerables desde un repositorio de GitHub.

  3. Compruebe que el contenedor se está ejecutando y que Defender for Cloud ha examinado el clúster de AKS.

    Captura de pantalla del Cloud Security Explorer de Defender for Cloud que muestra una consulta sobre empujes de GitHub a imágenes de contenedores con vulnerabilidades.

  4. Compruebe que los factores de riesgo están configurados correctamente en el lado de Defender for Cloud. Busque el nombre del contenedor en la página de inventario de Defender for Cloud y debería verlo marcado como crítico.

Nota:

Este paso solo es necesario si los factores de riesgo aún no están configurados en el entorno. Si ya usa factores de riesgo, puede comprobar su configuración en Configuración > Importancia del recurso.

La validación correcta garantiza que los pasos posteriores, como recomendaciones, campañas y GitHub generación de problemas, generen resultados significativos.

Nota:

Después de clasificar su recurso como crítico, Defender para la Nube puede tardar hasta 12 horas en enviar los datos a GitHub. Más información.

Paso 3: Crear una campaña de GitHub

Para crear una campaña de escaneo, debe trabajar en el nivel de organización de GitHub. Esta experiencia no está disponible en el nivel de repositorio individual.

  1. En GitHub, diríjase a la organización de GitHub que usó para las pruebas de instalación.

  2. SeleccioneSeguridad>Campañas>Crear campaña>desde filtros de análisis de código.

  3. Esta campaña ayuda a priorizar los hallazgos de GHAS que pertenecen al código que realmente se implementa y ejecuta.

  4. Seleccione los filtros de riesgos de tiempo de ejecución para la campaña.

    Captura de pantalla de la creación de campañas de escaneo de código en GitHub con una barra de filtro, un botón de filtro y un tooltip sobre el filtrado por metadatos de artefactos.

    Captura de pantalla del diálogo de filtros avanzados en la creación de campaña en GitHub con el filtro de riesgo en tiempo de ejecución y el menú de factores de riesgo seleccionables abierto.

  5. Seleccione Guardar>Publicar como campaña. Escriba la información necesaria y, a continuación, publique la campaña.

  6. Seguimiento del avance de la campaña. Captura de pantalla de la página de campaña de GitHub que muestra el estado de vencimiento, la barra de progreso de la campaña, la lista de alertas críticas y las opciones de filtro.

Paso 4: Movilización de recomendaciones

Utilice la funcionalidad de recomendaciones de contenedores VA desde el código al tiempo de ejecución y la correlación de las CVE identificadas con las alertas de seguridad de Dependabot para comprender el estado de los problemas de seguridad. Después, puede asignar la recomendación para la resolución al equipo de ingeniería pertinente en función del mapeo de código a tiempo de ejecución.

  1. En el portal de Defender for Cloud, vaya a la pestaña Recomendaciones .

  2. Busque el nombre del contenedor que creó a partir del repositorio de código.

  3. Abra una de las recomendaciones de actualización de software ; el nombre de la recomendación comienza con Update

  4. Seleccione la pestaña CVE asociadas Las alertas de seguridad aparecen como parte del flujo de evaluación de recomendaciones. Estas alertas proporcionan indicaciones sobre los hallazgos de seguridad avanzada de GitHub que ya son conocidos por el equipo de ingeniería. Tenga en cuenta que algunos identificadores CVE tienen un enlace Ver en GitHub en la columna de Alertas relacionadas de GitHub.

    Captura de pantalla de Defender for Cloud en la pestaña de hallazgos que muestra las alertas CVE-2024-21409, el estado de la corrección, las puntuaciones de CVSS y el detalle de alerta emergente de GitHub.

Seleccione el vínculo para abrir la alerta de seguridad de GHAS pertinente. (Para ver el contenido de la alerta GHAS en GitHub, debe tener permisos de acceso al repositorio de GitHub correspondiente. Si no tiene permisos de acceso, siempre puede copiar el vínculo para su uso posterior o ponerse en contacto con el administrador de GitHub).

Si hay una ampliación de alertas, hay una alerta de Dependabot correspondiente que ya es conocida por el equipo de ingeniería. Si el estado es Activo, nadie lo ha corregido aún y el problema debe priorizarse para una corrección.

Si no se encuentra ningún enriquecimiento, esto indica un riesgo en tiempo de ejecución desconocido para la ingeniería que debe priorizarse para una corrección.

¿Cuál es el siguiente paso? ¿Cómo sabría quién es el equipo adecuado para la solución? ¿Cómo sabría qué contexto podría ayudar a la ingeniería con la solución?

Creación de un problema de GitHub

Para cerrar el bucle entre los equipos de seguridad e ingeniería, puede crear un problema de GitHub que dé prioridad a los problemas de seguridad en los que el equipo de ingeniería debe centrarse. Esta priorización puede incluir el paso de hallazgos que GHAS no ha recogido, pero que Defender for Cloud detecta para identificadores CVE que no forman parte de las dependencias directas. Estos hallazgos pueden incluir vulnerabilidades en la imagen base, el sistema operativo o el software como NGINX.

El problema de GitHub se genera automáticamente en el repositorio de código de origen, con todos los identificadores CVE encontrados en el ámbito de la recomendación, incluidos otros contextos relacionados con el SDLC del contenedor y el tiempo de ejecución, que pueden ayudar a facilitar la corrección y las pruebas.

Desde la vista de recomendación, puede generar explícitamente un problema de GitHub para realizar un seguimiento del trabajo de corrección.

  1. Vaya a la pestaña Información de corrección y vea el diagrama de código a tiempo de ejecución. El diagrama asigna el contenedor en ejecución a la imagen de contenedor en el repositorio de código y al repositorio de código de origen en GitHub.

    Captura de pantalla de Remediation Insights que muestra el diagrama de código a ejecución con niveles de riesgo y el menú Realizar acción abierto en el cuadro de Ejecución.

    1. En la pestaña Información de Remediación, revise el cuadro Tiempo de ejecución afectado.

    2. Validate si ya existe un problema de GitHub. Si ya existe un problema de GitHub, se muestra un icono de GitHub en el cuadro. Mantenga el puntero sobre el icono para ver los detalles del problema.

    3. Si no existe ningún problema y tiene los permisos necesarios, puede generar un nuevo problema de GitHub. Seleccione Realizar acción.

    4. Seleccione la opción Generar issue de GitHub en el menú emergente.

    5. Si el problema se creó correctamente, verá una notificación emergente con un vínculo al problema. El problema se crea en el repositorio de código de origen.

      Captura de pantalla de la lista de problemas de GitHub que muestra problemas abiertos para las dependencias con etiquetas como Defender for Cloud y seguridad.

    Nota:

    Si la opción de generar un problema Generate GitHub no está disponible, es posible que falten los permisos necesarios en GitHub o en el repositorio. Póngase en contacto con el administrador de GitHub o del repositorio para solicitar acceso.

    Captura de pantalla de lista de problemas de GitHub que muestra incidencias abiertas para las dependencias con etiquetas como Defender for Cloud y seguridad.

    1. Track actualizaciones de propiedad y estado: los cambios realizados en el estado o la asignación en GitHub se reflejan en Microsoft Defender para la nube, lo que le permite realizar un seguimiento del progreso de propiedad y remediación desde la vista de Recommendations.

      Captura de pantalla de la página de Recomendaciones de Microsoft Defender para la nube que muestra problemas de alto riesgo con detalles del problema en un popup emergente de GitHub.

Realizar correcciones de agencia

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:

  1. Asigne un agente de codificación de GitHub al problema.
  2. Revise la corrección generada.
  3. Si la corrección parece razonable, aplíquela.
  4. Observe que Defender for Cloud actualiza el estado del problema a Cerrado.