Compartir a través de


Configuración del análisis de código sin agente (versión preliminar)

El análisis de código sin agente en Microsoft Defender for Cloud ofrece cobertura de seguridad rápida y escalable para todos los repositorios de Azure DevOps y GitHub. El análisis de código sin agente examina automáticamente el código y la infraestructura como código (IaC) para identificar vulnerabilidades y configuraciones incorrectas sin necesidad de realizar ningún cambio en las canalizaciones de compilación o implementación. Este enfoque simplifica la configuración y el mantenimiento con un único conector de Azure DevOps o GitHub y proporciona una amplia cobertura, información continua y resultados de seguridad accionables. Permite a los equipos de seguridad y desarrollo centrarse en corregir los riesgos sin problemas sin interrumpir los flujos de trabajo de desarrollo.

Puede personalizar qué escáneres se van a ejecutar y definir exactamente qué organizaciones, proyectos o repositorios deben incluir o excluir del examen.

Requisitos previos

Roles y permisos:

  • Para configurar y configurar el conector:

    • Administrador de la colección de proyectos: necesario en Azure DevOps para realizar la configuración inicial.
    • Colaborador de la suscripción: se necesita en la suscripción de Azure para crear y configurar el conector.
  • Para ver los resultados de seguridad:

    • Administrador de seguridad: puede administrar la configuración de seguridad, las directivas y las alertas, pero no puede modificar el conector.
    • Lector de seguridad: puede ver recomendaciones, alertas y directivas, pero no puede realizar ningún cambio.

Ventajas principales

Algunas de las principales ventajas del examen de código sin agente en Microsoft Defender for Cloud son:

  • Administración proactiva de riesgos: identifique los riesgos al principio del proceso de desarrollo. Esto permite prácticas de codificación seguras y reduce las vulnerabilidades antes de llegar a producción. 
  • Incorporación sin esfuerzo: configúrelo rápidamente con una configuración mínima y sin cambios en el flujo de trabajo. 
  • Administración centralizada y a escala empresarial: examine automáticamente el código en varios repositorios mediante un único conector. Esto ofrece una amplia cobertura para entornos grandes. 
  • Información rápida para la corrección rápida: reciba información sobre vulnerabilidades accionable justo después de la incorporación. Esto permite correcciones rápidas y reduce el tiempo de exposición. 
  • Fácil de usar y sin problemas para el desarrollador: funcione independientemente de las canalizaciones de integración continua e implementación continua (CI/CD), sin necesidad de cambios ni participación directa del desarrollador. Esto permite la supervisión continua de la seguridad sin interrumpir la productividad o los flujos de trabajo del desarrollador.
  • Cobertura y control flexibles: Elija qué escáneres se ejecutan y qué se examina. Puede cubrir todo de forma predeterminada o personalizar la configuración para incluir o excluir organizaciones, proyectos o repositorios específicos. Esto le permite hacer coincidir la cobertura de seguridad con el perfil de riesgo y las necesidades operativas, sin complejidad adicional.

Funcionalidades de detección de riesgos

El análisis de código sin agente mejora la seguridad al ofrecer recomendaciones de seguridad específicas tanto para el código como para las plantillas de infraestructura como código (IaC). Esto se suma a las recomendaciones de seguridad básicas de la administración de la posición de seguridad en la nube proporcionadas a través del conector. Entre las funcionalidades de detección de claves se incluyen:

La creación del conector mejora la seguridad al proporcionar recomendaciones fundamentales de administración de la posición de seguridad en la nube para repositorios, canalizaciones y conexiones de servicio.

Herramientas de examen

El análisis de código sin agente usa varias herramientas de código abierto para buscar vulnerabilidades y configuraciones incorrectas en las plantillas de código e infraestructura como código (IaC):

Herramienta IaC/idiomas admitidos Licencia
Bandido Pitón Apache 2.0
Checkov Plantillas de Terraform IaC, archivos de plan de Terraform, plantillas de AWS CloudFormation, archivos de manifiesto de Kubernetes, archivos de gráfico de Helm, Dockerfiles, plantillas de IaC de Azure Resource Manager (ARM), plantillas de IaC de Azure Bicep, plantillas de AWS SAM (modelo de aplicaciones sin servidor), archivos Kustomize, plantillas de marco sin servidor, archivos de especificación de OpenAPI Apache 2.0
ESLint JavaScript, TypeScript, JSX, TSX MIT
Analizador de plantillas Plantillas de IaC de ARM, plantillas de Bicep IaC MIT

