Détourner le rôle de machine à états Step Functions
Peut réécrire une machine à états et appeler AWS directement sous son rôle d'exécution.
N'accorde l'escalade qu'en combinaison. Tous ces éléments sont nécessaires ensemble :
states:UpdateStateMachinestates:StartExecutionstates:UpdateStateMachine peut réécrire une machine à états et appeler AWS directement en tant que rôle d'exécution, mais uniquement lorsqu'elle est détenue conjointement avec states:StartExecution. Détenues ensemble, elles atteignent l'accès administrateur.
Pourquoi c'est dangereux
Un principal peut appeler states:UpdateStateMachine sur une state machine Step Functions existante qui porte déjà le rôle d'exécution, remplaçant sa définition ASL par une dont la tâche d'intégration SDK appelle AWS directement (par exemple iam:AttachUserPolicy), puis states:StartExecution pour l'exécuter. La tâche s'exécute en tant que la fonction, sans iam:PassRole ni states:CreateStateMachine, car la fonction est déjà liée à la state machine. Si la fonction est privilégiée, il s'agit d'une escalade de privilèges complète contre une state machine qui était déjà de confiance.
En termes MITRE ATT&CK, cela correspond à T1578, Modification de l'infrastructure de calcul cloud, dans la tactique escalade de privilèges. AWS l'enregistre dans CloudTrail sous UpdateStateMachine, StartExecution. L'appel est bruyant dans CloudTrail et se démarque de l'activité normale.
Détection
UpdateStateMachineStartExecutionPrérequis
Une machine à états existante avec un rôle d'exécution ; la permission de mettre à jour sa définition et de démarrer une exécution.
Tactique
Escalade de privilèges
Un contrôle qui le supprimerait : Restreindre states:UpdateStateMachine / states:StartExecution sur les machines à états qui portent un rôle d'exécution privilégié.
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 states:UpdateStateMachine ?
Peut réécrire une machine à états et appeler AWS directement sous son rôle d'exécution.
Que faut-il d'autre pour que states:UpdateStateMachine soit dangereux ?
Cela ne devient une escalade que lorsqu'il est détenu conjointement avec states:StartExecution. À lui seul, il ne suffit pas, ce qui rend la combinaison facile à manquer.
Comment détecter le détournement du rôle de machine à états Step Functions ?
Surveillez UpdateStateMachine, StartExecution 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 : Limitez states:UpdateStateMachine / states:StartExecution sur les machines à états qui portent un rôle d'exécution privilégié. 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 ?
T1578, Modification de l'infrastructure de calcul 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.