Les versions 1.82.7 et 1.82.8 de LiteLLM injectées avec un logiciel malveillant de vol d'identifiants
Deux versions de la populaire bibliothèque Python LiteLLM, un outil comptant 97 millions de téléchargements mensuels, ont été compromises lors d'une attaque de la chaîne d'approvisionnement, risquant le vol de portefeuilles de cryptomonnaies et de clés cloud. Le 24 mars, un acteur de la menace connu sous le nom de TeamPCP a publié les versions malveillantes 1.82.7 et 1.82.8 sur le Python Package Index (PyPI). Le logiciel malveillant intégré est une charge utile multi-étapes conçue pour collecter des données sensibles, y compris les clés SSH, les secrets Kubernetes et les clés privées pour les portefeuilles de cryptomonnaies, de tout environnement où les paquets compromis sont installés.
La deuxième version malveillante, 1.82.8, a introduit un vecteur d'attaque plus agressif en utilisant un fichier .pth. Cette technique permet au code malveillant de s'exécuter automatiquement chaque fois que l'interpréteur Python démarre, plutôt que d'attendre que la bibliothèque LiteLLM soit explicitement importée par le code d'un développeur. Cela élargit considérablement la portée de l'attaque et sa capacité à persister sur un système infecté.
La violation du pipeline CI/CD via le scanner Trivy a permis l'attaque
La compromission de LiteLLM n'était pas une attaque directe mais une défaillance en cascade provenant de son infrastructure de développement. Les attaquants ont d'abord subverti Trivy, un scanner de vulnérabilités open-source utilisé dans le pipeline d'intégration continue/livraison continue (CI/CD) de LiteLLM. En publiant des versions malveillantes de Trivy les 19 et 22 mars, TeamPCP a exploité une mauvaise configuration pour voler un jeton d'accès privilégié pour le projet LiteLLM.
Avec les identifiants volés, les attaquants ont pu publier les paquets LiteLLM dotés de portes dérobées directement sur PyPI. Les chercheurs en sécurité ont découvert que les données collectées étaient envoyées sous forme d'archive chiffrée à un domaine de commande et de contrôle contrôlé par l'attaquant, models.litellm[.]cloud. Une porte dérobée persistante a également été installée pour interroger un domaine distinct, checkmarx[.]zone, toutes les 50 minutes afin d'obtenir de nouvelles commandes ou charges utiles, indiquant une stratégie d'intrusion à long terme.
TeamPCP promet d'autres attaques, le risque de la chaîne d'approvisionnement s'intensifie
L'incident LiteLLM fait partie d'une campagne délibérée et croissante de TeamPCP ciblant les infrastructures de développeurs critiques. Le groupe a ouvertement revendiqué l'attaque sur son canal Telegram, déclarant son intention de continuer à cibler les outils populaires et à perpétuer le chaos. Cela élève l'incident d'une simple violation de projet à une menace systémique contre la chaîne d'approvisionnement de logiciels open-source.
La chaîne d'approvisionnement open source est en train de s'effondrer. Trivy est compromis → LiteLLM est compromis → les identifiants de dizaines de milliers d'environnements finissent entre les mains des attaquants → et ces identifiants mènent à la prochaine compromission. Nous sommes coincés dans une boucle.
— Gal Nagli, responsable de l'exposition aux menaces chez Wiz, propriété de Google.
Ce cycle de compromission, où les identifiants volés lors d'une attaque sont utilisés pour lancer la suivante, crée un effet boule de neige significatif. Pour les investisseurs et les développeurs dans l'espace Web3, cette attaque sape la confiance dans la sécurité des outils de développement fondamentaux et augmente le risque opérationnel pour les projets qui dépendent de l'écosystème open-source.