Controles de Security Hub para CodeBuild
Estos controles de Security Hub evalúan el servicio y los recursos de AWS CodeBuild.
Es posible que estos controles no estén disponibles en todas las Regiones de AWS. Para obtener más información, consulte Disponibilidad de los controles por región.
[CodeBuild.1] Las URL del repositorio de origen de Bitbucket de CodeBuild no deben contener credenciales confidenciales
Requisitos relacionados: NIST.800-53.r5 SA-3, PCI DSS v3.2.1/8.2.1, PCI DSS v4.0.1/8.3.2
Categoría: Proteger - Desarrollo seguro
Gravedad: crítica
Tipo de recurso: AWS::CodeBuild::Project
AWS Config Regla de: codebuild-project-source-repo-url-check
Tipo de horario: provocado por un cambio
Parámetros: ninguno
Este control comprueba si la URL del repositorio de origen de Bitbucket de un proyecto de AWS CodeBuild contiene tókenes de acceso personal o un nombre de usuario y una contraseña. El control falla si la URL del repositorio de origen de Bitbucket contiene tókenes de acceso personal o un nombre de usuario y una contraseña.
nota
Este control evalúa tanto al origen principal como a los orígenes secundarios de un proyecto de compilación de CodeBuild. Para obtener más información acerca de los orígenes del proyecto, consulte Multiple input sources and output artifacts sample en la Guía del usuario de AWS CodeBuild.
Las credenciales de inicio de sesión no deben almacenarse o transmitirse en texto sin formato ni aparecer en la URL del repositorio de origen. En lugar de utilizar tókenes de acceso personal o credenciales de inicio de sesión, debe acceder a su proveedor de origen en CodeBuild y cambiar la URL del repositorio de origen para que contenga solo la ruta de la ubicación del repositorio de Bitbucket. El uso de tókenes de acceso personal o de credenciales de inicio de sesión podría dar lugar a la exposición involuntaria de datos o al acceso no autorizado.
Corrección
Puede actualizar su proyecto de CodeBuild para usar OAuth.
Cómo quitar el token de acceso personal (GitHub) o de autenticación básica del origen del proyecto de CodeBuild
Abra la consola de CodeBuild en https://console.aws.amazon.com/codebuild/
. -
Elija el proyecto de compilación que contiene tokens de acceso personales o un nombre de usuario y una contraseña.
-
En Edit (Editar), elija Source (Origen).
-
Elija Disconnect from GitHub / Bitbucket (Desconectar de GitHub/Bitbucket).
-
Elija Connect using OAuth (Conectarse con OAuth) y, a continuación, Connect to GitHub / Bitbucket (Conectarse a GitHub/Bitbucket).
-
Cuando se le solicite, elija authorize as appropriate (autorizar según corresponda).
-
Vuelva a configurar la URL de repositorio y los ajustes de la configuración adicional, según sea necesario.
-
Elija Update source (Actualizar origen).
Para obtener más información, consulte Ejemplos basados en casos de uso de CodeBuild en la AWS CodeBuildGuía del usuario.
[CodeBuild.2] Las variables de entorno del proyecto de CodeBuild no deben contener credenciales de texto sin cifrar
Requisitos relacionados: NIST.800-53.r5 IA-5(7), NIST.800-53.r5 SA-3, PCI DSS v3.2.1/8.2.1, PCI DSS v4.0.1/8.3.2
Categoría: Proteger - Desarrollo seguro
Gravedad: crítica
Tipo de recurso: AWS::CodeBuild::Project
AWS Config Regla de: codebuild-project-envvar-awscred-check
Tipo de horario: provocado por un cambio
Parámetros: ninguno
Este control comprueba si el proyecto contiene las variables de entorno AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY.
Las credenciales de autenticación AWS_ACCESS_KEY_ID y AWS_SECRET_ACCESS_KEY no deben almacenarse nunca en texto sin cifrar, ya que esto podría conducir a una exposición no intencionada de los datos y a un acceso no autorizado.
Corrección
Para eliminar variables de entorno de un proyecto de CodeBuild, consulta Cambiar la configuración de un proyecto de compilación en AWS CodeBuild la Guía del usuario de AWS CodeBuild. Asegúrese de que no haya nada seleccionado para las Variables de entorno.
Puede almacenar variables de entorno de almacén con valores confidenciales en el almacén de parámetros de AWS Systems Manager o AWS Secrets Manager y, a continuación, recuperarlos de su especificación de compilación Para obtener instrucciones, consulte el cuadro denominado Importante en la sección Medio ambiente de la Guía del usuario de AWS CodeBuild.
[CodeBuild.3] Los registros de CodeBuild S3 deben estar cifrados
Requisitos relacionados: NIST.800-53.r5 CA-9(1), NIST.800-53.r5 CM-3(6), NIST.800-53.r5 SC-13, NIST.800-53.r5 SC-28, NIST.800-53.r5 SC-28(1), NIST.800-53.r5 SI-7(6), PCI DSS v4.0.1/10.3.2
Categoría: Proteger > Protección de datos > Cifrado de datos en reposo
Gravedad: baja
Tipo de recurso: AWS::CodeBuild::Project
AWS Config Regla de: codebuild-project-s3-logs-encrypted
Tipo de horario: provocado por un cambio
Parámetros: ninguno
Este control comprueba si los registros de Amazon S3 de un proyecto de AWS CodeBuild están cifrados. El control falla si el cifrado está desactivado para los registros de S3 de un proyecto de CodeBuild.
El cifrado de los datos en reposo es una práctica recomendada para añadir una capa de gestión del acceso a los datos. Cifrar los registros en reposo reduce el riesgo de que un usuario no autenticado por AWS acceda a los datos almacenados en el disco. Añade otro conjunto de controles de acceso para limitar la capacidad de los usuarios no autorizados de acceder a los datos.
Corrección
Para cambiar la configuración de cifrado de los registros S3 del proyecto CodeBuild, consulte Cambiar la configuración de un proyecto de compilación de AWS CodeBuild en la Guía del usuario de AWS CodeBuild.
[CodeBuild.4] Los entornos del proyecto CodeBuild deben tener una duración de registro de AWS Config
Requisitos relacionados: NIST.800-53.r5 AC-2(12), NIST.800-53.r5 AC-2(4), NIST.800-53.r5 AC-4(26), NIST.800-53.r5 AC-6(9), NIST.800-53.r5 AU-10, NIST.800-53.r5 AU-12, NIST.800-53.r5 AU-2, NIST.800-53.r5 AU-3, NIST.800-53.r5 AU-6(3), NIST.800-53.r5 AU-6(4), NIST.800-53.r5 AU-9(7), NIST.800-53.r5 CA-7, NIST.800-53.r5 SC-7(9), NIST.800-53.r5 SI-3(8), NIST.800-53.r5 SI-4, NIST.800-53.r5 SI-4(20), NIST.800-53.r5 SI-7(8)
Categoría: Identificar - Registro
Gravedad: media
Tipo de recurso: AWS::CodeBuild::Project
AWS Config Regla de: codebuild-project-logging-enabled
Tipo de horario: provocado por un cambio
Parámetros: ninguno
Este control comprueba si un entorno de proyecto de CodeBuild tiene al menos una opción de registro, ya sea para los registros de S3 o CloudWatch habilitados. Este control falla si un entorno de proyecto de CodeBuild no tiene habilitada al menos una opción de registro.
Desde una perspectiva de seguridad, el registro es una característica importante para permitir futuros esfuerzos forenses en caso de cualquier incidente de seguridad. La correlación de las anomalías en los proyectos de CodeBuild con las detecciones de amenazas puede aumentar la confianza en la precisión de esas detecciones de amenazas.
Corrección
Para obtener más información sobre cómo configurar los ajustes del registro de proyectos de CodeBuild, consulte Crear un proyecto de compilación (consola) en la Guía del usuario de CodeBuild.
[CodeBuild.5] Los entornos de proyectos de CodeBuild no deberían tener habilitado el modo privilegiado
importante
Security Hub retiró este control en abril de 2024. Para obtener más información, consulte Registro de cambios de los controles del CSPM de Security Hub.
Requisitos relacionados: NIST.800-53.r5 AC-2(1), NIST.800-53.r5 AC-3, NIST.800-53.r5 AC-3(15), NIST.800-53.r5 AC-3(7), NIST.800-53.r5 AC-5, NIST.800-53.r5 AC-6, NIST.800-53.r5 AC-6(10), NIST.800-53.r5 AC-6(2)
Categoría: Proteger > Administración de acceso seguro
Gravedad: alta
Tipo de recurso: AWS::CodeBuild::Project
AWS Config Regla de: codebuild-project-environment-privileged-check
Tipo de horario: provocado por un cambio
Parámetros: ninguno
Este control comprueba si el entorno de un proyecto de AWS CodeBuild tiene el modo privilegiado activado o desactivado. El control falla si un entorno de proyecto de CodeBuild tiene habilitado el modo privilegiado.
De forma predeterminada, los contenedores Docker no permiten el acceso a ningún dispositivo. El modo privilegiado otorga acceso al contenedor Docker de un proyecto de compilación a todos los dispositivos. La configuración privilegedMode con un valor true permite que el daemon de Docker se ejecute dentro de un contenedor de Docker. El daemon de Docker escucha las solicitudes de la API de Docker y administra los objetos de Docker, como imágenes, contenedores, redes y volúmenes. Este parámetro solo debe establecerse en true si el proyecto de compilación se utiliza para compilar imágenes de Docker. De lo contrario, esta configuración debe estar deshabilitada para evitar el acceso no deseado a las API de Docker y al hardware subyacente del contenedor. Esta configuración de privilegedMode como false a proteger los recursos críticos contra la manipulación y la eliminación.
Corrección
Para configurar los ajustes del entorno de proyecto de CodeBuild, consulte Crear un proyecto de compilación (consola) en la Guía del usuario de CodeBuild. En la sección Entorno, no seleccione la configuración Privilegiada.
[CodeBuild.7] Las exportaciones de grupos de informes de CodeBuild deben cifrarse en reposo
Categoría: Proteger > Protección de datos > Cifrado de datos en reposo
Gravedad: media
Tipo de recurso: AWS::CodeBuild::ReportGroup
AWS Config Regla de: codebuild-report-group-encrypted-at-rest
Tipo de horario: provocado por un cambio
Parámetros: ninguno
Este control comprueba si los resultados de las pruebas de un grupo de informes de AWS CodeBuild que se exportan a un bucket de Amazon Simple Storage Service (Amazon S3) están cifrados en reposo. El control falla si la exportación del grupo de informes no está cifrada en reposo.
Los datos en reposo hacen referencia a los datos que se almacenan en un almacenamiento persistente y no volátil durante cualquier periodo de tiempo. El cifrado de datos en reposo permite proteger la confidencialidad de los datos, lo que reduce el riesgo de que un usuario no autorizado pueda acceder a ellos.
Corrección
Para cifrar la exportación del grupo de informes a S3, consulte Update a report group en la Guía del usuario de AWS CodeBuild.