Trivy sous attaque chaîne d'approvisionnement expose les lettres de créances dans les pipelines

Publié 7 min de lectura 131 lecture

Il y a quelques jours, la communauté des développeurs et des équipes de sécurité a reçu une nouvelle inquiétante : le scanner de sécurité populaire Trivy a été utilisé comme vecteur dans une attaque de chaîne d'approvisionnement. Les chercheurs et le projet lui-même ont confirmé qu'une version officielle du logiciel et plusieurs actions GitHub connexes ont été coupées pour inclure un malware conçu pour voler des identifiants et persister dans des systèmes compromis.

La découverte initiale vient du chercheur Paul McCarty, qui a alerté sur une version backdoor de Trivy (v0.69.4). Analyse technique ultérieure des groupes spécialisés, y compris Socket et Wiz, ils ont détaillé comment les attaquants ont non seulement publié un binaire dans la version, mais aussi compromis le processus de construction dans GitHub Actions et modifié les étiquettes du dépôt aquasécurité / trivy-action, rediriger presque toutes les balises de version vers des engagements malveillants.

Trivy sous attaque chaîne d'approvisionnement expose les lettres de créances dans les pipelines
Image générée avec IA.

Selon les chercheurs, l'acteur responsable (lié à un groupe appelé ÉquipePCP, également identifié comme DeadCatx3 ou PCPcat) a explosé des lettres de créance qui avaient été exfiltrées lors d'un incident antérieur en mars. Avec l'accès écrit au dépôt, les attaquants ont forcé les tags à mettre à jour: en particulier, il a été signalé que 75 des 76 tags du dépôt trivy-action ont été réécrits, de sorte que les flux externes qui se référaient à ces tags exécuté code malveillant avant d'exécuter l'analyse légitime de Trivy.

L'échantillon affiché a agi comme un infostealer axé sur la localisation des secrets. Dans les environnements CI / CD, le script malveillant a suivi l'information de reconnaissance du coureur et les régions de mémoire numérisées du GitHub Actions Runner. Processus de travail à la recherche de chaînes JSON qui définissaient des secrets (modèles du type contenant « isSecret » : true). Dans les machines de développement, les variables d'environnement recueillies binairement, ont examiné les fichiers locaux pour trouver des identifiants et des interfaces réseau énumérées. L'analyse montre que les logiciels malveillants recherchaient des clés SSH, des fichiers de configuration Git, des jetons de services cloud (AWS, GCP, Azure), des fichiers .env, des identifiants de base de données, des paramètres CI / CD comme Jenkins ou Terraform, des clés TLS, des histoires de shell et même des portefeuilles de cryptomoneda.

Les données recueillies ont été emballées et cryptées dans un fichier appelé tpcp.tar.gz puis essayer de l'exfiltration vers un serveur de commande et de contrôle avec un domaine intentionnellement typosquatscan.aquascurtiy [.] org. Si l'exfiltration directe a échoué, les logiciels malveillants ont utilisé une voie d'évasion ingénieuse: il a créé un dépôt public dans le compte GitHub de la victime appelé Tpcp-docs Et il aurait les données volées là-haut. Pour atteindre la persistance locale, il a également laissé une charge utile dans~ / .config / systemd / utilisateur / sysmon. pyet enregistré comme un service système qui a consulté à distance pour télécharger des charges supplémentaires.

Une piste directe dans le code lui-même a permis aux équipes d'analyse de lier la campagne à TeamPCP : l'une des charges utiles de Python contenait un commentaire final qui s'identifiait comme "TeamPCP Voleur Cloud", et des tactiques qui profitent d'infrastructures mal configurées ou de jetons volés s'inscrivent dans des activités déjà documentées pour cet acteur, selon les chercheurs de Socket. Les équipes d'Aqua Security ont publiquement confirmé que l'intrusion était possible parce que le confinement de l'incident précédent était incomplet et que, bien que des secrets aient été échangés, le processus ne garantissait pas que les jetons renouvelés n'avaient pas été interceptés. La déclaration de l'organisation se trouve dans sa discussion officielle à GitHub : Aqua Security - discussion.

