In de NPM-repository is het gebruik van verplichte multifactorauthenticatie (MFA) voor accounts van de ondersteunde 500 populairste NPM-pakketten geïmplementeerd. De populariteit werd gemeten aan de hand van het aantal afhankelijke pakketten. De onderhouders van de goedgekeurde pakketten kunnen gerelateerde wijzigingsoperaties in de repository alleen uitvoeren na het inschakelen van multifactorauthenticatie, die bevestiging van inloggen vereist via een eenmalig wachtwoord (TOTP) dat wordt gegenereerd door applicaties zoals Authy, Google Authenticator en FreeOTP, of door hardware-sleutels en biometrische scanners die het WebAuth-protocol ondersteunen.
Dit is de derde fase in het verstevigen van de beveiliging van NPM tegen accountcompromittatie. In de eerste fase zijn alle NPM-accounts zonder ingeschakelde multifactorauthenticatie overgezet naar gebruik van uitgebreide verificatie, die invoer van een eenmalige code vereist die naar een e-mailadres wordt gestuurd bij een poging om in te loggen op npmjs.com of een authenticeerbare actie uit te voeren met de npm-tool. In de tweede fase is verplichte multifactorauthenticatie ingeschakeld voor de 100 populairste pakketten.
Ter herinnering: uit een onderzoek in 2020 bleek dat slechts 9,27% van de pakketonderhouders multifactorauthenticatie gebruikte voor toegangsbeveiliging, terwijl 13,37% van de gevallen bij het registreren van nieuwe accounts ontwikkelaars probeerden gecompromitteerde wachtwoorden te hergebruiken die voorkwamen in bekende datalekken. Tijdens de controle van de betrouwbaarheid van de gebruikte wachtwoorden kon toegang worden verkregen tot 12% van de accounts in NPM (13% van de pakketten) vanwege het gebruik van voorspelbare en triviale wachtwoorden, zoals "123456". Onder de problematische accounts bevonden zich 4 gebruikersaccounts uit de Top 20 populairste pakketten, 13 accounts waarvan de pakketten meer dan 50 miljoen keer per maand zijn gedownload, 40 die meer dan 10 miljoen downloads per maand hebben en 282 met meer dan 1 miljoen downloads per maand. Gezien de cascade van afhankelijkheidsmodules zou de compromittering van onbetrouwbare accounts in totaal tot 52% van alle modules in NPM kunnen treffen.
Bron: opennet.ru
