Le Scanner Est Devenu la Menace

Trivy est un outil de sécurité. Les organisations l'utilisent spécifiquement pour protéger leurs pipelines de développement logiciel en analysant les images conteneur et les référentiels de code à la recherche de vulnérabilités connues et de secrets codés en dur. Avec 33 200 étoiles sur GitHub, c'est l'un des outils d'analyse de sécurité les plus largement déployés dans l'écosystème DevSecOps. Cette portée l'a rendu exceptionnellement attrayant.

Itay Shakury, mainteneur Trivy chez Aqua Security, a confirmé que les acteurs de menaces ont utilisé des identifiants volés pour forcer des envois de dépendances malveillantes dans pratiquement toutes les versions balisées de deux composants GitHub Actions principaux: trivy-action et setup-trivy. L'attaque a commencé tôt le matin d'un jeudi et n'a pas été détectée pendant des heures, pendant lesquelles les pipelines CI/CD automatisés dans le monde entier auraient pu extraire et exécuter le code compromis.

Que Signifie Forcer un Envoi

Un envoi forcé est une opération git qui contourne les mécanismes de sécurité protégeant les commits existants d'être écrasés. Pour GitHub Actions spécifiquement, c'est particulièrement dangereux. Lorsque les développeurs épinglent leurs workflows CI/CD sur une balise d'action Trivy spécifique - une pratique de sécurité courante destinée à assurer la reproductibilité - ils font confiance au fait que la balise pointe vers le même code qu'auparavant. Forcer des envois de code malveillant dans ces balises rompt silencieusement cette hypothèse : la configuration du pipeline semble inchangée mais exécute maintenant du code contrôlé par des attaquants avec les permissions que l'environnement CI/CD fournit.

Que Faisait le Code Malveillant

L'analyse des balises compromises a indiqué que les attaquants ont remplacé les dépendances légitimes de Trivy par des substituts malveillants conçus pour exécuter du code dans l'environnement de runner CI/CD. L'objectif était d'accéder aux secrets - tokens API, identifiants cloud, clés de signature et autres valeurs sensibles que les développeurs transmettent régulièrement aux pipelines.

Une action Trivy compromise s'exécutant dans un workflow GitHub Actions a accès à tout ce auquel le workflow a accès, ce qui dans de nombreuses organisations inclut les identifiants de déploiement en production, l'authentification du fournisseur cloud, les clés de signature d'artefacts et les référentiels de code source. Le rayon de blast potentiel d'une seule exfiltration peut s'étendre au compromis de l'infrastructure cloud, aux violations de données et à l'insertion de code malveillant dans les logiciels de production.

Réponse et Contexte Plus Large

Aqua Security a agi rapidement une fois le compromis confirmé, en effectuant une rotation des identifiants et en restaurant le code légitime dans toutes les balises affectées. L'équipe a conseillé à tous les utilisateurs de traiter tout pipeline ayant exécuté des actions Trivy pendant la fenêtre de compromis comme potentiellement affecté et de faire immédiatement tourner tous les secrets accessibles.

Consensus de la communauté de sécurité : épinglez GitHub Actions sur des hashes de commit SHA spécifiques plutôt que sur des noms de balises mutables. Les balises peuvent être forcées ; les hashes de commit ne peuvent pas être remplacés silencieusement sans détection. Cette meilleure pratique connue a connu une adoption lente, et cet incident accélèrera probablement les changements de politique CI/CD organisationnels. L'attaque est la dernière en date d'une liste croissante de compromis de chaîne d'approvisionnement ciblant les outils open source qui sous-tendent le développement logiciel moderne - une tendance qui ne montre aucun signe de ralentissement.

Cet article s'appuie sur les reportages d'Ars Technica. Lire l'article original.