{"id":2345,"date":"2026-03-29T07:58:00","date_gmt":"2026-03-29T07:58:00","guid":{"rendered":"https:\/\/www.almtoolbox.com\/fr\/blog\/?p=2345"},"modified":"2026-08-31T08:04:53","modified_gmt":"2026-08-31T08:04:53","slug":"how-jfrog-stops-supply-chain-attacks-litellm-malware-devops-pipelines","status":"publish","type":"post","link":"https:\/\/www.almtoolbox.com\/fr\/blog\/how-jfrog-stops-supply-chain-attacks-litellm-malware-devops-pipelines\/","title":{"rendered":"Comment JFrog stoppe les attaques de la cha\u00eene d&#8217;approvisionnement comme le malware PyPI LiteLLM dans les pipelines DevOps"},"content":{"rendered":"\n<figure class=\"wp-block-image aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2026\/03\/jfrog-curation-centralized-visibility-control.jpg\" alt=\"Attaques de la cha\u00eene d'approvisionnement JFrog\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dans le paysage des menaces actuel, les attaques de la cha\u00eene d&#8217;approvisionnement, comme la r\u00e9cente compromission de PyPI LiteLLM \u2013 o\u00f9 des paquets pi\u00e9g\u00e9s par une porte d\u00e9rob\u00e9e ont vol\u00e9 des identifiants Kubernetes \u2013 soulignent le besoin urgent de d\u00e9fenses robustes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Les solutions de JFrog offrent une protection de niveau entreprise en servant de proxy, en analysant et en bloquant les artefacts malveillants avant qu&#8217;ils n&#8217;infiltrent votre environnement de d\u00e9veloppement logiciel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ce guide explique en d\u00e9tail comment JFrog Artifactory, Curation et Xray s\u00e9curisent vos pipelines CI\/CD contre ces risques.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi les attaques de la cha\u00eene d&#8217;approvisionnement ciblent-elles les \u00e9quipes DevOps ?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Les attaquants exploitent les r\u00e9f\u00e9rentiels publics comme PyPI avec du typosquatting ou des t\u00e9l\u00e9chargements malveillants, comme on l&#8217;a vu avec la porte d\u00e9rob\u00e9e .pth de LiteLLM qui a contourn\u00e9 les analyses de base.<br>Les t\u00e9l\u00e9chargements directs depuis ces sources contournent la s\u00e9curit\u00e9 traditionnelle, injectant des malwares dans les builds Docker, les clusters Kubernetes ou les runners GitLab.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Solutions JFrog :<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">JFrog agit comme un gardien s\u00e9curis\u00e9, garantissant que seuls les paquets valid\u00e9s p\u00e9n\u00e8trent dans vos flux de travail cloud-natives ou isol\u00e9s (air-gapped).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. JFrog Artifactory : Votre proxy de paquets universel<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">JFrog Artifactory sert de proxy pour les requ\u00eates vers PyPI, npm et d&#8217;autres, en mettant en cache les versions approuv\u00e9es tout en bloquant celles suspectes \u00e0 la p\u00e9riph\u00e9rie. Configurez-le comme un cache de type &#8220;pull-through&#8221; dans votre fichier GitLab CI YAML \u2013 les d\u00e9veloppeurs effectuent leur &#8220;pip install&#8221; de mani\u00e8re transparente, mais tout le trafic est achemin\u00e9 via JFrog pour inspection. Cela pr\u00e9vient les incidents comme celui de LiteLLM en imposant des d\u00e9p\u00f4ts virtuels qui r\u00e9pliquent les sources officielles sans exposition directe.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. JFrog Curation : Bloquez les malwares au moment du t\u00e9l\u00e9chargement<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">JFrog Curation utilise des informations sur les menaces en temps r\u00e9el pour bloquer automatiquement les paquets vuln\u00e9rables, malveillants ou abandonn\u00e9s en fonction de politiques personnalisables. Pour les risques PyPI, d\u00e9finissez des r\u00e8gles pour rejeter les paquets contenant des CVE connues, des licences risqu\u00e9es ou des correspondances dans la base de donn\u00e9es de malwares de JFrog \u2013 comme les variantes TeamPCP de LiteLLM. Dans les configurations auto-g\u00e9r\u00e9es, il prend en charge la curation hors ligne, ce qui est parfait pour les environnements DevSecOps r\u00e9glement\u00e9s.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. JFrog Xray : Analyse approfondie des composants (SCA) et des binaires<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Xray analyse les binaires, les conteneurs et les SBOM \u00e0 la recherche de secrets, de signatures de malwares et de vuln\u00e9rabilit\u00e9s de la cha\u00eene d&#8217;approvisionnement tout au long de votre pipeline. Int\u00e9grez-le aux contr\u00f4leurs d&#8217;admission Kubernetes ou aux \u00e9tapes de GitLab pour interrompre les builds en cas de d\u00e9tection de menaces, telles que des voleurs d&#8217;identifiants cach\u00e9s dans des fichiers Python wheels compil\u00e9s. Contrairement aux outils SAST statiques, l&#8217;analyse des m\u00e9tadonn\u00e9es de Xray remonte les d\u00e9pendances jusqu&#8217;\u00e0 leurs sources, classant les corrections par ordre de priorit\u00e9 gr\u00e2ce \u00e0 des scores de risque.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">JFrog contre les attaques PyPI : Comparatif des fonctionnalit\u00e9s<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<figure class=\"wp-block-table\">\n<table class=\"has-fixed-layout\">\n<thead>\n<tr>\n<th>Outil JFrog<\/th>\n<th>Pr\u00e9vention des attaques<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Proxy Artifactory<\/td>\n<td>Centralise tous les t\u00e9l\u00e9chargements (pulls)<\/td>\n<\/tr>\n<tr>\n<td>Politiques de Curation<\/td>\n<td>Bloque selon les infos sur les menaces<\/td>\n<\/tr>\n<tr>\n<td>Analyse Xray<\/td>\n<td>D\u00e9tecte les malwares \u00e0 l&#8217;ex\u00e9cution<\/td>\n<\/tr>\n<tr>\n<td>Int\u00e9gration SBOM<\/td>\n<td>Permet la tra\u00e7abilit\u00e9<\/td>\n<\/tr>\n<tr>\n<td>Analyse de secrets binaires<\/td>\n<td>D\u00e9tecte les fuites cach\u00e9es<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:45px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Impl\u00e9mentation de JFrog dans GitLab CI\/CD pour le DevSecOps<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Commencez par un d\u00e9p\u00f4t virtuel PyPI dans Artifactory, puis ajoutez des analyses Xray :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">text<code>pipelines:\n  build:\n    - script:\n        - pip install --index-url $JFROG_PIP_URL -r requirements.txt\n        - jfrog rt scan --fail=false  # Int\u00e9gration Xray<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cette configuration a r\u00e9duit le MTTR (temps moyen de r\u00e9solution) de la cha\u00eene d&#8217;approvisionnement de 80 % dans des cas d&#8217;entreprise similaires, selon les benchmarks de JFrog. Pour Kubernetes, utilisez les politiques Xray pour contr\u00f4ler les images de conteneurs.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Impl\u00e9mentation de JFrog dans GitLab CI\/CD pour le DevSecOps<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Configurez un d\u00e9p\u00f4t PyPI virtuel dans Artifactory comme source de vos paquets, puis int\u00e9grez-le via le fichier YAML d&#8217;Azure Pipelines pour une analyse fluide :<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">text<code>pipelines:<\/code><br>trigger:<br>- main<br><br>pool:<br>  vmImage: 'ubuntu-latest'<br><br>steps:<br>- task: UsePythonVersion@0<br>  inputs:<br>    versionSpec: '3.9'<br><br>- script: |<br>    pip install -i $(JFROG_PIP_INDEX) -r requirements.txt<br>    jfrog rt scan --fail=false --url=$(JFROG_URL)  # V\u00e9rification des politiques Xray<br>  displayName: 'Installation des d\u00e9pendances et analyse JFrog Xray'<br>  env:<br>    JFROG_PIP_INDEX: $(JFROG_VIRTUAL_REPO_URL)<br>    JFROG_URL: $(JFROG_INSTANCE)<br>    JFROG_TOKEN: $(JFROG_ACCESS_TOKEN)<code><br><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Utilisez les connexions de service Azure pour les identifiants JFrog et ajoutez Xray comme barri\u00e8re de build\/release. Cela applique les politiques de curation \u00e0 chaque <code>pip install<\/code>, bloquant les menaces de type LiteLLM avant qu&#8217;elles n&#8217;atteignent vos agents h\u00e9berg\u00e9s sur Azure ou vos clusters AKS \u2013 simplifiant ainsi la conformit\u00e9 pour vos projets aux \u00c9tats-Unis et en Europe.<\/p>\n\n\n\n<div style=\"height:45px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Points cl\u00e9s \u00e0 retenir pour un DevOps s\u00e9curis\u00e9<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">JFrog transforme votre environnement de d\u00e9veloppement en une forteresse hautement s\u00e9curis\u00e9e contre les menaces de la cha\u00eene d&#8217;approvisionnement, des malwares PyPI aux vuln\u00e9rabilit\u00e9s open source (OSS). Id\u00e9al pour les architectes DevOps g\u00e9rant la conformit\u00e9 US\/UE, il s&#8217;adapte des architectures auto-h\u00e9berg\u00e9es au cloud sans perturber vos flux de travail.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vous voulez bloquer la prochaine menace de type LiteLLM ? Contactez-nous pour obtenir une version d&#8217;essai et commencer \u00e0 s\u00e9curiser vos d\u00e9p\u00f4ts d\u00e8s aujourd&#8217;hui.<\/p>\n\n\n\n<p class=\"has-background wp-block-paragraph\" style=\"background-color:#ebf6ff\"><em>ALM Toolbox est le repr\u00e9sentant officiel de JFrog, fournissant du support et des licences pour les solutions JFrog, notamment Artifactory, Xray, Curation, et bien plus encore. Nous proposons \u00e9galement une assistance DevOps d&#8217;infrastructure et DevSecOps \/ AppSec pour concevoir une cha\u00eene d&#8217;approvisionnement s\u00e9curis\u00e9e (code et builds d&#8217;applications s\u00e9curis\u00e9s) et pour int\u00e9grer ces solutions dans vos processus de d\u00e9veloppement (SDLC \/ ALM) ainsi que vos outils de d\u00e9veloppement. <br>Pour plus de d\u00e9tails, contactez-nous : <a href=\"mailto:jfrog@almtoolbox.com\" target=\"_blank\" rel=\"noreferrer noopener\">jfrog@almtoolbox.com<\/a> ou par t\u00e9l\u00e9phone au 866-503-1471 (\u00c9tats-Unis \/ Canada) ou au +31 85 064 4633<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Suite \u00e0 l&#8217;attaque de la cha\u00eene d&#8217;approvisionnement PyPI LiteLLM qui a compromis des packages pour voler des identifiants Kubernetes, JFrog s&#8217;impose comme un bouclier DevSecOps. D\u00e9couvrez comment Artifactory sert de proxy, Curation bloque les d\u00e9pendances malveillantes et Xray analyse les binaires \u2013 le tout int\u00e9gr\u00e9 avec GitLab CI\/CD et Azure DevOps.&hellip; <a class=\"more-link\" href=\"https:\/\/www.almtoolbox.com\/fr\/blog\/how-jfrog-stops-supply-chain-attacks-litellm-malware-devops-pipelines\/\">Continue reading <span class=\"screen-reader-text\">Comment JFrog stoppe les attaques de la cha\u00eene d&#8217;approvisionnement comme le malware PyPI LiteLLM dans les pipelines DevOps<\/span> <span class=\"meta-nav\" aria-hidden=\"true\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":2344,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[250,35,251,252],"tags":[333,398,336,331,335],"class_list":["post-2345","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artifactory","category-devsecops","category-jfrog","category-jfrog-xray","tag-gitlab-ci-cd-2","tag-itellm-attack","tag-litellm-attack","tag-pypi-malware","tag-supply-chain-security"],"_links":{"self":[{"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/posts\/2345","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/comments?post=2345"}],"version-history":[{"count":2,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/posts\/2345\/revisions"}],"predecessor-version":[{"id":2348,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/posts\/2345\/revisions\/2348"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/media\/2344"}],"wp:attachment":[{"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/media?parent=2345"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/categories?post=2345"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/fr\/blog\/wp-json\/wp\/v2\/tags?post=2345"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}