Recomendaciones de seguridad para recursos de DevOps

En este artículo se enumeran las recomendaciones que puede ver en Microsoft Defender for Cloud si conecta un entorno de Azure DevOps, GitHub o GitLab mediante la página Configuración del entorno. Las recomendaciones que aparecen en el entorno se basan en los recursos que está protegiendo y en la configuración personalizada.

Para obtener información sobre las acciones que puede realizar en respuesta a estas recomendaciones, consulte Corrección de recomendaciones en Defender for Cloud.

Obtenga más información sobre las ventajas y características de seguridad de DevOps.

Las recomendaciones de DevOps no afectan a la puntuación segura. Para decidir qué recomendaciones resolver primero, examine la gravedad de cada recomendación y su posible impacto en la puntuación segura.

Recomendaciones de DevOps

Recomendaciones de Azure DevOps

Los repositorios de Azure DevOps deben tener habilitado GitHub Advanced Security para Azure DevOps (GHAzDO)

Descripción: La seguridad de DevOps en Defender for Cloud usa una consola central para capacitar a los equipos de seguridad con la capacidad de proteger las aplicaciones y los recursos del código a la nube en Azure DevOps. Con la habilitación de los repositorios GitHub Advanced Security para Azure DevOps (GHAzDO), que incluye GitHub Advanced Security para Azure DevOps, obtiene hallazgos sobre secretos, dependencias y vulnerabilidades de código en sus repositorios de Azure DevOps que aparecen en Microsoft Defender for Cloud.

Gravedad: alta

Los repositorios de Azure DevOps deben tener resueltos los resultados del examen de secretos

Descripción: se encontraron secretos en repositorios de código. Corrija inmediatamente para evitar una infracción de seguridad. Los secretos encontrados en los repositorios se pueden filtrar o detectar por adversarios, lo que conduce a un riesgo de una aplicación o servicio. Nota: La herramienta de examen de credenciales de Microsoft Security DevOps solo examina las compilaciones en las que está configurada para ejecutarse. Por tanto, es posible que los resultados no reflejen el estado completo de los secretos en los repositorios.

Gravedad: alta

Los repositorios de Azure DevOps deben tener resueltos los resultados del examen de código

Descripción: se encontraron vulnerabilidades en repositorios de código. Para mejorar la posición de seguridad de los repositorios, se recomienda encarecidamente corregir estas vulnerabilidades.

Gravedad: media

Los repositorios de Azure DevOps deben tener resueltos los resultados del examen de vulnerabilidades de dependencias

Descripción: se han encontrado vulnerabilidades de dependencia en repositorios de código. Para mejorar la posición de seguridad de los repositorios, se recomienda encarecidamente corregir estas vulnerabilidades.

Gravedad: media

Los repositorios de Azure DevOps deben tener resueltos los resultados del examen de infraestructura como código

Descripción: se han encontrado problemas de infraestructura como configuración de seguridad de código en repositorios. Los problemas que se muestran a continuación se han detectado en archivos de plantilla. Para mejorar la posición de seguridad de los recursos en la nube relacionados, se recomienda encarecidamente corregir estos problemas.

Gravedad: media

Las canalizaciones de compilación de Azure DevOps no deben tener secretos disponibles para las compilaciones de bifurcaciones

Descripción: en repositorios públicos, es posible que los usuarios de fuera de la organización creen bifurcaciones y ejecuten compilaciones en el repositorio bifurcada. En tal caso, si esta configuración estuviera habilitada, agentes externos podrían obtener acceso a secretos de canalización de compilación que deberían ser internos.

Gravedad: alta

Las conexiones del servicio Azure DevOps no deben conceder acceso a todas las canalizaciones

Descripción: las conexiones de servicio se usan para crear conexiones de Azure Pipelines a servicios externos y remotos para ejecutar tareas en un trabajo. Los permisos de canalización controlan qué canalizaciones están autorizadas para usar la conexión de servicio. Para admitir la seguridad de las operaciones de canalización, no se debe conceder acceso a las conexiones de servicio a todas las canalizaciones de YAML. Esto ayuda a mantener el principio de privilegios mínimos porque un atacante puede aprovechar una vulnerabilidad en los componentes usados por una canalización para atacar a otras canalizaciones que tienen acceso a recursos críticos.

Gravedad: alta

Los archivos seguros de Azure DevOps no deben conceder acceso a todas las canalizaciones