Estas herramientas admiten una amplia gama de lenguajes y marcos de infraestructura como código (IaC), lo que garantiza un análisis exhaustivo de seguridad en el código base.

Sistemas admitidos y tipos de archivo

Sistemas de control de versiones

  • Azure DevOps: compatibilidad completa con repositorios conectados a través del conector de Azure DevOps.

  • GitHub: compatibilidad completa con repositorios conectados a través del conector de GitHub.

Lenguajes de programación

  • Pitón
  • JavaScript/TypeScript

Plataformas y configuraciones de infraestructura como código (IaC)

Plataforma IaC Tipos de archivo admitidos Notas
Terraform .tf, .tfvars Admite plantillas de IaC de Terraform en el lenguaje HCL2, incluidos los archivos de variables en .tfvars.
Plan de Terraform Archivos JSON Incluye archivos JSON que representan configuraciones planeadas, que se usan para el análisis y el examen.
AWS CloudFormation Archivos JSON y YAML Admite plantillas de AWS CloudFormation para definir recursos de AWS.
Kubernetes archivos YAML, JSON Admite archivos de manifiesto de Kubernetes para definir configuraciones en clústeres.
Helm Estructura de directorios del gráfico de Helm, archivos YAML Sigue la estructura de gráficos estándar de Helm; admite archivos de gráfico de Helm v3.
Docker Archivos denominados Dockerfile Admite Dockerfiles para configuraciones de contenedor.
Plantillas de Azure ARM Archivos JSON Admite plantillas de IaC de Azure Resource Manager (ARM) en formato JSON.
Azure Bicep archivos .bicep Admite plantillas de IaC de Bicep, un lenguaje específico del dominio (DSL) para ARM.
AWS SAM Archivos YAML Admite plantillas de modelo de aplicaciones sin servidor (SAM) de AWS para recursos sin servidor.
Kustomize Archivos YAML Admite archivos de configuración para la personalización de Kubernetes (Kustomize).
Marco sin servidor Archivos YAML Admite plantillas para el marco sin servidor en la definición de arquitecturas sin servidor.
OpenAPI archivos YAML, JSON Admite archivos de especificación de OpenAPI para definir LAS API DE RESTful.

Habilitación del análisis de código sin agente en las organizaciones de Azure DevOps y GitHub

Puede conectar organizaciones de Azure DevOps y GitHub a Defender for Cloud para habilitar el examen de código sin agente. Siga los pasos descritos en Conexión de las organizaciones de Azure DevOps o Conexión de las organizaciones de GitHub para empezar.

Imagen GIF que muestra el proceso de configuración para habilitar el examen de código sin agente

Personalización de la cobertura y el ámbito del analizador

Para GitHub y Azure DevOps, puede controlar qué escáneres se ejecutan y especificar exactamente qué repositorios se incluyen o excluyen del análisis sin agente.

Captura de pantalla que muestra la configuración personalizada del examen de código sin agente.

  • Seleccione escáneres: Active o desactive cada escáner de código y de infraestructura como código (IaC) según sus necesidades.

  • Establecer el ámbito de examen: Decida si desea examinar todos los repositorios de forma predeterminada o definir un ámbito personalizado para incluir o excluir organizaciones, proyectos o repositorios específicos.

    • Modo de exclusión: Escanear todo excepto lo que listes.
    • Modo de inclusión: Solo escanea lo que listes.
  • Opciones de ámbito personalizadas:

    • Para GitHub, establezca el ámbito por propietario o repositorio.
    • Para Azure DevOps, establezca el ámbito por organización, proyecto o repositorio.
  • Detección automática de nuevos repositorios: La detección automática de nuevos repositorios siempre se limita a las organizaciones o proyectos incluidos en el ámbito del conector. Está habilitado de forma predeterminada cuando se usa el modo de exclusión y no se establece ninguna lista de ámbito personalizada. Los repositorios recién creados se examinan automáticamente.

    La detección automática no está disponible en modo de inclusión, ya que solo se examinan los repositorios enumerados.

    Esto le permite hacer coincidir el examen con sus necesidades de seguridad, mantener la cobertura actualizada a medida que crece el entorno y evitar exámenes innecesarios o áreas no exploradas.

