Des milliers de paquets npm exposés en raison de noms de domaine expirés

Selon un récent projet de recherche académique, plusieurs milliers de paquets npm seraient mis en danger à cause d'adresses e-mail aux noms de domaine expirés.
L'étude en question, menée l'année dernière (décembre 2021) par une équipe de chercheurs de Microsoft et de l'université d'État de Caroline-du-Nord, porte sur l'analyse des métadonnées de très exactement 1 630 101 bibliothèques JavaScript présentes dans le Node Package Manager (registre npm).
Il en ressort que 2 818 développeurs utilisent une adresse e-mail avec un nom de domaine arrivé à expiration pour les comptes de leurs projets (ah, ces side projects qui nous tiennent tant à cœur !). Une bonne partie de ces noms de domaine seraient par ailleurs libres à l'achat.
L'équipe de chercheurs explique que des personnes mal intentionnées pourraient justement acheter ces noms de domaine, re-enregistrer les adresses e-mail des mainteneurs ainsi renseignées, et prendre la main sur leurs paquets npm en procédant facilement à un reset du mot de passe. Une telle prise en main reste encore possible à ce jour car le portail npm n'impose pas l'usage de l'authentification à deux facteurs (2FA) pour les propriétaires de comptes.
Au total, l'équipe de recherche explique que ces 2 818 propriétaires de comptes portent à eux seuls (et exposent, de fait) 8 494 paquets npm. Il précisent également que chacun de ces paquets dispose en moyenne d'environ 2,43 dépendances directes, ce qui implique qu'une opération malveillante pourrait en réalité impacter des dizaines de milliers de projets en aval.
Bien que les tentatives de récupération puissent être identifiées par les propriétaires de comptes, les chercheurs mettent néanmoins en avant le fait que beaucoup de bibliothèques et projets ne sont plus maintenus (58,7%), ce qui augmente le risque que d'éventuelles attaques passent inaperçues aux yeux des mainteneurs.
Les chercheurs expliquent avoir informé l'équipe de sécurité de npm de leur découverte ainsi que GitHub, qui détient le gestionnaire de paquets depuis 2020. Alors qu'aucune réponse ne leur a été faite, on peut néanmoins noter que les équipes de npm ont annoncé fin 2021 leur souhait de renforcer progressivement la sécurité des comptes de développeurs à l'aide de la double authentification.
Ce process de sécurisation se déroule en plusieurs phases, la première étant la configuration obligatoire d'une authentification 2FA pour le top 100 des comptes mainteneurs de la plateforme, mise en place au cours du mois de janvier.
Parmi les autres points mis en avant par cette étude :
- 2,2% (33 249) paquets font usage de scripts d'installation, ce qui va à l'encontre des recommandations en sécurité de npm et pourrait permettre l'exécution de commandes malicieuses.
- Le top 1% des paquets npm (14 941) sont en moyenne maintenus par 32,4 personnes, ce qui augmente le risque d'attaques par le biais de comptes inactifs.
- 389 paquets ont un ratio de 40 contributeurs pour un seul mainteneur, exposant ces projets à l'apparition de failles de sécurité (volontaires ou non) par le biais de contributions trop nombreuses.
- Le top 1% des mainteneurs sont propriétaires d'environ 180,3 paquets, disposant chacun d'une moyenne de 4 010 de paquets avec des dépendances directes. Ces développeurs surchargés présentent également un risque de sécurité car ils ne disposent pas du temps nécessaire pour la bonne maintenance et le suivi des paquets sur lesquels ils travaillent.
Consulter l'étude mentionnée dans cet article : What are Weak Links in the npm Supply Chain?
À propos de l'auteur
Nicolas Lecointre
Chief Happiness Officer des développeurs, ceinture noire de sudo. Pour rire, j'ai créé Les Joies du Code. J'utilise Vim depuis 10 ans parce que je sais pas comment le quitter.
À lire également

Passbolt : le gestionnaire de mots de passe open source que votre équipe mérite vraiment
Je connais l’histoire, vous la connaissez, on la connaît tous. Le stagiaire qui est resté six mois, qui a fini par avoir accès à un peu (beaucoup) plus de choses...
Articles similaires


Git : découverte de deux vulnérabilités permettant l'exécution de code à distance

Atlassian, l'éditeur derrière Jira, Bitbucket et Trello, a été hacké et voit ses données exposées en ligne
aCropalypse : une faille des smartphones Google Pixel permet de voir les images d'origine des captures rognées

Avec le départ de Guillaume Poupard, une page se tourne à l'ANSSI

Git : découverte de deux vulnérabilités permettant l'exécution de code à distance

Atlassian, l'éditeur derrière Jira, Bitbucket et Trello, a été hacké et voit ses données exposées en ligne
aCropalypse : une faille des smartphones Google Pixel permet de voir les images d'origine des captures rognées
Plus de contenu

Non mais c'est bon quoi

Quand le stagiaire va poser une question au dev senior
Quand j'explique au commercial pourquoi la deadline qu'il a vendue est intenable

Quand je trouve enfin la solution à mon bug

Quand j'essaie de suivre la procédure à la lettre pour ma mise en prod

Quand un client compliqué nous remonte un nouveau bug
Quand la seule doc utile s'avère être une conversation Slack qui date de 2020

Quand je lance le mode debug

Non mais c'est bon quoi

Quand le stagiaire va poser une question au dev senior
Quand j'explique au commercial pourquoi la deadline qu'il a vendue est intenable

Quand je trouve enfin la solution à mon bug

Quand j'essaie de suivre la procédure à la lettre pour ma mise en prod