Descripción: los archivos seguros proporcionan a los desarrolladores una manera de almacenar archivos que se pueden compartir entre canalizaciones. Estos archivos se suelen usar para almacenar secretos como certificados de firma y claves SSH. Si se concediera a un archivo seguro acceso a todas las canalizaciones de YAML, un usuario no autorizado podría robar información de los archivos seguros mediante la creación de una canalización YAML y el acceso al archivo seguro.

Gravedad: alta

Los grupos de variables de Azure DevOps con variables secretas no deben conceder acceso a todas las canalizaciones

Descripción: los grupos de variables almacenan valores y secretos que es posible que desee pasar a una canalización de YAML o que estén disponibles en varias canalizaciones. Puede compartir y usar grupos de variables en varias canalizaciones del mismo proyecto. Si un grupo de variables que contiene secretos se marcara como accesible para todas las canalizaciones de YAML, un atacante podría crear una nueva canalización para aprovechar los recursos relacionados con las variables secretas.

Gravedad: alta

Las conexiones de servicio de Azure clásico de Azure DevOps no deben usarse para acceder a una suscripción

Descripción: use el tipo de conexiones de servicio de Azure Resource Manager (ARM) en lugar de las conexiones de servicio clásico de Azure para conectarse a suscripciones de Azure. El modelo de ARM ofrece varias mejoras de seguridad, como un control de acceso más sólido, una auditoría mejorada, la implementación o gobernanza basadas en ARM, el acceso a identidades administradas y el almacén de claves para secretos, la autenticación basada en permisos de Entra y la compatibilidad con etiquetas y grupos de recursos para una administración simplificada.

Gravedad: media

(Versión preliminar) Los repositorios de Azure DevOps deben tener resueltos los resultados de las pruebas de seguridad de API

Descripción: se han encontrado vulnerabilidades de seguridad de API en repositorios de código. Para mejorar la posición de seguridad de los repositorios, se recomienda encarecidamente corregir estas vulnerabilidades.

Gravedad: media

Recomendaciones de GitHub

Los repositorios de GitHub deben tener habilitada la característica de examen de secretos

Descripción: GitHub examina repositorios de tipos conocidos de secretos para evitar el uso fraudulento de secretos que se han confirmado accidentalmente en repositorios. El escaneo de secretos escaneará todo el historial de Git en todas las ramas presentes en el repositorio de GitHub en busca de cualquier secreto. Algunos ejemplos de secretos son tokens y claves privadas que un proveedor de servicios puede emitir para la autenticación. Si se registra un secreto en un repositorio, cualquiera que tenga acceso de lectura al repositorio puede usar el secreto para acceder al servicio externo con esos privilegios. Los secretos deben almacenarse en una ubicación dedicada y segura fuera del repositorio del proyecto.

Gravedad: alta

Los repositorios de GitHub deben tener habilitado el análisis de código

Descripción: GitHub usa el análisis de código para analizar código con el fin de buscar vulnerabilidades de seguridad y errores en el código. El escaneo de código puede usarse para encontrar, clasificar y priorizar las correcciones de los problemas existentes en su código. El análisis del código también puede evitar que los desarrolladores generen nuevos problemas. Los escaneos se pueden programar para días y horas específicas, o los escaneos se pueden activar cuando se produce un evento específico en el repositorio, como un push. Si el escaneo de código encuentra una posible vulnerabilidad o error en el código, GitHub muestra una alerta en el repositorio. Una vulnerabilidad es un problema en el código de un proyecto que se puede aprovechar para dañar la confidencialidad, la integridad o la disponibilidad del proyecto.

Gravedad: media

Los repositorios de GitHub deben tener habilitado el examen de Dependabot

Descripción: GitHub envía alertas de Dependabot cuando detecta vulnerabilidades en dependencias de código que afectan a los repositorios. Una vulnerabilidad es un problema en el código de un proyecto que se puede aprovechar para dañar la confidencialidad, la integridad o la disponibilidad del proyecto o de otros proyectos que usan su código. Las vulnerabilidades varían en tipo, severidad y método de ataque. Cuando el código depende de un paquete que tiene una vulnerabilidad de seguridad, esta dependencia puede causar una serie de problemas.

Gravedad: media

Los repositorios de GitHub deben tener los resultados del examen de secretos resueltos

Descripción: se han encontrado secretos en repositorios de código. Esto debe corregirse inmediatamente para evitar una infracción de seguridad. Los secretos encontrados en los repositorios se pueden filtrar o detectar por adversarios, lo que conduce a un riesgo de una aplicación o servicio.

Gravedad: alta

Los repositorios de GitHub deben tener resueltos los resultados del examen de código