Funcionamiento del análisis de código sin agente

El análisis de código sin agente funciona independientemente de las canalizaciones de CI/CD. Usa el conector de Azure DevOps o GitHub para examinar automáticamente las configuraciones de código e infraestructura como código (IaC). No es necesario modificar canalizaciones ni agregar extensiones. Esta configuración permite un análisis de seguridad amplio y continuo en varios repositorios. Los resultados se procesan y se muestran directamente en Microsoft Defender for Cloud.

Diagrama que muestra la arquitectura del examen de código sin agente.

Proceso de examen

Una vez que habilite la característica de análisis de código sin agente dentro de un conector, el proceso de examen incluye estos pasos:

  1. Detección de repositorios: el sistema identifica automáticamente todos los repositorios vinculados a través del conector de Azure DevOps y GitHub inmediatamente después de la creación del conector y, a continuación, cada 8 horas.

  2. Recuperación de código: recupera de forma segura el código más reciente de la rama predeterminada (main) de cada repositorio para su análisis, inicialmente después de la configuración del conector y, a continuación, cada 3 a 4 días.

  3. Análisis: el sistema usa un conjunto de herramientas de análisis integradas administradas y actualizadas en Microsoft Defender for Cloud para encontrar vulnerabilidades y configuraciones incorrectas en plantillas de código e infraestructura como código (IaC).

  4. Procesamiento de hallazgos: procesa los resultados del examen a través del back-end de Defender for Cloud para crear recomendaciones de seguridad accionables.

  5. Entrega de resultados: el sistema muestra los resultados como recomendaciones de seguridad en Defender for Cloud, lo que permite a los equipos de seguridad revisar y solucionar problemas.

Frecuencia y duración del examen

  • Frecuencia de examen:
    • La posición de seguridad de los repositorios, las canalizaciones y las conexiones de servicio se evalúa al crear el conector y, a continuación, cada ocho horas.
    • El sistema examina el código y las plantillas de infraestructura como código (IaC) para detectar vulnerabilidades después de crear el conector y, a continuación, cada 2 a 4 días.
  • Duración del examen: los exámenes suelen finalizar en un plazo de 15 a 60 minutos, en función del tamaño y la complejidad del repositorio.

Visualización y administración de los resultados del examen

Una vez finalizados los exámenes, puede acceder a los resultados de seguridad en Microsoft Defender for Cloud.

Resultados de acceso

  1. Vaya a la pestaña Recomendaciones de seguridad de Microsoft Defender for Cloud.

  2. Revise las recomendaciones para repositorios de Azure DevOps y GitHub, como:

  3. Para obtener toda la gama de recomendaciones admitidas para ambas plataformas, consulte: Recomendaciones de seguridad de Azure DevOps y GitHub.

    Las recomendaciones incluyen elementos como requerir aprobaciones de varios revisores, restringir el acceso a secretos y aplicar procedimientos recomendados para entornos de Azure DevOps y GitHub.

    Seleccione cualquier recomendación para ver los detalles de los archivos afectados, la gravedad y los pasos de corrección.

Diferencia entre el análisis de código sin agente y el examen en canalización

El análisis de código sin agente y el análisis en la tubería mediante la extensión DevOps de Seguridad de Microsoft ofrecen análisis de seguridad en Azure DevOps y GitHub. Sirven diferentes necesidades, pero se complementan entre sí. En la tabla siguiente se resaltan las principales diferencias que le ayudarán a elegir la opción que mejor se adapte a sus necesidades de seguridad y desarrollo.

