Pasar un rol a un StackSet de CloudFormation
Puede crear un StackSet de CloudFormation con un rol en varias cuentas.
Concede escalada solo en combinación. Se necesitan todos estos a la vez:
iam:PassRolecloudformation:CreateStackSetcloudformation:CreateStackInstancesiam:PassRole puede crear un StackSet de CloudFormation con un rol en varias cuentas, pero solo cuando se combina con cloudformation:CreateStackSet, cloudformation:CreateStackInstances. Combinados, llegan a acceso de administrador.
Por qué es peligroso
Un principal tiene iam:PassRole sobre el rol objetivo más cloudformation:CreateStackSet y cloudformation:CreateStackInstances, por lo que puede crear un StackSet con una plantilla redactada por el atacante y el rol objetivo como su rol de ejecución, y después desplegar instancias de pila; CloudFormation aprovisiona entonces cada recurso de la plantilla con los permisos del rol objetivo en las cuentas de destino. Como el rol objetivo confía en cloudformation.amazonaws.com, el pase se acepta; el rol privilegiado permite que la plantilla cree recursos de administrador: una escalada total de privilegios, extendida a varias cuentas.
En términos de MITRE ATT&CK, esto corresponde a T1648, Ejecución serverless, bajo la táctica de escalada de privilegios. AWS lo registra en CloudTrail como CreateStackSet, CreateStackInstances. La llamada es ruidosa en CloudTrail y destaca de la actividad normal.
Detección
CreateStackSetCreateStackInstancesRequisitos previos
La política de confianza del rol objetivo debe permitir cloudformation.amazonaws.com. Se necesitan tanto cloudformation:CreateStackSet como cloudformation:CreateStackInstances, además de iam:PassRole; CloudFormation ejecuta la plantilla del atacante con el rol de ejecución, así que no hace falta un paso aparte para robar credenciales.
MITRE ATT&CK
T1648 · Ejecución serverlessTá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 crear un StackSet de CloudFormation con un rol en varias cuentas.
¿Qué más hace falta para que iam:PassRole sea peligroso?
Solo se convierte en escalada cuando se combina con cloudformation:CreateStackSet, cloudformation:CreateStackInstances. 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 CloudFormation StackSet?
Vigila CreateStackSet, CreateStackInstances 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?
T1648, Ejecución serverless, 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.