Attacher un profil d'instance, puis lire ses identifiants
Peut attacher le profil d'instance d'un rôle à une instance EC2 et voler ses identifiants via IMDS.
N'accorde l'escalade qu'en combinaison. Tous ces éléments sont nécessaires ensemble :
iam:PassRoleec2:AssociateIamInstanceProfileiam:PassRole peut attacher le profil d'instance d'un rôle à une instance EC2 et voler ses identifiants via IMDS, mais uniquement lorsqu'elle est détenue conjointement avec ec2:AssociateIamInstanceProfile. Détenues ensemble, elles atteignent l'accès administrateur.
Pourquoi c'est dangereux
Un principal détient iam:PassRole sur le rôle cible avec ec2:AssociateIamInstanceProfile, il peut donc attacher le profil d'instance du rôle cible à une instance EC2 qu'il contrôle puis lire les identifiants temporaires du rôle depuis IMDS. Contrairement à ec2:RunInstances, cela ne nécessite aucune nouvelle instance : cela repointe une machine existante vers un rôle plus privilégié, ce qui est plus discret et moins coûteux.
En termes MITRE ATT&CK, cela correspond à T1552.005, Identifiants non sécurisés : API de métadonnées d'instance cloud, dans la tactique escalade de privilèges. AWS l'enregistre dans CloudTrail sous AssociateIamInstanceProfile, ReplaceIamInstanceProfileAssociation. L'appel apparaît dans CloudTrail mais se fond dans l'administration normale, il lui faut donc une règle pour ressortir.
Détection
AssociateIamInstanceProfileReplaceIamInstanceProfileAssociationPrérequis
Une instance EC2 que l'attaquant contrôle ou peut atteindre, plus l'accès IMDS sur celle-ci. Le rôle doit se trouver dans un profil d'instance.
Tactique
Escalade de privilèges
Un contrôle qui le supprimerait : Retirer iam:PassRole pour ce rôle ou le restreindre avec iam:PassedToService ; restreindre ec2:AssociateIamInstanceProfile / ReplaceIamInstanceProfileAssociation.
La décision de l'appliquer dépend de la façon dont la permission est utilisée dans votre environnement, il s'agit donc d'une décision métier plutôt que d'un correctif automatique. La même permission peut être porteuse dans un compte et pur risque dans un autre.
Pathbreak confirme si ce chemin se résout dans votre compte, le classe par rapport aux autres selon l'ampleur de ce qu'il ouvre, et utilise votre modèle de menace et votre contexte métier pour montrer quels chemins valent la peine d'être coupés.
Questions
Que permet iam:PassRole ?
Peut attacher le profil d'instance d'un rôle à une instance EC2 et voler ses identifiants via IMDS.
Que faut-il d'autre pour que iam:PassRole soit dangereux ?
Cela ne devient une escalade que lorsqu'il est détenu conjointement avec ec2:AssociateIamInstanceProfile. À lui seul, il ne suffit pas, ce qui rend la combinaison facile à manquer.
Comment détecter l'attachement d'un profil d'instance, puis la lecture de ses identifiants ?
Surveillez AssociateIamInstanceProfile, ReplaceIamInstanceProfileAssociation dans CloudTrail. Cet appel apparaît dans CloudTrail mais se fond dans l'administration normale, il faut donc une règle pour le faire ressortir.
Comment briser ce chemin ?
Un contrôle qui le supprimerait est : Retirez iam:PassRole pour ce rôle ou restreignez-le avec iam:PassedToService ; limitez ec2:AssociateIamInstanceProfile / ReplaceIamInstanceProfileAssociation. L'appliquer ou non dépend de la manière dont l'autorisation est utilisée dans votre compte, il s'agit donc d'une décision métier plutôt que d'un correctif automatique.
De quelle technique MITRE ATT&CK s'agit-il ?
T1552.005, Identifiants non sécurisés : API de métadonnées d'instance cloud, dans la tactique escalade de privilèges.
Chemins associés
Références
Trouvez ceci dans votre propre compte
Nous réalisons un scan en lecture seule d'un compte AWS et vous montrons lesquels de ces chemins existent, classés par rayon d'impact, avec le changement qui brise chacun d'eux. Premiers chemins validés en moins d'une heure.