Pasar un rol a AWS Batch
Puede registrar y enviar un trabajo de AWS Batch con un rol y ejecutar un contenedor con ese rol.
Concede escalada solo en combinación. Se necesitan todos estos a la vez:
iam:PassRolebatch:RegisterJobDefinitionbatch:SubmitJobiam:PassRole puede registrar y enviar un trabajo de AWS Batch con un rol y ejecutar un contenedor con él, pero solo cuando se combina con batch:RegisterJobDefinition, batch:SubmitJob. Combinados, llegan a acceso de administrador.
Por qué es peligroso
Un principal tiene iam:PassRole sobre el rol objetivo más batch:RegisterJobDefinition y batch:SubmitJob, por lo que puede registrar una definición de trabajo de Batch con el rol objetivo como su rol de trabajo y un comando de contenedor controlado por el atacante, y después enviar un trabajo; el contenedor se ejecuta con los permisos del rol objetivo y lee sus credenciales desde el punto de conexión de metadatos de la tarea. Como el rol objetivo confía en el servicio de ejecución de Batch, el pase se acepta; si el rol objetivo es privilegiado, se trata de una escalada total de privilegios.
En términos de MITRE ATT&CK, esto corresponde a T1610, Desplegar contenedor, bajo la táctica de escalada de privilegios. AWS lo registra en CloudTrail como RegisterJobDefinition, SubmitJob. La llamada es ruidosa en CloudTrail y destaca de la actividad normal.
Detección
RegisterJobDefinitionSubmitJobRequisitos previos
La política de confianza del rol objetivo debe permitir el principal de servicio del rol de trabajo de Batch (batch.amazonaws.com según la fuente; en la práctica, el jobRoleArn suele confiar en ecs-tasks.amazonaws.com, véase el informe, apartado 8). Debe haber disponibles una cola de trabajos y un entorno de cómputo existentes.
MITRE ATT&CK
T1610 · Desplegar contenedorTáctica
Escalada de privilegios
Un control que lo eliminaría: Elimina iam:PassRole para este rol o acótalo con iam:PassedToService.
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 iam:PassRole?
Puede registrar y enviar un trabajo de AWS Batch con un rol y ejecutar un contenedor con ese rol.
¿Qué más hace falta para que iam:PassRole sea peligroso?
Solo se convierte en escalada cuando se combina con batch:RegisterJobDefinition, batch:SubmitJob. Por sí solo no basta, y eso es lo que hace que la combinación sea fácil de pasar por alto.
¿Cómo se detecta el pase de rol a AWS Batch?
Vigila RegisterJobDefinition, SubmitJob 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: Elimina iam:PassRole para este rol o acótalo con iam:PassedToService. 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?
T1610, Desplegar contenedor, 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.