W repozytorium NPM wprowadzono obowiązkowe 2-etapowe uwierzytelnianie dla kont opiekunów 500 najpopularniejszych pakietów NPM. Kryterium popularności stanowi liczba zależnych pakietów. Opiekunowie znajdujących się na liście pakietów będą mogli wykonywać operacje związane ze zmianami w repozytorium dopiero po włączeniu 2-etapowego uwierzytelniania, które wymaga potwierdzenia logowania za pomocą jednorazowych haseł (TOTP), generowanych przez takie aplikacje, jak Authy, Google Authenticator i FreeOTP, lub kluczy sprzętowych i czytników biometrycznych obsługujących protokół WebAuth.
Jest to trzeci etap zwiększenia ochrony NPM przed kompromitacją kont. W pierwszym etapie przeniesiono wszystkie konta NPM, dla których nie włączono 2-etapowego uwierzytelniania, na korzystanie z rozszerzonej weryfikacji konta, która wymaga wprowadzenia jednorazowego kodu wysyłanego na e-mail podczas próby logowania w serwisie npmjs.com lub podczas wykonywania operacji wymagającej uwierzytelnienia w narzędziu npm. W drugim etapie włączono obowiązkowe 2-etapowe uwierzytelnianie dla 100 najpopularniejszych pakietów.
Przypomnijmy, że zgodnie z badaniami przeprowadzonymi w 2020 roku, tylko 9,27% opiekunów pakietów korzystało z 2-etapowego uwierzytelniania dla zabezpieczenia dostępu, a w 13,37% przypadków przy rejestracji nowych kont programiści próbowali ponownie wykorzystać skompromitowane hasła, które pojawiły się w znanych wyciekach. W trakcie sprawdzania bezpieczeństwa używanych haseł udało się uzyskać dostęp do 12% kont w NPM (13% pakietów) z powodu używania przewidywalnych i trywialnych haseł, takich jak „123456”. Wśród problematycznych znalazły się 4 konta użytkowników z Top20 najpopularniejszych pakietów, 13 kont, pakiety których były pobierane ponad 50 milionów razy miesięcznie, 40 — ponad 10 milionów pobrań miesięcznie, oraz 282 z ponad 1 milionem pobrań miesięcznie. Uwzględniając ładowanie modułów w zależności od łańcucha, kompromitacja niepewnych kont mogła dotknąć łącznie do 52% wszystkich modułów w NPM.
Źródło: opennet.ru