Aspecto Examen de código sin agente Examen en canalización
Ajuste de mayúsculas y minúsculas Ofrece una amplia cobertura con una interrupción mínima para los desarrolladores Proporciona exámenes detallados integrados en canalización con controles personalizables
Ámbito y cobertura del examen Se centra en la infraestructura como código (IaC) y el examen de vulnerabilidades de código, programados cada 2 a 4 días. Ofrece una amplia cobertura, incluidos los archivos binarios y las imágenes de contenedor, desencadenadas en cada ejecución de canalización
Instalación y configuración No requiere ninguna configuración adicional después de crear el conector Requiere instalación y configuración manual en cada canalización de CI/CD.
Integración de canalización Se ejecuta independientemente de las canalizaciones de CI/CD sin modificar flujos de trabajo Se integra en la canalización de CI/CD, lo que requiere la configuración en cada canalización.
Personalización del analizador Permite seleccionar qué escáneres se ejecutan. Permite la personalización con escáneres específicos, categorías, idiomas, niveles de confidencialidad y herramientas que no son de Microsoft
Resultados y comentarios Proporciona acceso a los resultados en Defender for Cloud Ofrece comentarios casi en tiempo real dentro de la canalización de CI/CD, con resultados también visibles en Defender for Cloud
Criterios de interrupción y error No se pueden interrumpir las compilaciones Se puede configurar para interrumpir las compilaciones en función de la gravedad de los resultados de seguridad.

Impacto en la escalabilidad y el rendimiento

El análisis de código sin agente evita la creación de recursos en la suscripción y no requiere el examen durante el proceso de canalización. Usa la API rest de Azure DevOps y GitHub para extraer metadatos y código. Esto significa que las llamadas API cuentan con límites de velocidad de Azure DevOps y GitHub, pero no incurre en costos directos de transferencia de datos. El servicio administra los escaneos para asegurarse de que se mantengan dentro de los límites de tasa de Azure DevOps y GitHub, sin interrumpir el entorno de desarrollo. Este método proporciona un examen eficaz y de alto rendimiento entre repositorios sin afectar a los flujos de trabajo de DevOps. Para más información, consulte los límites de frecuencia y uso de Azure DevOps y los límites de frecuencia para la API REST de GitHub.

Seguridad de datos, cumplimiento y control de acceso para el análisis de código sin agente

El servicio de análisis de código sin agente de Microsoft Defender for Cloud garantiza un control seguro y compatible del código mediante la implementación de medidas estrictas de seguridad y privacidad de los datos:

  • Cifrado de datos y control de acceso: el sistema cifra todos los datos en tránsito mediante protocolos estándar del sector. Solo los servicios autorizados de Defender for Cloud pueden acceder al código.
  • Residencia y retención de datos: los exámenes se producen en la misma ubicación geográfica que los conectores de Azure DevOps y GitHub (EE. UU. o UE) para cumplir con las leyes de protección de datos. El sistema procesa el código solo durante el examen y lo elimina de forma segura después, sin almacenamiento a largo plazo.
  • Acceso a repositorios: el servicio genera un token de acceso seguro para Azure DevOps y GitHub para realizar exámenes. Este token permite la recuperación de metadatos y código necesarios sin crear recursos en la suscripción. Solo los componentes de Defender for Cloud tienen acceso y protegen la integridad de los datos.
  • Compatibilidad con el cumplimiento: el servicio se alinea con los estándares normativos y de seguridad para el control y la privacidad de los datos, lo que garantiza el procesamiento seguro y el examen del código del cliente conforme a los requisitos de protección de datos regionales.

Estas medidas garantizan un proceso de análisis de código seguro, compatible y eficaz, manteniendo la privacidad e integridad de los datos.

Limitaciones (versión preliminar pública)

Durante la fase de versión preliminar pública, se aplican las siguientes limitaciones.

  • Sin examen binario: solo se ejecutan el código (SAST) y las herramientas de análisis de IaC.

  • Frecuencia de examen: examina los repositorios tras la habilitación y, a continuación, después de cada 2 a 4 días.

  • Tamaño del repositorio: limita el examen a los repositorios de menos de 1 GB.

  • Cobertura de rama: los exámenes solo cubren la rama predeterminada (normalmente main).

  • Personalización de herramientas: no se pueden personalizar las herramientas de examen.