Adjuntar un perfil de instancia y luego leer sus credenciales
Puede adjuntar el perfil de instancia de un rol a una instancia de EC2 y robar sus credenciales mediante IMDS.
Concede escalada solo en combinación. Se necesitan todos estos a la vez:
iam:PassRoleec2:AssociateIamInstanceProfileiam:PassRole puede asociar el perfil de instancia de un rol a una instancia EC2 y robar sus credenciales mediante IMDS, pero solo cuando se combina con ec2:AssociateIamInstanceProfile. Combinados, llegan a acceso de administrador.
Por qué es peligroso
Un principal tiene iam:PassRole sobre el rol objetivo junto con ec2:AssociateIamInstanceProfile, por lo que puede asociar el perfil de instancia del rol objetivo a una instancia de EC2 que controla y después leer las credenciales temporales del rol desde IMDS. A diferencia de ec2:RunInstances, no necesita una instancia nueva: reasigna una máquina existente a un rol más privilegiado, lo que es más discreto y más barato.
En términos de MITRE ATT&CK, esto corresponde a T1552.005, Credenciales no protegidas: API de metadatos de instancias cloud, bajo la táctica de escalada de privilegios. AWS lo registra en CloudTrail como AssociateIamInstanceProfile, ReplaceIamInstanceProfileAssociation. La llamada aparece en CloudTrail pero se confunde con la administración normal, así que necesita una regla para destacar.
Detección
AssociateIamInstanceProfileReplaceIamInstanceProfileAssociationRequisitos previos
Una instancia de EC2 que el atacante controla o a la que puede llegar, más acceso a IMDS en ella. El rol debe estar en un perfil de instancia.
Táctica
Escalada de privilegios
Un control que lo eliminaría: Elimina iam:PassRole para este rol o acótalo con iam:PassedToService; restringe ec2:AssociateIamInstanceProfile / ReplaceIamInstanceProfileAssociation.
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 adjuntar el perfil de instancia de un rol a una instancia de EC2 y robar sus credenciales mediante IMDS.
¿Qué más hace falta para que iam:PassRole sea peligroso?
Solo se convierte en escalada cuando se combina con ec2:AssociateIamInstanceProfile. 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 asociar un perfil de instancia y luego leer sus credenciales?
Vigila AssociateIamInstanceProfile, ReplaceIamInstanceProfileAssociation en CloudTrail. La llamada aparece en CloudTrail pero se confunde con la administración normal, así que necesita una regla para destacar.
¿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; restringe ec2:AssociateIamInstanceProfile / ReplaceIamInstanceProfileAssociation. 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?
T1552.005, Credenciales sin proteger: API de metadatos de instancias 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.