Les packages compromis, liés à la faille Trivy, ont exécuté une charge utile en trois étapes ciblant les configurations AWS, GCP, Azure, Kubernetes, les clés SSH et les pipelines d’automatisation avant d’être supprimés.
PyPI met en garde contre un possible vol d’informations d’identification dans les applications d’IA et les pipelines de développeurs après que deux versions malveillantes du middleware Python largement utilisé pour les grands modèles de langage, LiteLLM, aient été brièvement publiées.
« Quiconque a installé et exécuté le projet doit supposer que toutes les informations d’identification disponibles dans l’environnement LiteLLM peuvent avoir été exposées, et les révoquer/faire pivoter en conséquence », a déclaré PyPI dans un avis liant l’incident à une dépendance Trivy exploitée de l’attaque en cours de la chaîne d’approvisionnement TeamPCP.
Selon une analyse de Sonatype, les packages intégraient une charge utile à plusieurs étapes conçue pour récolter des données sensibles à partir des environnements de développement, des pipelines CI/CD et des configurations cloud, et étaient en ligne sur PyPI pendant environ deux heures avant d’être supprimés.
« Compte tenu des trois millions de téléchargements quotidiens du package, le LiteLLM compromis aurait pu être exposé de manière significative au cours de cette courte période », ont déclaré les chercheurs de Sonatype dans un article de blog. En plus de servir de voleur, les packages agissaient également comme des droppers, permettant des charges utiles de suivi et une compromission plus profonde du système.
Charge utile en trois étapes conçue pour une portée maximale
Le compromis affectait les versions 1.82.7 et 1.82.8. L’analyse de Sonatype a noté que la charge utile fonctionnait en trois étapes distinctes. Celles-ci comprenaient l’exécution initiale et l’exfiltration des données, une reconnaissance plus approfondie et la collecte d’informations d’identification, et enfin la persistance des capacités de contrôle à distance.
La chaîne d’attaque s’est fortement appuyée sur l’obscurcissement, le code Python codé en base64 masquant les traces de la charge utile. Une fois exécuté, le logiciel malveillant collectait des données sensibles, les chiffrait à l’aide d’AES-256-CBC, puis sécurisait la clé de chiffrement avec une clé publique RSA intégrée avant de tout envoyer aux serveurs contrôlés par les attaquants.
La divulgation a mis en évidence une approche courante que les attaquants suivent de nos jours. Au lieu de se déclencher immédiatement après l’installation, le malware s’attarde discrètement pour cartographier l’environnement et prendre pied, avant d’extraire les informations d’identification des machines locales, des configurations cloud et des pipelines d’automatisation.
« Il (charge utile) cible les variables d’environnement (y compris les clés et jetons API), les clés SSH, les informations d’identification cloud (AWS, GCP, Azure), les configurations Kubernetes, les secrets CI/CD, les configurations Docker, les informations d’identification de base de données et même les portefeuilles de crypto-monnaie », ont déclaré les chercheurs de Wiz, qui suivent séparément la campagne, dans un article de blog. « Nos données montrent que LiteLLM est présent dans 36 % des environnements cloud, ce qui signifie un potentiel d’impact généralisé. »
Wiz a également fourni à ses clients un moyen de vérifier l’exposition de leur environnement via le Wiz Threat Center.
Une campagne en expansion sur la chaîne d’approvisionnement
Il a été confirmé que l’incident LiteLLM faisait partie de la campagne de chaîne d’approvisionnement TeamPCP qui se déroulait rapidement et qui a compromis pour la première fois Trivy.
Trivy, développé par Aqua Security, est un scanner de vulnérabilités open source largement utilisé conçu pour identifier les problèmes de sécurité dans les images de conteneurs, les systèmes de fichiers et les configurations d’infrastructure en tant que code (IaC). L’attaque en cours, attribuée à TeamPCP avec des liens signalés vers LAPSUS$, impliquait des attaquants compromettant les informations d’identification de publication et injectant du code de vol d’informations d’identification dans les versions officielles et les actions GitHub utilisées dans les pipelines CI/CD.
La compromission Trivy a été rapidement suivie par des incidents similaires dans la chaîne d’approvisionnement, les attaquants exploitant le même accès et les mêmes tactiques pour cibler d’autres outils de sécurité des développeurs comme KICS et Checkmarx, étendant ainsi la portée de la campagne à plusieurs écosystèmes CI/CD.
L’avis PyPI a lié l’incident LiteLLM directement au compromis Trivy. Les packages malveillants ont été téléchargés « après une exposition de jetons API provenant d’une dépendance Trivy exploitée », indique-t-il.
Ben Read, chercheur principal chez Wiz, la qualifie de campagne systématique qui doit être surveillée en vue d’une expansion ultérieure. « Nous assistons à une convergence dangereuse entre les attaquants de la chaîne d’approvisionnement et des groupes d’extorsion de premier plan comme LAPSUS$ », a-t-il déclaré. « En se déplaçant horizontalement à travers l’écosystème – en utilisant des outils comme liteLLM qui sont présents dans plus d’un tiers des environnements cloud – ils créent un effet boule de neige. «
PyPI a conseillé aux utilisateurs de faire alterner tous les secrets accessibles à l’environnement LiteLLM concerné, alors que les chercheurs confirment l’exfiltration active des données et l’exposition potentielle dans les environnements cloud liés à la campagne en cours.



