Détourner la configuration de la fonction Lambda
Peut attacher une couche malveillante à une fonction et exécuter du code avec son rôle d'exécution.
Accorde l'escalade à lui seul.
lambda:UpdateFunctionConfigurationÀ lui seul, lambda:UpdateFunctionConfiguration peut attacher une couche malveillante à une fonction et exécuter du code avec son rôle d'exécution. Sur un périmètre de ressources large, cela atteint à lui seul l'accès administrateur.
Pourquoi c'est dangereux
Un principal peut appeler lambda:UpdateFunctionConfiguration sur une fonction existante qui s'exécute en tant que la fonction, attachant une couche Lambda contrôlée par l'attaquant (ou changeant le runtime, le handler ou l'environnement) afin que le code de l'attaquant se charge à la prochaine invocation, sans écraser le code publié de la fonction. Ce code s'exécute avec les permissions de la fonction et lit les identifiants actifs de la fonction depuis l'environnement d'exécution Lambda, sans iam:PassRole, car la fonction est déjà liée à la fonction. Si la fonction est privilégiée, il s'agit d'une escalade de privilèges complète contre une fonction 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 UpdateFunctionConfiguration20150331v2, UpdateFunctionConfiguration. L'appel apparaît dans CloudTrail mais se fond dans l'administration normale, il lui faut donc une règle pour ressortir.
Détection
UpdateFunctionConfiguration20150331v2UpdateFunctionConfigurationPrérequis
Une fonction Lambda existante avec un rôle d'exécution ; la permission de mettre à jour sa configuration. L'exécution a lieu au prochain déclenchement (ou lors d'une invocation que l'attaquant peut provoquer) ; la modification de la couche/du runtime est la seule écriture nécessaire.
Tactique
Escalade de privilèges
Un contrôle qui le supprimerait : Restreindre lambda:UpdateFunctionConfiguration aux principaux CI/CD ; réduire les permissions du rôle d'exécution de la fonction.
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 lambda:UpdateFunctionConfiguration ?
Peut attacher une couche malveillante à une fonction et exécuter du code avec son rôle d'exécution.
lambda:UpdateFunctionConfiguration permet-il à lui seul une escalade de privilèges ?
Oui. Détenue sur une ressource suffisamment large, elle atteint l'accès administrateur sans aucune autre permission.
Comment détecter le détournement de la configuration de la fonction Lambda ?
Surveillez UpdateFunctionConfiguration20150331v2, UpdateFunctionConfiguration 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 : Limitez lambda:UpdateFunctionConfiguration aux principaux CI/CD ; réduisez les permissions du rôle d'exécution de la fonction. 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.