GitHub объявил о включении в репозитории NPM обязательной двухфакторной аутентификации для 100 NPM-пакетов, имеющих наибольшее число зависимостей. Сопровождающие данных пакетов отныне смогут выполнить требующие аутентификации операции с репозиторием только после включения двухфакторной аутентификации, требующей подтверждения входа при помощи одноразовых паролей (TOTP), генерируемых такими приложениями, как Authy, Google Authenticator и FreeOTP. В ближайшее время помимо TOTP планируют добавить возможность использования аппаратных ключей и биометрических сканеров, поддерживающих протокол WebAuth.
На 1 марта намечен перевод всех учётных записей NPM, для которых не включена двухфакторная аутентификация, на использование расширенной верификации учётных записей, которая требует ввода одноразового кода, отправляемого на email при попытке входа на сайт npmjs.com или выполнения аутентифицируемой операции в утилите npm.
При включении двухфакторной аутентификации расширенная верификация по email не применяется. 16 и 13 февраля на сутки будет осуществлён пробный временный запуск расширенной верификации для всех учётных записей.
Напомним, что в соответствии с проведённым в 2020 году исследованием, лишь 9.27% мэйнтенеров пакетов использовали для защиты доступа двухфакторную аутентификацию, а в 13.37% случаев при регистрации новых учётных записей разработчики пытались повторно использовать скомпрометированные пароли, фигурирующие в известных утечках паролей. В ходе проверки надёжности используемых паролей удалось получить доступ к 12% аккаунтов в NPM (13% пакетов) из-за использования предсказуемых и тривиальных паролей, таких как “123456”. В числе проблемных оказались 4 учётные записи пользователей из Top20 самых популярных пакетов, 13 учётных записей, пакеты которых загружали более 50 млн раз в месяц, 40 – более 10 млн загрузок в месяц и 282 с более 1 млн загрузок в месяц. С учётом загрузки модулей по цепочке зависимостей, компрометация ненадёжных учётных записей могла поразить в сумме до 52% от всех модулей в NPM.