Vérifier un paquet npm ou PyPI avant de l'installer: la méthode manuelle, puis la version rapide
Un paquet npm ou PyPI peut s'exécuter dès son installation. Avant de l'ajouter à un projet, surtout si un agent IA ou un script l'installe à votre place, quelques vérifications prennent quelques minutes. Ce guide présente la méthode manuelle, puis la façon rapide.
Pourquoi vérifier
Le registre public est ouvert: n'importe qui peut publier un paquet. Les deux risques les plus courants sont:
- le typosquatting: un nom presque identique à un paquet populaire (une lettre changée, un tiret ajouté) qui attend une faute de frappe;
- le code malveillant dans les scripts: npm exécute certains scripts du paquet (
preinstall,install,postinstall) pendant l'installation.
Le guide OWASP sur la sécurité npm décrit ces deux cas et recommande notamment de limiter les scripts exécutés à l'installation et de vérifier les noms de paquets avant de les installer. Source: OWASP NPM Security Cheat Sheet.
La méthode manuelle (gratuite)
- Vérifier le nom. Le paquet que vous voulez est-il le bon? Comparez avec le dépôt officiel du projet, et méfiez-vous des noms qui ressemblent à un paquet connu avec une lettre de différence.
- Regarder la page du paquet sur npmjs.com ou pypi.org: date de première publication, nombre de mainteneurs, dépôt source lié, dernière version. Un paquet créé la semaine dernière avec un seul mainteneur demande plus de prudence.
- Lire les scripts. Dans
package.json, cherchezpreinstall,installetpostinstall. Un script qui télécharge et exécute du code distant est un signal d'alarme. - Vérifier la provenance quand elle existe. npm permet aux éditeurs de publier des attestations de provenance qui relient le paquet à l'endroit où il a été construit. La documentation npm l'explique ici: Generating provenance statements.
- Lancer l'audit.
npm auditcompare vos dépendances à une base de vulnérabilités connues. C'est utile, mais cela ne voit pas un paquet malveillant tout neuf. - Installer sans scripts quand c'est possible.
npm install --ignore-scriptsévite l'exécution automatique des scripts d'installation; à utiliser avec discernement, car certains paquets en ont besoin pour fonctionner. - Figer les versions. Gardez le fichier de verrouillage (
package-lock.json) dans le dépôt et installez avecnpm cien intégration continue, pour ne pas récupérer une version modifiée sans que vous le sachiez.
La version rapide: pkg-check
Faire ces étapes pour chaque dépendance devient vite long. Le service pkg-check de Tolca (0,02 $ par appel) interroge un paquet npm ou PyPI et renvoie son état de sécurité en un appel, utilisable par un humain ou par un agent IA. Les champs exacts sont décrits dans la spécification OpenAPI: tolca.tonbot.ca/openapi.json.
Un agent peut l'appeler avant chaque installation, par exemple:
POST https://tolca.tonbot.ca/v1/pkg-check(paiement x402 en USDC sur Base);- ou via le serveur MCP public
https://tolca.tonbot.ca/mcp/public.
Une vérification automatique ne remplace pas votre jugement: lisez le résultat, et gardez les étapes 3 et 7 dans votre processus même avec un outil.
Résumé
| Vérification | Manuel | Tolca pkg-check | |---|---|---| | Nom proche d'un paquet connu | Oui, à l'œil | Oui, en un appel | | Scripts d'installation | Lire package.json | Inclus dans le résultat | | Provenance et mainteneurs | Page npm/PyPI | Inclus dans le résultat | | Fichier de verrouillage | Votre dépôt | Non concerné |
Pour un projet avec peu de dépendances, la méthode manuelle suffit. Pour un agent qui installe des paquets seul, passez par une vérification automatique avant chaque installation.
https://tolca.tonbot.ca/mcp/public