TeamPCP attaque la chaîne d'approvisionnement du logiciel : s'engage à voler des lettres d'identité et à pivoter dans Kubernetes

Publié 7 min de lectura 170 lecture

Une nouvelle vague dans la guerre sur la chaîne d'approvisionnement logiciel montre à nouveau à quel point l'écosystème open source peut être fragile: l'acteur malveillant connu sous le nom de TeamPCP a pu violer une librairie populaire Python, Litellm, et publier des versions avec code malveillant qui se propagent aux environnements de développement et de production. Enquêteurs de sécurité, y compris Endor Labs et JFrog ont documenté comment les versions 1 82.7 et 1 82.8, téléchargées le 24 mars 2026, contenaient une charge utile complexe conçue pour voler des identifiants, se déplacer latéralement dans Kubernetes et établir une porte arrière persistante.

Le vecteur de l'intrusion semble être lié à l'intégration des outils de sécurité dans les pipelines CI / CD: la pension publique de montre l'utilisation de Trivy dans ses flux, et cette unité opérationnelle aurait été exploitée par les attaquants pour insérer la modification malveillante avant que les roues (roues) soient publiées dans PyPI, d'où il a été téléchargé par des projets et des environnements de toutes sortes. Les versions compromises ont déjà été retirées du dépôt officiel, mais les dommages potentiels étaient déjà en cours.

TeamPCP attaque la chaîne d'approvisionnement du logiciel : s'engage à voler des lettres d'identité et à pivoter dans Kubernetes
Image générée avec IA.

D'un point de vue technique, la campagne utilise une chaîne en trois étapes qui la rend particulièrement dangereuse. Tout d'abord, un collector d'identification suit les clés SSH, les identifiants cloud, les secrets Kubernetes, les portefeuilles cryptomoneda et les fichiers .env.. Cette information est emballée et envoyée cryptée sur un serveur de commande; selon l'analyse, le fichier est appelé "tpcp.tar.gz" et est envoyé par une requête HTTPS à models.litellm [.] nuage. En parallèle, la charge initiale tente de grimper dans les environnements de Kubernetes : si vous détectez un jeton de service, utilisez l'API du cluster pour lister les nœuds et déployer des pods privilégiés qui, à leur tour, chroot dans le système de fichiers hôte pour installer un dropper persistant comme service système. Enfin, ce service persistant - enregistré comme ~ / .config / sysmon / sysmon.py, le même nom qui apparaissait dans les engagements précédents liés à Trivy - consulter régulièrement Checkmarx [.] zone / ligne pour des instructions supplémentaires ou binaires. Un détail curieux et fréquent dans ces campagnes est la présence d'un "switch de compétences" : si l'URL récupérée contient youtube [.] com, le code avorte l'exécution.

Les deux versions malveillantes utilisaient différentes techniques pour maximiser leur portée. En 182.7, le code a été intégré dans litellm / proxy / proxy _ serveur. py et a été conçu pour fonctionner lors de l'importation de ce module, donc tout processus qui a fait l'importation de litellm. proxy.proxy _ serveur a activé la charge sans interaction utilisateur. Dans l'itération suivante, 1 82.8, les attaquants étaient plus agressifs : ils ont ajouté un fichier litellm _ init.pth à la racine de la roue. Les fichiers .pth sont automatiquement traités par site. py quand vous démarrez l'interpréteur Python, de sorte que cette technique vous permet d'exécuter du code à chaque fois que tout processus Python commence dans l'environnement, pas seulement quand litelm est importé. En outre, le .pth invoque un sous-processus en arrière-plan en utilisant sous-processus. Papen, qui facilite l'exécution non remarquée de la charge malveillante comme un processus enfant.

Cet orchestre décodé découvre le collecteur d'identités et l'installateur de persistance. Le mécanisme de mouvement latéral dans Kubernetes monte des gousses avec des privilèges qui font un chroot au système hôte - une technique connue et largement décrite dans la littérature technique ( Chroot) - et de déployer le service système qui agit comme une porte d'entrée persistante pour les téléchargements ultérieurs de charge utile. La stratégie d'exfiltration, la persistance par systemd et le modèle Kill Switch sont compatibles avec d'autres intrusions attribuées à cet acteur.