Descripción: se han encontrado vulnerabilidades en repositorios de código. Para mejorar la posición de seguridad de los repositorios, se recomienda encarecidamente corregir estas vulnerabilidades.

Gravedad: media

Los repositorios de GitHub deben tener resueltos los resultados del examen de vulnerabilidades de dependencias

Descripción: los repositorios de GitHub deben tener resueltos los resultados del examen de vulnerabilidades de dependencia.

Gravedad: media

Los resultados de los exámenes de infraestructura como código de los repositorios de GitHub deben estar resueltos

Descripción: se han encontrado problemas de infraestructura como configuración de seguridad de código en repositorios. Los problemas que se muestran a continuación se han detectado en archivos de plantilla. Para mejorar la posición de seguridad de los recursos en la nube relacionados, se recomienda encarecidamente corregir estos problemas.

Gravedad: media

Los repositorios de GitHub deben tener directivas de protección para la rama predeterminada habilitada

Descripción: la rama predeterminada del repositorio debe protegerse mediante directivas de protección de ramas para evitar que los cambios no deseados o malintencionados se confirmen directamente en el repositorio.

Gravedad: alta

Los repositorios de GitHub deben tener inserciones forzadas a la rama predeterminada deshabilitada

Descripción: dado que la rama predeterminada se usa normalmente para la implementación y otras actividades con privilegios, los cambios en ella deben abordarse con precaución. La habilitación de inserciones forzadas puede introducir cambios no deseados o malintencionados en la rama predeterminada.

Gravedad: media

Las organizaciones de GitHub deben tener habilitada la protección de inserción de análisis de secretos

Descripción: La protección de inserción bloqueará las confirmaciones que contienen secretos, lo que impide la exposición accidental de secretos. Para evitar el riesgo de exposición de credenciales, la protección de inserción se debe habilitar automáticamente para cada repositorio habilitado para el examen de secretos.

Gravedad: alta

Los repositorios de GitHub no deben usar ejecutores autohospedados

Descripción: los ejecutores autohospedados en GitHub carecen de garantías de funcionamiento en máquinas virtuales limpias efímeras y pueden verse comprometidas de forma persistente por código que no es de confianza en un flujo de trabajo. Por lo tanto, los ejecutores autohospedados no deben usarse para flujos de trabajo de acción.

Gravedad: alta

Las organizaciones de GitHub deben tener permisos de flujo de trabajo de acciones establecidos como solo lectura

Descripción: de forma predeterminada, se deben conceder permisos de solo lectura a los flujos de trabajo de acción para evitar que los usuarios malintencionados aprovechen los flujos de trabajo con permisos excesivos para acceder a los recursos y manipularlos.

Gravedad: alta

Las organizaciones de GitHub deben tener más de una persona con permisos de administrador

Descripción: tener al menos dos administradores reduce el riesgo de perder el acceso de administrador. Esto es útil para cuentas que se usan para acceder al sistema en casos de emergencia.

Gravedad: alta

Las organizaciones de GitHub deben tener permisos base establecidos en ningún permiso o solo lectura

Descripción: los permisos base deben establecerse en ninguno o leerse para que una organización siga el principio de privilegios mínimos y evite el acceso innecesario.

Gravedad: alta

(Versión preliminar) Los repositorios de GitHub deben tener resueltos los resultados de las pruebas de seguridad de API

Descripción: se han encontrado vulnerabilidades de seguridad de API en repositorios de código. Para mejorar la posición de seguridad de los repositorios, se recomienda encarecidamente corregir estas vulnerabilidades.

Gravedad: media

Recomendaciones de GitLab

Los proyectos de GitLab deben tener los resultados del examen de secretos resueltos

Descripción: se han encontrado secretos en repositorios de código. Esto debe corregirse inmediatamente para evitar una infracción de seguridad. Los secretos encontrados en los repositorios se pueden filtrar o detectar por adversarios, lo que conduce a un riesgo de una aplicación o servicio.

Gravedad: alta

Los proyectos de GitLab deben tener resueltos los resultados del examen de código

Descripción: se han encontrado vulnerabilidades en repositorios de código. Para mejorar la posición de seguridad de los repositorios, se recomienda encarecidamente corregir estas vulnerabilidades.

Gravedad: media

Los proyectos de GitLab deben tener resueltos los resultados de examen de vulnerabilidades de dependencia

Descripción: los repositorios de GitHub deben tener resueltos los resultados del examen de vulnerabilidades de dependencia.

Gravedad: media

Los resultados de los exámenes de infraestructura como código de los proyectos de GitLab deben estar resueltos

