Examen de código sin agente en Microsoft Defender for Cloud
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. Encuentra rápidamente vulnerabilidades en las configuraciones de código e infraestructura como código (IaC) sin necesidad de agentes o cambios de canalización de integración continua e implementación continua (CI/CD). Este enfoque simplifica la configuración y el mantenimiento con un único conector de Azure DevOps 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.
Requisitos previos
Estado de versión: versión preliminar pública
Casos de uso admitidos:
Clouds: nubes comerciales de Azure
Regiones admitidas: Este de Australia, Centro de Canadá, Centro de EE. UU., Este de Asia, Este de EE. UU., Norte de Europa, Centro de Suecia, Sur de Reino Unido, Oeste de Europa
Entornos admitidos: conector de Azure DevOps
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
- Administración proactiva de riesgos: identifique los riesgos al principio del proceso de desarrollo. Esto admite prácticas de codificación seguras y reduce las vulnerabilidades antes de llegar a producción.
- Incorporación sin esfuerzo: configure rápidamente con una configuración mínima y sin cambios de canalización.
- Administración centralizada y a escala empresarial: examine automáticamente el código en varios repositorios mediante un único conector. Esto proporciona 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 desarrolladores: funciona 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.
Funcionalidades de detección de riesgos
El análisis de código sin agente mejora la seguridad al ofrecer recomendaciones de seguridad dirigidas tanto para plantillas de código como de infraestructura como de código (IaC). Esto se suma a las recomendaciones de seguridad de Foundational Cloud Security Posture Management (CSPM) proporcionadas a través del conector. Entre las capacidades de detección de claves se incluyen las siguientes:
- Vulnerabilidades de código: busque errores de codificación comunes, prácticas de codificación no seguras y vulnerabilidades conocidas en varios lenguajes de programación.
- Configuración incorrecta de infraestructura como código: detecte configuraciones incorrectas de seguridad en plantillas de IaC que podrían dar lugar a implementaciones no seguras.
La creación del conector mejora la seguridad al proporcionar un conjunto fundamental de recomendaciones de seguridad 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 |
---|---|---|
Bandit | Python | 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 |
Template Analyzer | Plantillas de IaC de ARM, plantillas de Bicep IaC | MIT |
Estas herramientas admiten una amplia gama de lenguajes y marcos de IaC, lo que garantiza un análisis exhaustivo de seguridad en todo el código base.
Plataformas admitidas y tipos de archivo
Sistemas de control de versiones
- Azure DevOps: compatibilidad completa con repositorios conectados a través del conector de Azure DevOps.
Lenguajes de programación
- Python
- 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 | JSON, YAML files | 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). |
Serverless Framework | 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 examen de código sin agente en las organizaciones de Azure DevOps
Para conectar las organizaciones de Azure DevOps a Defender for Cloud y habilitar el examen de código sin agente, consulte las instrucciones de Conexión de las organizaciones de Azure DevOps. El siguiente objeto visual muestra el proceso de configuración rápido y sencillo, que le guía a través de cada paso para la incorporación sin problemas.
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 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.
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 sigue estos pasos:
- Detección de repositorios: el sistema identifica automáticamente todos los repositorios vinculados a través del conector de Azure DevOps justo después de la creación del conector y a continuación, cada 8 horas.
- 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, primero después de la configuración del conector y a continuación, cada 3 a 4 días.
- 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 el código y las plantillas de IaC.
- Procesamiento de hallazgos: procesa los resultados del examen a través del back-end de Defender for Cloud para crear recomendaciones de seguridad accionables.
- 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 8 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 3 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
Vaya a la pestaña Recomendaciones de seguridad de Microsoft Defender for Cloud.
Revise la lista de recomendaciones, que incluye resultados como:
Los repositorios de Azure DevOps deben tener los resultados de análisis de código resueltos: indica las vulnerabilidades encontradas en los repositorios de código.
Los repositorios de Azure DevOps deben tener infraestructura como resultados de análisis de código resueltos: apunta a errores de configuración de seguridad detectados en archivos de plantilla de IaC dentro de los repositorios.
Otras recomendaciones de seguridad generadas por el conector de Azure DevOps pueden incluir:
- Los repositorios de Azure DevOps deben tener habilitado GitHub Advanced Security para Azure DevOps (GHAzDO)
- Azure Pipelines no debe tener secretos disponibles para las compilaciones de bifurcaciones
- Las conexiones del servicio Azure DevOps no deben conceder acceso a todas las canalizaciones
- Los grupos de variables de Azure DevOps con variables secretas no deben conceder acceso a todas las canalizaciones
- Las conexiones de servicio de Azure clásico de Azure DevOps no deben usarse para acceder a una suscripción
- Los repositorios de Azure DevOps (versión preliminar) deben requerir la aprobación mínima de dos revisores para las inserciones de código
- Los repositorios de Azure DevOps (versión preliminar) no deben permitir que los solicitantes aprueben sus propias solicitudes de incorporación de cambios
- Los proyectos de Azure DevOps (versión preliminar) deben tener deshabilitada la creación de canalizaciones clásicas
- Los archivos seguros de Azure DevOps no deben conceder acceso a todas las canalizaciones
Seleccione cualquier recomendación para obtener información detallada, incluidos los archivos afectados, los niveles de gravedad y las instrucciones 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 canalización mediante la extensión DevOps de Seguridad de Microsoft ofrecen análisis de seguridad en Azure DevOps. Sirven a diferentes necesidades, pero funcionan bien juntos. En la tabla siguiente se resaltan las principales diferencias que le ayudarán a elegir la opción que 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 el análisis de vulnerabilidades de infraestructura como código (IaC), programados cada 3 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 | Los escáneres no se pueden personalizar ni ejecutar de forma selectiva | 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 de REST de Azure DevOps para extraer metadatos y código. Esto significa que las llamadas API cuentan con límites de velocidad de Azure DevOps, pero no incurre en costos directos de transferencia de datos. El servicio administra los exámenes para asegurarse de que permanecen dentro de los límites de velocidad de Azure DevOps 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 Límites de uso y velocidad de Azure DevOps.
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 el conector de Azure DevOps (EE. UU. o Europa) 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 que Azure DevOps realice 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: el sistema examina solo los archivos de código e infraestructura como código (IaC).
Frecuencia de examen: examina repositorios cada 3 días.
Tamaño del repositorio: limita el examen a los repositorios de menos de 1 GB.
Cobertura de rama: los exámenes cubren solo la rama predeterminada (principal).
Personalización de herramientas: no se pueden personalizar las herramientas de examen.