Захват произведён через замену владельца проектов. Атакующий создал учётную запись «dvolk», затем от имени основного сопровождающего «meisnate12» сформировано приглашение для включения пользователя «dvolk» в число сопровождающих, после принятия которого и получения управляющего доступа к проекту удалил из проекта изначального автора и остался одним сопровождающим. После выполнения подобных манипуляций для всех проектов был инициирован процесс удаления учётной записи «meisnate12».
Спустя 5 часов после захвата проектов администраторы PyPI получили сообщение от изначального автора о случившимся, заблокировали учётную запись злоумышленника и восстановили права на владение проектами. В качестве причины инцидента названа ненадлежащая защита учётной записи и отсутствие применения двухфакторной аутентификации, что позволило атакующему определить параметры входа под пользователем «meisnate12» и выполнить действия от его имени.
До конца этого года репозиторий PyPI намерен перевести все учётные записи пользователей, сопровождающих хотя бы один проект или входящих в курирующие организации, на обязательное применение двухфакторной аутентификации. Применение двухфакторной аутентификации позволит усилить защиту процесса разработки и обезопасить проекты от внесения вредоносных изменений в результате утечки учётных данных, использования того же пароля на скомпрометированных сайтах, взломов локальной системы разработчика или применения методов социального инжиниринга.
В качестве предпочтительных методов двухфакторной аутентификации рекомендуется использовать протокол WebAuthn с FIDO U2F токенами или приложения для аутентификации на базе одноразовых паролей, поддерживающих протокол TOTP, например, Authy, Google Authenticator и FreeOTP. При загрузке пакетов разработчикам дополнительно рекомендовано перейти на использование метода аутентификации ‘Trusted Publishers‘ на базе стандарта OpenID Connect (OIDC) или применять API-токены.
Источник: http://www.opennet.ru/opennews/art.shtml?num=60235