Cet épisode n'est pas un cas isolé: TeamPC a montré un modèle d'escalade qui fait partie d'outils compromettants dans les pipelines CI / CD et finit par atteindre les environnements de production par des artefacts prétendument fiables. Selon l'analyse publique, la campagne a affecté plusieurs écosystèmes - GitHub Actions, Docker Hub, npm, Open VSX et maintenant PyPI - en élargissant sa capacité d'agir sur une base d'infrastructure et de projet très diversifiée. Plusieurs experts de l'industrie ont mis en garde contre l'effet domino: un outil engagé peut donner des clés pour violer les autres, dans un cycle qui est alimenté. Les organisations et les équipes de développement sont donc contraintes de réagir à une menace qui attaque au cœur de la confiance dans la chaîne d'approvisionnement des logiciels.

Les chercheurs et les fournisseurs ont publié des rapports techniques et des recommandations qui devraient être lus pour comprendre la portée et l'atténuation. Rapports tels que Endor Labs et JFrog fournir des détails sur le comportement malware et comment il a été inséré, tandis que l'analyse complémentaire dans les médias spécialisés résume le moment de l'attaque et les signaux d'engagement.

Si vous gérez des environnements à l'aide de Python, de conteneurs automatisés ou de pipelines, il est prioritaire d'examiner si l'une des versions compromises de litelm ont été téléchargées. Les installations d'audit dans les environnements virtuels et les systèmes de production, la recherche de fichiers suspects dans les paquets de sites (comme litelm _ init.pth), la vérification des processus Python en arrière-plan et la vérification des services persistants installés sous ~ / .config / sysmon sont des étapes initiales urgentes. Il est également nécessaire d'inspecter les grappes Kubernetes par des pods non autorisés ou avec des privilèges élevés, et d'analyser les enregistrements réseau à la recherche de trafic sortant vers des domaines liés à l'opération, en particulier models.litellm [.] nuage et Zone de Checkmarx [.]. Il n'est pas moins important de vérifier les pipelines CI / CD pour déterminer si des outils tels que Trivy ou KICS ont été utilisés dans la fenêtre de fiançailles et, le cas échéant, pour faire pivoter et révoquer les pouvoirs qui ont pu être exposés.

TeamPCP attaque la chaîne d'approvisionnement du logiciel : s'engage à voler des lettres d'identité et à pivoter dans Kubernetes
Image générée avec IA.

La communauté de la sécurité a déjà réagi et a partagé des outils et des techniques de détection, mais les gestionnaires de l'infrastructure doivent agir rapidement et prudemment : isoler les hôtes engagés, éliminer les mécanismes de persistance identifiés, reconstruire les dispositifs critiques à partir d'un code source propre et faire pivoter les clés et les références sont des mesures qui, bien que coûteuses, limitent la capacité de l'agresseur à progresser vers de nouveaux objectifs. Parallèlement, il est nécessaire de repenser les politiques de confiance dans les artefacts externes et de renforcer les essais et la surveillance dans les pipelines.

Le bronze public du groupe lui-même, répandu sur sa chaîne Telegram, indique clairement que son intention est de prolonger et d'étendre la campagne ; et les voix du secteur, comme celle de Gal Nagli de Wiz, ont souligné le caractère cyclique du problème : compromettre un outil de sécurité peut déclencher de multiples engagements en cascade. Pour ceux qui maintiennent des projets et des unités, la leçon est douloureuse mais nécessaire : ne pas prendre les unités de sécurité comme inoffensives et renforcer les barrières de protection autour des processus qui génèrent, emballer et publier des logiciels.

Pour approfondir les rapports techniques et l'évolution de cet incident, je recommande de lire l'analyse de Endor Labs, le rapport JFrog et les pièces qui résument le cas dans les médias spécialisés, ainsi que suivre les mises à jour sur les canaux officiels où des preuves et des CIO ont été publiés. La sécurité de la chaîne d'approvisionnement est aujourd'hui une question critique et collective : la protection de la chaîne exige à la fois des meilleures pratiques techniques et une coordination entre les développeurs, les gestionnaires de projets et les équipes de sécurité.

Couverture

Autres

Plus de nouvelles sur le même sujet.