Typosquatting npm
devsecopsDéfinition
Le Typosquatting npm est une technique d'attaque de supply chain dans laquelle un acteur malveillant publie des packages sur le registre npm (Node Package Manager) avec des noms similaires à des packages légitimes populaires — capitalisant sur les fautes de frappe courantes des développeurs pour faire installer du code malveillant à la place du package légitime. Cette attaque est l'une des formes les plus courantes de supply chain attack ciblant l'écosystème JavaScript/Node.js. Les patterns de typosquatting npm les plus courants incluent : l'inversion de lettres adjacentes (lodahs pour lodash, expres pour express), l'ajout ou la suppression de caractères (colours pour colors, crypto-random-string pour crypto-random), l'utilisation de séparateurs différents (cross-env vs crossenv), l'ajout de préfixes ou suffixes courants (react-router-native vs react-router, socket.io-client vs socket-io-client), et les homophones ou homoglyphes (1etter vs letter avec un "1" à la place du "l"). Les conséquences d'un typosquatting réussi peuvent être sévères. Les packages malveillants ont été utilisés pour : exfiltrer les variables d'environnement (incluant les tokens AWS, les clés API, les mots de passe) via des requêtes HTTP sortantes lors de npm install, installer des cryptomineurs, créer des backdoors dans les applications, et voler les credentials développeurs (tokens npm, clés SSH) depuis le système local. La protection contre le typosquatting npm nécessite plusieurs couches. Les outils SCA (Snyk, npm audit, Renovate) maintiennent des bases de données de packages malveillants connus et alertent lors de leur détection. Des outils spécialisés comme confusion-checker et npm-package-name-checker vérifient si un package est similaire à un package populaire. La validation de l'intégrité des packages (npm s'appuie sur des signatures Sigstore pour les packages récents), la vérification du nombre de téléchargements et la date de création d'un package inconnu (packages très récents avec peu de téléchargements sont suspects) sont des heuristiques utiles. Au niveau organisationnel, l'utilisation d'un registre npm interne (Nexus, Artifactory) avec proxy vers npm public et allowlist des packages autorisés est la protection la plus robuste contre le typosquatting.
Patterns d'attaque de typosquatting npm
Les attaquants exploitent plusieurs patterns : inversion de lettres (lodahs→lodash), confusion de caractères similaires (Iet vs let, avec un I majuscule), ajout de séparateurs (cross_env vs cross-env), combinaisons de packages (react+router → react-router-dom), packages "innocents" avec post-install hooks malveillants, et dependency confusion (publier un package public ayant le même nom qu'un package privé interne pour exploiter la résolution de priorité des registres npm). Des milliers de packages malveillants ont été identifiés et retirés de npm ces dernières années.
Détection et prévention
Plusieurs mécanismes de protection : 1) Vérifier l'auteur et le dépôt GitHub d'un package inconnu avant installation. 2) Utiliser npm ci (pas npm install) en CI pour installer exactement les versions du lockfile sans résolution. 3) Configurer un registre privé (Nexus/Artifactory) avec allowlist explicite des packages autorisés. 4) Activer les alertes Snyk/Socket.dev qui analysent le code de nouveaux packages pour détecter des comportements suspects (accès réseau depuis les scripts d'installation, accès aux variables d'environnement).
Dependency Confusion : variante enterprise
La Dependency Confusion (décrite par Alex Birsan en 2021) est une variante du typosquatting ciblant les packages privés d'entreprise : l'attaquant publie un package public sur npm portant le même nom qu'un package privé interne. Par défaut, npm préfère la version publique (numéro de version plus élevé). Des configurations registry scope (@company/package → registre privé) ou des lockfiles stricts (npm ci) protègent contre cette attaque. L'utilisation systématique de packages privés avec scope @organization est la meilleure protection architecturale.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés.
Un projet cybersécurité ?
Expert dispo · Réponse 24h