Популярный пакет elementary-data из Python Package Index (PyPI) оказался скомпрометирован: злоумышленник опубликовал вредоносный релиз 0.23.3, который похищал секреты разработчиков и файлы криптокошельков. Из-за особенностей пайплайна вредонос попал не только в PyPI, но и в Docker-образ проекта.

Elementary-data — опенсорсный инструмент для мониторинга данных в dbt. В основном его используют дата-инженеры и аналитики, работающие с пайплайнами данных. Пакет популярен в экосистеме dbt и насчитывает более 1,1 млн загрузок в месяц.

Первым вредоносную версию 0.23.3 заметил участник сообщества под ником crisperik, который в итоге открыл issue и предупредил мейнтейнера о происходящем, благодаря чему атаку удалось быстро пресечь. После предупреждения разработчики выпустили «чистую» версию elementary-data 0.23.4.

Как пишут исследователи из компании StepSecurity, атакующему не пришлось взламывать аккаунты мейнтейнеров, как это бывает обычно. Вместо этого он воспользовался багом в workflow проекта.

Злоумышленник оставил вредоносный комментарий в pull request и заэксплуатировал уязвимость внедрения скриптов в GitHub Actions. В результате workflow выполнил подконтрольный атакующему shell-код и раскрыл GITHUB_TOKEN. Затем этот токен использовался для создания подписанного коммита и тега v0.23.3, а также запуска легитимного релизного пайплайна проекта.

В результате скомпрометированная версия пакета выглядела как официальный релиз. Пайплайн сам собрал и опубликовал зараженную версию в PyPI, а также отправил вредоносный образ в GitHub Container Registry. Как объясняют специалисты, это произошло потому, что workflow для релиза в PyPI также содержал job для сборки и публикации Docker-образа.

Зараженная версия инструмента содержала файл elementary.pth, который автоматически выполнялся при старте Python и загружал стилер, нацеленный на кражу секретов разработчиков. Малварь стремилась похитить ключи SSH, учетные данные Git, облачные ключи AWS, GCP и Azure, секреты Kubernetes, Docker и CI, .env-файлы, токены разработчиков, а также файлы криптокошельков Bitcoin, Litecoin, Dogecoin, Zcash, Dash, Monero и Ripple.

Помимо этого, вредонос собирал системные данные, включая информацию из /etc/passwd, логи и историю шелла. Аналогичная полезная нагрузка попала и в Docker-образ проекта.

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

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

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

    Подписаться

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