
Сразу две громкие атаки потрясли мир open-source в начале сентября. Хакеры атаковали самые уязвимые места — пакеты NPM и систему автоматизации GitHub. В одном случае они тайно внедрили вредоносный код в процессы сборки проектов, в другом — взломали аккаунт разработчика и заразили библиотеки, которые скачивают миллионы раз. Далее разбираемся подробнее.
Массовая атака GhostAction скомпрометировала сотни репозиториев на GitHub
Исследователи кибербезопасности из GitGuardan обнаружили масштабную кампанию GhostAction, в результате которой было взломано 327 аккаунтов GitHub. Злоумышленники внедрили вредоносные скрипты (GitHub Actions) в 817 репозиториев, что привело к утечке 3325 конфиденциальных данных. Целью атаки стали токены доступа к ключевым сервисам разработки, включая реестры PyPI, NPM, DockerHub и облачные платформы.
Вредоносный код, замаскированный под легитимный обработчик «Github Actions Security», перехватывал и передавал на внешний сервер все переменные окружения, используемые в процессах автоматизации CI/CD.
Триггером для расследования послужили подозрительные изменения в популярном пакете FastUUID. Анализ показал, что его maintainer добавил коммит с кодом, отправляющим токен доступа к PyPI на сторонний ресурс. Благодаря оперативному реагированию, злоумышленникам не удалось воспользоваться украденными учетными данными. Владельцы затронутых проектов и администрации платформ были уведомлены о инциденте, а большая часть вредоносных коммитов уже отменена.
Фишинговая атака на разработчика привела к заражению популярных NPM-пакетов
В результате целевой фишинговой атаки злоумышленники получили доступ к учетной записи сопровождающего 18 крайне популярных NPM-пакетов, еженедельное количество загрузок которых исчисляется миллиардами. Это одна из крупнейших атак на экосистему JavaScript, которая затронула не только сами пакеты, но и сотни тысяч проектов, использующих их в качестве зависимостей.
Среди скомпрометированных библиотек — такие фундаментальные для миллионов проектов пакеты, как debug, chalk, ansi-styles и color-convert. Например, chalk и debug являются прямыми зависимостями для десятков тысяч других модулей в NPM.
Атака началась с фишингового письма, отправленного мэйнтейнеру Джошу Джунону (Josh Junon) с адреса, имитирующего службу поддержки NPM. Сообщение, маскировавшееся под уведомление о необходимости обновить настройки двухфакторной аутентификации, вело на сайт-клон npmjs.com. Этот сайт работал как прокси, в реальном времени перехватывая логин, пароль и коды 2FA жертвы.
Используя полученные учетные данные, злоумышленники опубликовали новые вредоносные версии пакетов. Код был нацелен на кражу криптовалют: он незаметно подменял реквизиты получателя в транзакциях Ethereum, Bitcoin, Solana и других сетей прямо в браузере жертвы, манипулируя данными на уровне сетевых запросов. Также сообщается о функционале для сбора паролей и токенов.
Более подробно рассказали о компрометации NPM-пакетов и дали несколько рекомендаций по устранению в статье на Хабре.
По предварительным оценкам, зараженные версии пакетов были скачаны более 2.5 миллионов раз до того, как угроза была обнаружена и нейтрализована.