Descripción: se han encontrado problemas de infraestructura como configuración de seguridad de código en repositorios. Los problemas que se muestran a continuación se han detectado en archivos de plantilla. Para mejorar la posición de seguridad de los recursos en la nube relacionados, se recomienda encarecidamente corregir estos problemas.

Gravedad: media

Recomendaciones de seguridad de DevOps en desuso

Los repositorios de código deben tener resueltos los resultados del examen de código

Descripción: La seguridad de DevOps en Defender for Cloud ha encontrado vulnerabilidades en los repositorios de código. Para mejorar la posición de seguridad de los repositorios, se recomienda encarecidamente corregir estas vulnerabilidades. (Ninguna directiva relacionada)

Gravedad: media

Los repositorios de código deben tener los resultados del examen de secretos resueltos

Descripción: La seguridad de DevOps en Defender for Cloud ha encontrado un secreto en los repositorios de código. Esto debe corregirse inmediatamente para evitar una infracción de seguridad. Los secretos encontrados en los repositorios se pueden filtrar o detectar por adversarios, lo que conduce a un riesgo de una aplicación o servicio. Para Azure DevOps, la herramienta CredScan de DevOps de seguridad de Microsoft solo examina las compilaciones en las que se ha configurado para ejecutarse. Por tanto, es posible que los resultados no reflejen el estado completo de los secretos en los repositorios. (Ninguna directiva relacionada)

Gravedad: alta

Los resultados de los exámenes de Dependabot de los repositorios de código deben estar resueltos

Descripción: La seguridad de DevOps en Defender for Cloud ha encontrado vulnerabilidades en los repositorios de código. Para mejorar la posición de seguridad de los repositorios, se recomienda encarecidamente corregir estas vulnerabilidades. (Ninguna directiva relacionada)

Gravedad: media

Los resultados de los exámenes de infraestructura como código de los repositorios de código deben estar resueltos

Descripción: La seguridad de DevOps en Defender for Cloud ha encontrado problemas de configuración de seguridad de código en repositorios. Los problemas que se muestran a continuación se han detectado en archivos de plantilla. Para mejorar la posición de seguridad de los recursos en la nube relacionados, se recomienda encarecidamente corregir estos problemas. (Ninguna directiva relacionada)

Gravedad: media

Los repositorios de GitHub deben tener habilitado el análisis de código

Descripción: GitHub usa el análisis de código para analizar código con el fin de buscar vulnerabilidades de seguridad y errores en el código. El escaneo de código puede usarse para encontrar, clasificar y priorizar las correcciones de los problemas existentes en su código. El análisis del código también puede evitar que los desarrolladores generen nuevos problemas. Los escaneos se pueden programar para días y horas específicas, o los escaneos se pueden activar cuando se produce un evento específico en el repositorio, como un push. Si el escaneo de código encuentra una posible vulnerabilidad o error en el código, GitHub muestra una alerta en el repositorio. Una vulnerabilidad es un problema en el código de un proyecto que se puede aprovechar para dañar la confidencialidad, la integridad o la disponibilidad del proyecto. (Ninguna directiva relacionada)

Gravedad: media

Los repositorios de GitHub deben tener habilitada la característica de examen de secretos

Descripción: GitHub examina repositorios de tipos conocidos de secretos para evitar el uso fraudulento de secretos que se han confirmado accidentalmente en repositorios. El escaneo de secretos escaneará todo el historial de Git en todas las ramas presentes en el repositorio de GitHub en busca de cualquier secreto. Algunos ejemplos de secretos son tokens y claves privadas que un proveedor de servicios puede emitir para la autenticación. Si se registra un secreto en un repositorio, cualquiera que tenga acceso de lectura al repositorio puede usar el secreto para acceder al servicio externo con esos privilegios. Los secretos deben almacenarse en una ubicación dedicada y segura fuera del repositorio del proyecto. (Ninguna directiva relacionada)

Gravedad: alta

Los repositorios de GitHub deben tener habilitado el examen de Dependabot

Descripción: GitHub envía alertas de Dependabot cuando detecta vulnerabilidades en dependencias de código que afectan a los repositorios. Una vulnerabilidad es un problema en el código de un proyecto que se puede aprovechar para dañar la confidencialidad, la integridad o la disponibilidad del proyecto o de otros proyectos que usan su código. Las vulnerabilidades varían en tipo, severidad y método de ataque. Cuando el código depende de un paquete que tiene una vulnerabilidad de seguridad, esta dependencia puede causar una serie de problemas. (Ninguna directiva relacionada)

Gravedad: media