Хранилище пакетов Python (PyPI) внедрило автоматизированную систему безопасности для борьбы с «атаками воскрешения домена» — методом захвата учетных записей (ATO), который представляет серьезную угрозу для цепочки поставок программного обеспечения. Механизм атаки нацелен на разработчиков, использующих электронную почту на собственных доменах.

Суть уязвимости заключается в том, что злоумышленник отслеживает и приобретает доменное имя, срок регистрации которого истек у первоначального владельца — сопровождающего пакета PyPI. После получения контроля над доменом атакующий инициирует процедуру сброса пароля для учетной записи PyPI, связанной с этим доменом. Ссылка для восстановления отправляется на электронный адрес, который теперь контролируется злоумышленником, что позволяет ему полностью захватить аккаунт.
Наибольшему риску подвергаются пакеты, которые были заброшены своими первоначальными авторами, но по-прежнему активно используются в тысячах других проектов. Такая ситуация создает идеальные условия для проведения масштабных атак на цепочку поставок, поскольку злоумышленник может опубликовать вредоносные версии под видом легитимных обновлений популярного пакета.
Чтобы противостоять этой угрозе, PyPI теперь проактивно проверяет статус доменов, связанных с электронными адресами пользователей. Этот процесс выполняется каждые 30 дней с использованием Status API от компании Fastly. Если система обнаруживает, что домен истек, связанный с ним email-адрес в PyPI автоматически помечается как непроверенный.
Майк Фидлер, инженер по безопасности PyPI в Python Software Foundation (PSF), заявил, что цель этой меры — «минимизировать потенциальную угрозу в случае, если домен электронной почты истекает и переходит в другие руки». Эта защита эффективна даже для учетных записей с включенной двухфакторной аутентификацией (2FA), поскольку атака происходит на этапе сброса пароля, который предшествует вводу второго фактора.
С начала июня 2024 года система безопасности PyPI уже аннулировала верификацию более чем 1800 адресов электронной почты, связанных с просроченными доменами. Эта мера стала прямым ответом на реальные инциденты, подчеркнувшие серьезность уязвимости.
Показательным примером стала атака 2022 года на пакет
Для защиты своих учетных записей администрация PyPI настоятельно рекомендует всем пользователям включить двухфакторную аутентификацию (2FA). Это является основной линией обороны от несанкционированного доступа.
В качестве дополнительной меры безопасности разработчикам, использующим электронную почту на собственном домене, советуют добавить второй верифицированный адрес от крупного стабильного провайдера, такого как Gmail или Outlook. Это обеспечит резервный канал для восстановления доступа в случае потери контроля над основным доменом.

Изображение носит иллюстративный характер
Суть уязвимости заключается в том, что злоумышленник отслеживает и приобретает доменное имя, срок регистрации которого истек у первоначального владельца — сопровождающего пакета PyPI. После получения контроля над доменом атакующий инициирует процедуру сброса пароля для учетной записи PyPI, связанной с этим доменом. Ссылка для восстановления отправляется на электронный адрес, который теперь контролируется злоумышленником, что позволяет ему полностью захватить аккаунт.
Наибольшему риску подвергаются пакеты, которые были заброшены своими первоначальными авторами, но по-прежнему активно используются в тысячах других проектов. Такая ситуация создает идеальные условия для проведения масштабных атак на цепочку поставок, поскольку злоумышленник может опубликовать вредоносные версии под видом легитимных обновлений популярного пакета.
Чтобы противостоять этой угрозе, PyPI теперь проактивно проверяет статус доменов, связанных с электронными адресами пользователей. Этот процесс выполняется каждые 30 дней с использованием Status API от компании Fastly. Если система обнаруживает, что домен истек, связанный с ним email-адрес в PyPI автоматически помечается как непроверенный.
Майк Фидлер, инженер по безопасности PyPI в Python Software Foundation (PSF), заявил, что цель этой меры — «минимизировать потенциальную угрозу в случае, если домен электронной почты истекает и переходит в другие руки». Эта защита эффективна даже для учетных записей с включенной двухфакторной аутентификацией (2FA), поскольку атака происходит на этапе сброса пароля, который предшествует вводу второго фактора.
С начала июня 2024 года система безопасности PyPI уже аннулировала верификацию более чем 1800 адресов электронной почты, связанных с просроченными доменами. Эта мера стала прямым ответом на реальные инциденты, подчеркнувшие серьезность уязвимости.
Показательным примером стала атака 2022 года на пакет
ctx
. Неизвестный злоумышленник приобрел просроченный домен, который использовался сопровождающим пакета, получил доступ к его учетной записи и опубликовал в репозитории PyPI мошеннические, вредоносные версии ctx
. Для защиты своих учетных записей администрация PyPI настоятельно рекомендует всем пользователям включить двухфакторную аутентификацию (2FA). Это является основной линией обороны от несанкционированного доступа.
В качестве дополнительной меры безопасности разработчикам, использующим электронную почту на собственном домене, советуют добавить второй верифицированный адрес от крупного стабильного провайдера, такого как Gmail или Outlook. Это обеспечит резервный канал для восстановления доступа в случае потери контроля над основным доменом.