GCP - Cloud Build Unauthenticated Enum
Cloud Build
Pour plus d'informations sur Cloud Build, consultez :
GCP - Cloud Build Enumcloudbuild.yml
Si vous compromettez l'accès en écriture sur un référentiel contenant un fichier nommé cloudbuild.yml
, vous pourriez installer une porte dérobée dans ce fichier, qui spécifie les commandes qui vont être exécutées à l'intérieur d'un Cloud Build et exfiltrer les secrets, compromettre ce qui est fait et compromettre également le compte de service Cloud Build.
Notez que GCP offre la possibilité aux administrateurs de contrôler l'exécution des systèmes de construction à partir de PR externes via le "Comment Control". Comment Control est une fonctionnalité où les collaborateurs/propriétaires de projet doivent commenter "/gcbrun" pour déclencher la construction par rapport à la PR et l'utilisation de cette fonctionnalité empêche intrinsèquement toute personne sur Internet de déclencher vos systèmes de construction.
Pour des informations connexes, vous pouvez consulter la page sur comment attaquer les actions Github (similaire à ceci) :
Abusing Github ActionsApprobations de PR
Lorsque le déclencheur est une PR car n'importe qui peut effectuer des PR sur des référentiels publics, il serait très dangereux de simplement autoriser l'exécution du déclencheur avec n'importe quelle PR. Par conséquent, par défaut, l'exécution ne sera automatique que pour les propriétaires et les collaborateurs, et pour exécuter le déclencheur avec les PR d'autres utilisateurs, un propriétaire ou un collaborateur doit commenter /gcbrun
.
Par conséquent, si cela est défini comme Non requis
, un attaquant pourrait effectuer une PR sur la branche qui déclenchera l'exécution en ajoutant l'exécution de code malveillant au fichier cloudbuild.yml
et compromettre l'exécution de cloudbuild (notez que cloudbuild téléchargera le code DE la PR, donc il exécutera le cloudbuild.yml
malveillant).
De plus, il est facile de voir si une exécution de cloudbuild doit être effectuée lorsque vous envoyez une PR car elle apparaît dans Github :
Ainsi, même si le cloudbuild n'est pas exécuté, l'attaquant pourra voir le nom du projet d'un projet GCP appartenant à l'entreprise.
Last updated