Срочно меняйте ключи. Популярный Python-пакет рассылал вредоносный код под видом обычного патча

leer en español

11857
Срочно меняйте ключи. Популярный Python-пакет рассылал вредоносный код под видом обычного патча

Обнаружить следы проникновения удалось лишь случайно.

image

Популярный Python-пакет elementary-data оказался каналом для кражи данных разработчиков. Вредоносная версия попала не только в PyPI, но и в Docker-образ проекта, поэтому часть пользователей могла получить заражённую сборку как обычное обновление.

Опасный релиз получил номер 0.23.3. elementary-data используют инженеры по данным и аналитики для наблюдения за конвейерами dbt, а ежемесячное число загрузок пакета из PyPI превышает 1,1 млн. Проблему заметил участник сообщества под ником crisperik, который сообщил о подозрительной публикации на GitHub. После этого разработчики выпустили чистую версию 0.23.4, но системы, уже установившие заражённую сборку, могли остаться под угрозой.

По данным StepSecurity, злоумышленник не взламывал учётные записи сопровождающих проект. Атака прошла через уязвимость в GitHub Actions, из-за которой вредоносный комментарий к запросу на слияние заставил рабочий процесс выполнить сторонний shell-код. Так атакующий получил GITHUB_TOKEN, создал поддельные, но подписанные коммит и тег v0.23.3, а затем запустил легитимный выпуск проекта.

Механизм выпуска сам собрал и отправил заражённый пакет в PyPI, а также Docker-образ в GitHub Container Registry. Из-за этого версия выглядела официальной. Внутри находился файл elementary.pth, который запускался автоматически и загружал стилер секретов.

Вредоносный код искал SSH-ключи, учётные данные Git, облачные ключи AWS, GCP и Azure, секреты Kubernetes, Docker и CI, файлы .env, токены разработчиков, системные данные и кошельки Bitcoin, Litecoin, Dogecoin, Zcash, Dash, Monero и Ripple.

StepSecurity предупредила, что системы без жёстко закреплённых версий могли автоматически получить заражённую сборку. Пользователям elementary-data 0.23.3, а также пользователям образов ghcr.io/elementary-data/elementary:0.23.3 и :latest рекомендуют заменить все секреты и восстановить окружения из заведомо безопасного состояния.