Python Package Index (PyPI) представил новые средства защиты от атак восстановления домена, которые позволяют перехватывать учётные записи посредством сброса пароля.
PyPI — официальный репозиторий пакетов Python с открытым исходным кодом. Он используется разработчиками программного обеспечения, специалистами по поддержке продуктов и компаниями, работающими с библиотеками, инструментами и фреймворками Python.
Учётные записи разработчиков проектов, публикующих программное обеспечение на PyPI, привязаны к адресам электронной почты. В некоторых проектах адрес e-mail привязан к доменному имени. По истечении срока действия этого имени злоумышленник может зарегистрировать его и использовать для получения контроля над проектом на PyPi, настроив почтовый сервер и отправив запрос на сброс пароля для учётной записи.
Риск заключается в атаке на цепочку поставок, когда перехваченные проекты распространяют вредоносные версии популярных пакетов Python, которые во многих случаях устанавливаются автоматически с помощью pip.
Одним из примечательных случаев такой атаки стала компрометация пакета «ctx» в мае 2022 года, когда злоумышленник добавил код, нацеленный на ключи и учётные данные Amazon AWS. В том же году в каталоге PyPI обнаружили более 20 вредоносных пакетов, нацеленных на кражу криптовалюты.
Для решения этой проблемы PyPI теперь проверяет, истёк ли срок действия доменов подтверждённых адресов электронной почты на платформе или приближается к этому моменту, а затем помечает эти адреса как неподтверждённые.
Технически PyPI использует API-интерфейс Domainr Status для определения стадии жизненного цикла домена (активен, льготный период, период выкупа, ожидание удаления) и принятия решения о мерах в отношении данной учётной записи. После того, как адреса электронной почты переходят в это состояние, их нельзя использовать для сброса пароля или других действий по восстановлению учётной записи.
Разработка новых мер началась в апреле. В конечном итоге они были внедрены в июне 2025 года. С тех пор более 1800 адресов электронной почты не прошли проверку в рамках новой системы.
Хотя новые меры не являются абсолютно надёжными и не защищают от всех видов атак, они значительно снижают риск захвата учётных записей PyPI. Разработчики рекомендуют добавлять резервный адрес электронной почты из домена, не являющегося пользовательским, в свою учётную запись, чтобы избежать сбоев, а также включить двухфакторную аутентификацию в учётной записи.
Ранее администраторы PyPI сняли блокировку с электронных адресов inbox.ru после того как выяснилось, что 1525 проектов были созданы не злоумышленниками, а командой разработчиков, занимающейся обеспечением безопасности в компании VK.
В июне сопровождающие PyPI выпустили предупреждение о масштабной фишинговой кампании, направленной на пользователей. Злоумышленники пытаются обманом перенаправить разработчиков на поддельные сайты, замаскированные под PyPI, и украсть их учётные данные. Атака происходит через электронные письма с темой [PyPI] Email verification, которые приходят с адреса noreply@pypj.org (с j вместо i в pypi.org). В письмах содержится ссылка для подтверждения адреса электронной почты. При переходе по ней пользователь попадает на фишинговую страницу.