Исследователи компании JFrog обнаружили новый вектор атаки на экосистему Python Package Index (PyPI), получивший название Revival Hijack. Эта техника позволяет злоумышленникам регистрировать новые проекты с именами ранее удаленных пакетов, что открывает широкие возможности для проведения атак на цепочки поставок.
Механизм работы Revival Hijack
Уязвимость основана на особенности функционирования PyPI: после удаления пакета его имя становится доступным для повторной регистрации. Это создает потенциальную угрозу, так как злоумышленники могут воспользоваться репутацией и популярностью удаленного пакета для распространения вредоносного кода.
По данным JFrog, более 22 000 пакетов в PyPI уже уязвимы для Revival Hijack. Учитывая, что в среднем ежемесячно удаляется около 309 пакетов, угроза продолжает расти.
Реальный пример эксплуатации
Исследователи приводят конкретный случай успешной атаки с использованием Revival Hijack. Пакет pingdomv3 был удален из PyPI 30 марта 2024 года. В тот же день злоумышленники перехватили его имя и опубликовали обновление, содержащее обфусцированный Python-троян, нацеленный на CI/CD-среду Jenkins.
Масштаб проблемы и потенциальные последствия
Для оценки масштаба угрозы специалисты JFrog провели эксперимент, зарегистрировав новые проекты с именами наиболее популярных удаленных пакетов. За три месяца эти «пустые» пакеты были загружены почти 200 000 раз, что демонстрирует потенциальный охват вредоносной кампании с использованием Revival Hijack.
Рекомендации по защите
Эксперты по кибербезопасности рекомендуют следующие меры для минимизации рисков, связанных с Revival Hijack:
- Использовать pinning пакетов для фиксации определенных, проверенных версий
- Регулярно проводить аудит содержимого используемых пакетов
- Внедрить системы проверки целостности пакетов
- Отслеживать смену владельцев и нетипичную активность обновлений пакетов
Revival Hijack представляет собой серьезную угрозу для безопасности экосистемы Python. Разработчикам и организациям необходимо проявлять повышенную бдительность при работе с пакетами PyPI и внедрять комплексные меры защиты для предотвращения потенциальных атак на цепочки поставок. Постоянный мониторинг и своевременное реагирование на новые угрозы остаются ключевыми факторами в обеспечении кибербезопасности современных программных проектов.