Une vulnérabilité dans une dépendance npm peut compromettre des milliers de projets — c’est la réalité des attaques sur la supply chain logicielle. Centraliser toutes vos dépendances dans Artifactory est une des réponses les plus efficaces à ce problème.
Pourquoi un proxy de dépendances ?
Quand votre build CI télécharge express@4.18.0 directement depuis npmjs.com, vous dépendez de :
- La disponibilité de npmjs.com
- L’intégrité du package (un package peut être modifié ou supprimé)
- Le rate limiting et les restrictions réseau
Un dépôt Remote Artifactory résout les trois problèmes : il met en cache les packages, vérifie leur intégrité et sert d’intermédiaire entre vos builds et Internet.
Maven : centraliser les artefacts Java
<!-- settings.xml Maven -->
<mirrors>
<mirror>
<id>artifactory</id>
<mirrorOf>*</mirrorOf>
<url>https://artifactory.example.com/artifactory/maven-virtual/</url>
</mirror>
</mirrors>
<servers>
<server>
<id>artifactory</id>
<username>${env.ART_USER}</username>
<password>${env.ART_PASS}</password>
</server>
</servers>
Avec cette configuration, Maven passe par Artifactory pour toutes ses résolutions. Le dépôt Virtual peut agréger Maven Central, JCenter et vos propres artefacts internes.
npm : éviter les dépendances fantômes
# .npmrc à la racine du projet
registry=https://artifactory.example.com/artifactory/npm-virtual/
//artifactory.example.com/artifactory/npm-virtual/:_authToken=${NPM_TOKEN}
# Dans votre pipeline CI
npm_install:
script:
- npm ci --prefer-offline # utilise le cache, échoue si paquet manquant
L’option --prefer-offline garantit que le build utilise les packages mis en cache dans Artifactory — si un package est retiré de npmjs.com, votre build continue de fonctionner.
PyPI : sécuriser les packages Python
# pip.conf ou dans le pipeline
pip install -r requirements.txt \
--index-url https://artifactory.example.com/artifactory/api/pypi/pypi-virtual/simple/ \
--trusted-host artifactory.example.com
Artifactory peut être configuré pour bloquer l’installation de packages PyPI qui ne sont pas dans une liste approuvée — utile pour les environnements réglementés qui ne peuvent pas utiliser de librairies non validées.
Helm : distribuer vos charts Kubernetes
Artifactory supporte les Helm charts comme type de dépôt natif :
# Publier un chart
helm package ./mychart
helm push mychart-1.0.0.tgz oci://artifactory.example.com/helm-local
# Installer depuis Artifactory
helm repo add sphinx-charts https://artifactory.example.com/artifactory/helm-virtual/
helm install myapp sphinx-charts/mychart --version 1.0.0
JFrog Xray : scanner toutes vos dépendances
Xray s’intègre nativement avec Artifactory et scanne les artefacts au moment du téléchargement ou du push :
Politique : bloquer les packages avec CVE critique (CVSS >= 9.0)
Action : refuser le téléchargement et notifier l'équipe sécurité
Quand un développeur tente d’utiliser une dépendance contenant une CVE critique connue, Xray bloque le téléchargement depuis Artifactory. La vulnérabilité n’entre jamais dans la chaîne de build.
| Niveau CVSS | Action Xray configurée |
|---|---|
| 9.0 – 10.0 | Blocage immédiat |
| 7.0 – 8.9 | Avertissement + ticket Jira auto |
| 4.0 – 6.9 | Rapport mensuel |
Curation des packages : approved vs flagged
La fonctionnalité Curation (Artifactory Enterprise) permet de maintenir une liste de packages approuvés. Tout package non approuvé qui entre dans Artifactory via un dépôt Remote est automatiquement soumis à validation.
C’est la réponse technique aux exigences de conformité qui imposent un inventaire des composants tiers (SBOM) et une validation avant utilisation.
Notre formation Artifactory couvre Maven, npm, PyPI, Helm et l’intégration Xray sur des cas pratiques réels.