Transmettre un rôle à une tâche ECS (remplacement RunTask)
Peut exécuter une tâche ECS avec un rôle via une substitution taskRoleArn et exécuter un conteneur en son nom.
N'accorde l'escalade qu'en combinaison. Tous ces éléments sont nécessaires ensemble :
iam:PassRoleecs:RunTaskiam:PassRole peut exécuter une tâche ECS avec un rôle via une substitution taskRoleArn et exécuter un conteneur en son nom, mais uniquement lorsqu'elle est détenue conjointement avec ecs:RunTask. Détenues ensemble, elles atteignent l'accès administrateur.
Pourquoi c'est dangereux
Un principal détient iam:PassRole sur le rôle cible plus ecs:RunTask, il peut donc exécuter une définition de tâche ECS existante avec overrides.taskRoleArn défini sur le rôle cible et une commande de conteneur de l'attaquant, sans ecs:RegisterTaskDefinition. La tâche exécute la commande avec les permissions du rôle cible et lit les identifiants du rôle cible depuis l'endpoint de métadonnées de tâche. Comme le rôle cible fait confiance à ecs-tasks.amazonaws.com, la transmission est acceptée ; si le rôle cible est privilégié, il s'agit d'une escalade de privilèges complète, une variante à permission moindre de l'enregistrement puis exécution.
En termes MITRE ATT&CK, cela correspond à T1610, Déploiement de conteneur, dans la tactique escalade de privilèges. AWS l'enregistre dans CloudTrail sous RunTask. L'appel est bruyant dans CloudTrail et se démarque de l'activité normale.
Détection
RunTaskPrérequis
La politique d'approbation du rôle cible doit autoriser ecs-tasks.amazonaws.com ; une définition de tâche existante et un cluster où s'exécuter. Les substitutions de commande de conteneur + taskRoleArn doivent être autorisées (valeur par défaut).
MITRE ATT&CK
T1610 · Déploiement de conteneurTactique
Escalade de privilèges
Un contrôle qui le supprimerait : Retirer iam:PassRole pour ce rôle ou le restreindre avec iam:PassedToService ; refuser les substitutions taskRoleArn/command sur RunTask.
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 exécuter une tâche ECS avec un rôle via une substitution taskRoleArn et exécuter un conteneur en son nom.
Que faut-il d'autre pour que iam:PassRole soit dangereux ?
Cela ne devient une escalade que lorsqu'il est détenu conjointement avec ecs:RunTask. À lui seul, il ne suffit pas, ce qui rend la combinaison facile à manquer.
Comment détecter la transmission d'un rôle à une tâche ECS (remplacement RunTask) ?
Surveillez RunTask dans CloudTrail. Cet appel est bruyant dans CloudTrail et se démarque de l'activité normale.
Comment briser ce chemin ?
Un contrôle qui le supprimerait est : Retirez iam:PassRole pour ce rôle ou restreignez-le avec iam:PassedToService ; refusez les remplacements taskRoleArn/command sur RunTask. 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 ?
T1610, Déploiement de conteneur, 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.