Détourner le rôle de l'instance cible CodeDeploy
Peut déployer une révision malveillante et exécuter un script en tant que rôle des instances cibles.
N'accorde l'escalade qu'en combinaison. Tous ces éléments sont nécessaires ensemble :
codedeploy:CreateDeploymentcodedeploy:RegisterApplicationRevisioncodedeploy:CreateDeployment peut déployer une révision malveillante et exécuter un script en tant que rôle des instances cibles, mais uniquement lorsqu'elle est détenue conjointement avec codedeploy:RegisterApplicationRevision. Détenues ensemble, elles atteignent l'accès administrateur.
Pourquoi c'est dangereux
Un principal peut appeler codedeploy:CreateDeployment sur un groupe de déploiement existant dont les instances EC2 cibles portent déjà le rôle de profil d'instance, en déployant une révision dont le hook de cycle de vie appspec.yml exécute un script shell de l'attaquant en tant que root sur ces instances. Le script lit les identifiants actifs du groupe depuis IMDS, sans iam:PassRole, car le groupe est déjà lié aux machines. Si le groupe est privilégié, il s'agit d'une escalade de privilèges complète contre des instances qui étaient 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 CreateDeployment, RegisterApplicationRevision. L'appel est bruyant dans CloudTrail et se démarque de l'activité normale.
Détection
CreateDeploymentRegisterApplicationRevisionPrérequis
Un groupe de déploiement existant ciblant des instances EC2 avec un profil d'instance ; l'agent CodeDeploy en cours d'exécution sur celles-ci ; un bucket S3 pour préparer la révision ; la permission de créer un déploiement. Les hooks de cycle de vie appspec doivent être autorisés (valeur par défaut).
Tactique
Escalade de privilèges
Un contrôle qui le supprimerait : Restreindre codedeploy:CreateDeployment sur les groupes de déploiement dont les instances cibles portent un profil d'instance privilégié ; examiner les hooks de cycle de vie appspec.
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 codedeploy:CreateDeployment ?
Peut déployer une révision malveillante et exécuter un script en tant que rôle des instances cibles.
Que faut-il d'autre pour que codedeploy:CreateDeployment soit dangereux ?
Cela ne devient une escalade que lorsqu'il est détenu conjointement avec codedeploy:RegisterApplicationRevision. À lui seul, il ne suffit pas, ce qui rend la combinaison facile à manquer.
Comment détecter le détournement du rôle de l'instance cible CodeDeploy ?
Surveillez CreateDeployment, RegisterApplicationRevision 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 codedeploy:CreateDeployment sur les groupes de déploiement dont les instances cibles portent un profil d'instance privilégié ; examinez les hooks de cycle de vie appspec. 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.