Le dépôt NPM a introduit l'application obligatoire de l'authentification à deux facteurs pour les comptes des mainteneurs des 500 paquets NPM les plus populaires. Comme critère de popularité, le nombre de paquets dépendants a été utilisé. Les mainteneurs des paquets de la liste pourront effectuer des opérations associées aux modifications dans le dépôt uniquement après avoir activé l'authentification à deux facteurs, qui nécessite la confirmation de la connexion à l'aide de mots de passe à usage unique (TOTP), générés par des applications telles qu'Authy, Google Authenticator et FreeOTP, ou par des clés matérielles et des scanners biométriques prenant en charge le protocole WebAuth.
Il s'agit de la troisième étape pour renforcer la sécurité de NPM contre la compromission des comptes. Lors de la première étape, tous les comptes NPM n'ayant pas activé l'authentification à deux facteurs ont été transférés vers l'utilisation d'une vérification avancée des comptes, qui exige l'entrée d'un code unique envoyé par e-mail lors de la tentative de connexion sur npmjs.com ou lors de l'exécution d'une opération authentifiable dans l'outil npm. Lors de la deuxième étape, l'authentification à deux facteurs est devenue obligatoire pour les 100 paquets les plus populaires.
Rappelons qu'une étude menée en 2020 a révélé que seulement 9,27 % des mainteneurs de paquets utilisaient l'authentification à deux facteurs pour protéger l'accès, et dans 13,37 % des cas, lors de l'enregistrement de nouveaux comptes, les développeurs tentaient de réutiliser des mots de passe compromis figurant dans des fuites de mots de passe connues. Lors de la vérification de la robustesse des mots de passe utilisés, un accès a pu être obtenu à 12 % des comptes NPM (13 % des paquets) en raison de l'utilisation de mots de passe prévisibles et triviaux, tels que « 123456 ». Parmi les comptes problématiques se trouvaient 4 comptes utilisateurs parmi les 20 paquets les plus populaires, 13 comptes dont les paquets avaient été téléchargés plus de 50 millions de fois par mois, 40 avec plus de 10 millions de téléchargements par mois et 282 avec plus d'1 million de téléchargements par mois. Étant donné le chargement des modules via des chaînes de dépendances, la compromission de comptes peu fiables pourrait toucher jusqu'à 52 % de tous les modules de NPM.
Source : opennet.ru
