Secuestrar el rol del proyecto de CodeBuild (por lotes)
Puede iniciar una compilación por lotes en un proyecto con comandos de sobrescritura como su rol de servicio.
Concede escalada por sí solo.
codebuild:StartBuildBatchPor sí solo, codebuild:StartBuildBatch puede iniciar una compilación por lotes en un proyecto con comandos de sustitución usando su rol de servicio. Con un alcance de recursos amplio, eso por sí solo llega a acceso de administrador.
Por qué es peligroso
Un principal puede llamar a codebuild:StartBuildBatch sobre un proyecto de CodeBuild existente que ya tiene el rol de servicio, aportando un buildspecOverride cuyos comandos de shell controla el atacante. CodeBuild ejecuta esos comandos en su infraestructura administrada como el rol objetivo, sin necesidad de iam:PassRole ni de codebuild:CreateProject, porque el rol objetivo ya está vinculado al proyecto. Los comandos leen las credenciales activas del rol objetivo desde el entorno de compilación o llaman directamente a AWS; si el rol objetivo tiene privilegios, se trata de una escalada total de privilegios contra un proyecto en el que ya se confiaba.
En términos de MITRE ATT&CK, esto corresponde a T1578, Modificar la infraestructura de cómputo cloud, bajo la táctica de escalada de privilegios. AWS lo registra en CloudTrail como StartBuildBatch. La llamada es ruidosa en CloudTrail y destaca de la actividad normal.
Detección
StartBuildBatchRequisitos previos
Un proyecto de CodeBuild existente con un rol de servicio asociado; permiso para iniciar una compilación por lotes en él. Deben estar permitidas las sobrescrituras de buildspec/comandos (el valor por defecto).
Táctica
Escalada de privilegios
Un control que lo eliminaría: Restringe codebuild:StartBuildBatch en los proyectos que tienen un rol de servicio con privilegios; no permitas sobrescrituras de buildspec.
Aplicarla o no depende de cómo se use el permiso en tu entorno, así que es una decisión de negocio y no una corrección automática. El mismo permiso puede ser imprescindible en una cuenta y puro riesgo en otra.
Pathbreak confirma si esta ruta se resuelve en tu cuenta, la clasifica frente a las demás según cuánto abre y usa tu modelo de amenazas y tu contexto de negocio para mostrar qué rutas merece la pena cortar.
Preguntas
¿Qué permite codebuild:StartBuildBatch?
Puede iniciar una compilación por lotes en un proyecto con comandos de sobrescritura como su rol de servicio.
¿Puede codebuild:StartBuildBatch escalar privilegios por sí solo?
Sí. Concedido sobre un recurso lo bastante amplio, llega a acceso de administrador sin ningún otro permiso.
¿Cómo se detecta el secuestro del rol de proyecto de CodeBuild (batch)?
Vigila StartBuildBatch en CloudTrail. La llamada es ruidosa en CloudTrail y destaca de la actividad normal.
¿Cómo se rompe esta ruta?
Un control que lo eliminaría es: Restringe codebuild:StartBuildBatch en proyectos que tengan un rol de servicio con privilegios; no permitas sobrescrituras de buildspec. Aplicarla o no depende de cómo se use el permiso en tu cuenta, así que es una decisión de negocio y no una corrección automática.
¿De qué técnica de MITRE ATT&CK se trata?
T1578, Modificar la infraestructura de cómputo cloud, en la táctica de escalada de privilegios.
Rutas relacionadas
Referencias
Encuéntralo en tu propia cuenta
Ejecutamos un escaneo de solo lectura de una cuenta de AWS y te mostramos cuáles de estas rutas existen, ordenadas por radio de impacto, con el cambio que rompe cada una. Primeras rutas validadas en menos de una hora.