Inyectar user-data en una plantilla de lanzamiento de EC2
Puede inyectar user-data en una plantilla de lanzamiento, que se ejecutará con su rol en el siguiente lanzamiento.
Concede escalada solo en combinación. Se necesitan todos estos a la vez:
ec2:CreateLaunchTemplateVersionec2:ModifyLaunchTemplateec2:CreateLaunchTemplateVersion puede inyectar user-data en una plantilla de lanzamiento y ejecutarlo con su rol en el siguiente arranque, pero solo cuando se combina con ec2:ModifyLaunchTemplate. Combinados, llegan a acceso de administrador.
Por qué es peligroso
Un principal puede llamar a ec2:CreateLaunchTemplateVersion para publicar una nueva versión de una plantilla de lanzamiento existente con user-data controlado por el atacante, y después a ec2:ModifyLaunchTemplate para establecer esa versión como predeterminada, sin necesidad de iam:PassRole. La plantilla ya referencia el rol del perfil de instancia, así que cualquier instancia que se lance después a partir de ella (un grupo de Auto Scaling que escala hacia fuera, una renovación de flota o un RunInstances manual) arranca con el user-data del atacante y lo ejecuta como el rol objetivo, exponiendo las credenciales del rol objetivo a través de IMDS. Si el rol objetivo tiene privilegios, se trata de una escalada total de privilegios contra una plantilla en la que ya se confiaba. NOTA: la ejecución queda DIFERIDA a un lanzamiento futuro desde la plantilla.
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 CreateLaunchTemplateVersion, ModifyLaunchTemplate. La llamada es ruidosa en CloudTrail y destaca de la actividad normal.
Detección
CreateLaunchTemplateVersionModifyLaunchTemplateRequisitos previos
Una plantilla de lanzamiento existente que hace referencia a un rol de perfil de instancia; permiso para crear una nueva versión de la plantilla y modificar su versión por defecto. La ejecución es DIFERIDA: el rol solo se controla cuando se lanza una instancia desde la plantilla (por ejemplo, mediante un grupo de Auto Scaling).
Táctica
Escalada de privilegios
Un control que lo eliminaría: Restringe ec2:CreateLaunchTemplateVersion y ec2:ModifyLaunchTemplate en las plantillas de lanzamiento que hacen referencia a un rol de perfil de instancia con privilegios; da preferencia a plantillas inmutables y bajo control de código fuente.
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 ec2:CreateLaunchTemplateVersion?
Puede inyectar user-data en una plantilla de lanzamiento, que se ejecutará con su rol en el siguiente lanzamiento.
¿Qué más hace falta para que ec2:CreateLaunchTemplateVersion sea peligroso?
Solo se convierte en escalada cuando se combina con ec2:ModifyLaunchTemplate. 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 la inyección de user-data en una plantilla de lanzamiento de EC2?
Vigila CreateLaunchTemplateVersion, ModifyLaunchTemplate 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 ec2:CreateLaunchTemplateVersion y ec2:ModifyLaunchTemplate en plantillas de lanzamiento que referencien un rol de perfil de instancia con privilegios; prefiere plantillas inmutables y bajo control de código fuente. 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.