Pasar un rol a la actualización de un StackSet de CloudFormation
Puede actualizar un StackSet de CloudFormation con un rol entre cuentas.
Concede escalada solo en combinación. Se necesitan todos estos a la vez:
iam:PassRolecloudformation:UpdateStackSetiam:PassRole puede actualizar un StackSet de CloudFormation con un rol en varias cuentas, pero solo cuando se combina con cloudformation:UpdateStackSet. Combinados, llegan a acceso de administrador.
Por qué es peligroso
Un principal tiene iam:PassRole sobre el rol objetivo más cloudformation:UpdateStackSet, por lo que puede actualizar un StackSet existente con una plantilla redactada por el atacante y el rol objetivo como su rol de ejecución; en el despliegue, CloudFormation aprovisiona cada recurso de la plantilla con los permisos del rol objetivo en las cuentas de destino del StackSet. 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, sin necesidad de crear un StackSet nuevo.
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 UpdateStackSet. La llamada es ruidosa en CloudTrail y destaca de la actividad normal.
Detección
UpdateStackSetRequisitos previos
La política de confianza del rol objetivo debe permitir cloudformation.amazonaws.com. Se necesitan tanto cloudformation:UpdateStackSet como 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. Se da por supuesto que existe un StackSet que actualizar.
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 actualizar un StackSet de CloudFormation con un rol entre cuentas.
¿Qué más hace falta para que iam:PassRole sea peligroso?
Solo se convierte en escalada cuando se combina con cloudformation:UpdateStackSet. 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 una actualización de CloudFormation StackSet?
Vigila UpdateStackSet 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.