Аналитики JFrog обнаружили новую атаку, которой дали имя Revival Hijack. Оказалось, что злоумышленники регистрируют в PyPI новые проекты, используя имена ранее удаленных пакетов, что осуществлять атаки на цепочки поставок.

По словам исследователей, эта методика «могла использоваться для захвата 22 000 пакетов PyPI, что впоследствии приводило сотням тысяч загрузок вредоносных пакетов».

Такие атаки возможны благодаря тому, что имена удаленных из PyPI  пакетов становятся снова доступными для регистрации. То есть разработчики, решившие удалить свой проект из PyPI, получают лишь предупреждение о возможных последствиях.

«Удаление этого проекта сделает его имя доступным для любого другого пользователя PyPI, — гласит предупреждение. — Пользователи смогут создавать новые релизы, используя это имя проекта, если распространяемые имена файлов не будут совпадать с именами файлов, распространяемыми ранее».

Предупреждение при удалении

При этом отмечается, что в PyPI существует закрытый черный список, в котором собраны имена пакетов, для которых нельзя регистрировать новые проекты. Однако большинство удаленных пакетов в этот список не попадают.

По информации JFrog из PyPI уже удалено более 22 000 пакетов, уязвимых для Revival Hijack, причем некоторые из них были весьма популярны. Так, в среднем за месяц из PyPI удаляется 309 пакетов, то есть для злоумышленников постоянно открываются новые возможности.

В качестве примера исследователи приводят случай с пакетом pingdomv3, который был удален из PyPI 30 марта 2024 года. Перехват имени пакета был осуществлен в тот же день, и злоумышленники сразу опубликовали обновление, в котором в пакет был добавлен Python-троян, обфусцированный с помощью Base64 и предназначенный для CI/CD-среды Jenkins.

Хронология атаки на pingdomv3

Ради снижения рисков от Revival Hijack специалисты JFrog приняли меры и создали новые Python-проекты, с помощью учетной записи с именем security_holding «заняв» таким образом имена наиболее популярных удаленных пакетов. Также исследователи изменили номера их версий на 0.0.0.1, чтобы убедиться, что активные пользователи не смогут получить обновление.

Спустя три месяца после этого в JFrog обнаружили, что эти пакеты были загружены почти 200 000 раз благодаря автоматическим скриптам и ошибкам пользователей.

Общая схема атаки

Для защиты от таких атак эксперты рекомендуют пользователям и организациям применять pinning пакетов, чтобы оставаться на определенных, заведомо надежных версиях, а также проверять целостность пакетов, проводить аудит их содержимого, следить за сменой владельцев и нетипичной активностью обновлений.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Межтекстовые Отзывы
    Посмотреть все комментарии