Forcepoint détaille l'attaque de la chaîne d'approvisionnement TeamPCP qui a transformé LiteLLM en un voleur d'informations d'identification

Un nouveau rapport publié aujourd'hui par l'équipe de recherche X-Labs de la société de cybersécurité Forcepoint LLC détaille une attaque de la chaîne d'approvisionnement qui a compromis LiteLLM, une bibliothèque Python open source largement utilisée qui sert de passerelle unifiée à plus de 100 grands fournisseurs de modèles de langage, transformant deux versions malveillantes du package en un outil de vol d'informations d'identification destiné aux environnements cloud et d'intelligence artificielle.

L'attaque, attribuée à un groupe d'acteurs menaçants identifié comme TeamPCP, a poussé les versions malveillantes 1.82.7 et 1.82.8 de LiteLLM vers l'index des packages Python. La compromission ne provient pas d'une violation du référentiel de code source de LiteLLM. Au lieu de cela, les attaquants ont atteint le package via son pipeline de construction après avoir d'abord empoisonné Trivy, un scanner de vulnérabilités open source populaire utilisé dans le flux de travail d'intégration et de déploiement continu de LiteLLM.

Selon Forcepoint, TeamPCP avait précédemment repris Trivy en usurpant les identités légitimes des responsables et en poussant des validations usurpées, puis en déclenchant le pipeline de versions automatisées du projet pour distribuer des binaires dérobés via les versions GitHub, Docker Hub et Amazon ECR. Lorsque le travail d'intégration et de livraison continue de LiteLLM a extrait la version compromise de Trivy, le binaire malveillant a gratté la mémoire du coureur et exfiltré un jeton PYPI_PUBLISH. Les attaquants ont utilisé les informations d'identification volées pour publier leurs propres versions LiteLLM directement sur PyPI.

Les deux versions malveillantes utilisaient des techniques d'injection différentes. La version 1.82.7 contenait une charge utile codée en Base64 intégrée dans proxy_server.py qui s'exécutait au démarrage du proxy LiteLLM. La version 1.82.8 a adopté une approche plus furtive, en déposant un fichier litelllm_init.pth dans les packages de site afin que la charge utile s'exécute au démarrage de l'interpréteur Python à chaque processus ultérieur, que LiteLLM ait déjà été explicitement importé ou non. Une « installation pip » standard de la version corrompue suffisait pour l’activer.

Une fois active, la charge utile a analysé les variables d'environnement et les fichiers de configuration pour les informations d'identification des services cloud et IA. Les cibles comprenaient les clés API OpenAI Group PBC, Anthropic PBC et Microsoft Azure, ainsi que les informations d'identification Amazon Web Services Inc., Google Cloud et Azure SDK. Le logiciel malveillant a également extrait les fichiers kubeconfig locaux et les fichiers d'informations d'identification AWS des répertoires personnels des utilisateurs.

Les données collectées ont été cryptées avec une clé de session AES-256-CBC de 32 octets dérivée via PBKDF2, regroupées dans un fichier nommé tpcp.tar.gz et exfiltrées via curl vers un domaine sur models.litellm.cloud, un sosie contrôlé par l'attaquant du domaine légitime LiteLLM.

Forcepoint indique que le malware a également installé une porte dérobée d'interrogation appelée Sysmon.py pour la persistance. Le script dort pendant 300 secondes lors de la première exécution, puis vérifie une URL distante sur checkmarx.zone toutes les 50 minutes pour de nouvelles instructions, télécharge tout binaire renvoyé dans /tmp/pglog et l'exécute en arrière-plan.

« Ce qui rend cette campagne particulièrement dangereuse pour les équipes d'IA et de ML, c'est la nature de la cible », a écrit Prashant Kumar, chercheur principal chez Forcepoint X-Labs, dans le rapport.  » LiteLLM fonctionne comme une passerelle unifiée vers les principaux fournisseurs d'IA, ce qui signifie qu'une seule compromission a donné aux attaquants un accès simultané aux informations d'identification OpenAI, Anthropic et Azure. La perte d'une bibliothèque signifie effectivement perdre le contrôle d'accès sur plusieurs fournisseurs d'IA connectés à la fois. « 

Cette compromission fait écho à une enquête parallèle menée par les laboratoires de sécurité de Datadog Inc., qui ont lié en mars la même campagne TeamPCP à une deuxième publication PyPI malveillante ciblant le kit de développement logiciel Python de Telnyx Inc..

Écrivant dans une chronique invitée pour SiliconANGLE la semaine dernière, Matias Madou, directeur de la technologie de Secure Code Warrior Ltd., a fait valoir que l'attaque détaillée par Datadog marquait la première militarisation réussie de la sécurité et de l'infrastructure des développeurs avec des privilèges d'accès élevés. Les middlewares d'IA tels que LiteLLM devraient désormais être traités comme une infrastructure critique dans les cadres de gouvernance d'entreprise, a-t-il écrit.

Newsletter

Rejoignez notre newsletter pour des astuces chaque semaine