Quant aux fenêtres temporaires, la version malveillante de Trivy (v0.69.4) a été accessible au public pendant environ trois heures, tandis que les étiquettes compromises de GitHub Actions sont restées actives jusqu'à douze heures dans certains cas, suffisamment de temps pour que de nombreux pipelines puissent exécuter le code sans publicité. Compte tenu de ce qui précède, les recommandations des équipes médico-légales étaient solides : les organisations qui ont utilisé les versions touchées pendant la période considérée devraient être prises en considération. entièrement engagés, tourner immédiatement toutes les clés, jetons et mots de passe, et effectuer une analyse complète des systèmes pour détecter les mouvements latéraux ou la présence persistante.

La portée du problème ne se limitait pas à Trivy. Recherche Aïkido a lié le même acteur à une campagne secondaire basée sur un ver autoréplicateur appelé CanisterWorm qui attaque l'écosystème npm. Ce malware vole des jetons npm et automatise la publication de mises à jour malveillantes dans des paquets utilisateurs compromis, se propageant extrêmement rapidement: dans les tests on a observé comment il a repris des projets et publié des charges dans des dizaines de paquets en moins d'une minute. Pour la distribution de charges supplémentaires, il utilise un mécanisme de dépose dédié basé sur des conteneurs Internet Computer (ICP), ce qui rend l'infrastructure de contrôle et de contrôle plus perturbatrice, car ces conteneurs ne peuvent être retirés par leur contrôleur que par un processus de gouvernance réseau. Plus de détails techniques sur ce vecteur sont disponibles dans l'analyse Aikido et dans le panneau des conteneurs PCI: Internet Ordinateur - conteneurs.

La campagne combine deux tendances dangereuses que nous avons observées ces dernières années : la victime privilégiée est des outils qui sont souvent exécutés dans des pipelines et des environnements de développement - c'est-à-dire des points avec accès à des secrets sensibles - et l'utilisation d'infrastructures décentralisées ou non conventionnelles pour cacher et renforcer le fonctionnement de l'agresseur. Le résultat est une attaque qui peut rester invisible pendant la phase d'exécution (parce que le binaire chipped fonctionne dans le cadre du workflow légitime) et peut rapidement monter à d'autres dépôts ou paquets une fois qu'il obtient des jetons valides.

Trivy sous attaque chaîne d'approvisionnement expose les lettres de créances dans les pipelines
Image générée avec IA.

Si vous gérez des pipelines, des dépôts ou des environnements nuageux, plusieurs mesures doivent être prises immédiatement. Vérifiez si votre organisation a exécuté Trivy v0.69.4 ou des références aux balises compromises du dépôt trivy-action pendant les fenêtres indiquées. Revolver et rééditer les identifiants et les jetons, non seulement dans les services cloud, mais aussi dans les gestionnaires de paquets et les comptes GitHub. Audits des coureurs et des machines de développement pour la persistance (p. ex.~ / .config / systemd / utilisateur / sysmon. pyou d'autres services inconnus), à la recherche de dépôts publics appelés similarités avec Tpcp-docs dans les comptes propres ou partenaires, et analyse le journal pour identifier les exfiltrations inhabituelles ou les accès. Les rapports d'analyse sont disponibles aux fins d'orientation en matière d'atténuation et de renseignements techniques supplémentaires : Socket, le blog de Wiz et le débat Aqua Sécurité.

Cet incident souligne à nouveau que les outils de sécurité sont également des cibles précieuses pour les attaquants : leur présence dans les pipelines et leur capacité d'accéder aux artefacts ou aux secrets en font des vecteurs privilégiés s'ils sont compromis. Maintenir des processus atomiques et vérifiables pour la rotation clé, appliquer la signature de l'appareil et la reproductibilité dans les bâtiments, isoler les coureurs et réduire au minimum l'utilisation de pouvoirs de grande portée dans les pipelines sont des mesures qui réduisent les risques, mais n'éliminent pas la nécessité d'une intervention rapide et d'un engagement prudent lorsque de telles lacunes se produisent.

Pour ceux qui veulent approfondir les analyses originales, voici les sources techniques citées dans ce rapport: Avis initial de Paul McCarty dans LinkedIn ( lien), l'analyse de Socket ( lien), le rapport Wiz ( lien), la discussion officielle de Aqua Security à GitHub ( lien) et l'analyse sur le CanisterWorm d'Aikido ( lien).

Couverture

Autres

Plus de nouvelles sur le même sujet.