Ssylka

Двойной удар по разработчикам: компрометация npm и фишинг в Rust

Компания Socket, специализирующаяся на безопасности цепочек поставок, раскрыла детали масштабной атаки, в ходе которой было скомпрометировано более 40 пакетов в реестре npm. Целью злоумышленников являлась кража учетных данных разработчиков, таких как API-токены и ключи облачных сервисов, а также создание постоянных бэкдоров в их репозиториях.
Двойной удар по разработчикам: компрометация npm и фишинг в Rust
Изображение носит иллюстративный характер

Механизм атаки заключался во внедрении вредоносной функции NpmModule.updatePackage в легитимные npm-пакеты. Эта функция скачивала оригинальный архив пакета, модифицировала его файл package.json и внедряла локальный скрипт bundle.js. После этого измененный архив перепаковывался и публиковался обратно в реестр npm как обновленная версия. Такой подход обеспечивал автоматическую троянизацию всех зависимых пакетов, которые использовали скомпрометированную библиотеку.

Основным инструментом атаки служил скрипт bundle.js. Он загружал и запускал легитимный инструмент с открытым исходным кодом TruffleHog, предназначенный для поиска секретов. Скрипт сканировал хост-машину разработчика, поддерживая операционные системы Windows и Linux, в поисках конкретных учетных данных.

Целями сканирования были токен GITHUB_TOKEN, токен NPM_TOKEN, а также ключи доступа AWS: AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY. Для проверки валидности найденных npm-токенов вредоносное ПО использовало конечную точку whoami. При обнаружении токена GitHub скрипт взаимодействовал с GitHub API. Также он предпринимал попытки обнаружения временных учетных данных в облачных средах сборки.

Все собранные данные отправлялись на конечную точку webhook[.]site, контролируемую злоумышленниками. Ключевой и наиболее опасной частью атаки является механизм сохранения присутствия. Используя украденные персональные токены доступа GitHub, скрипт создавал рабочий процесс GitHub Actions, который записывался в репозиторий жертвы в директорию .github/workflows. Этот бэкдор оставался активным даже после устранения первоначального заражения, позволяя злоумышленникам повторно извлекать данные при каждом запуске CI/CD-пайплайна.

Среди идентифицированных скомпрометированных пакетов значится @nativescript-community/sentry версии 4.6.43. Также были зафиксированы зараженные пакеты с версиями 1.2, 0.2.1 и 5.11.1. Разработчикам настоятельно рекомендуется провести аудит своих рабочих сред и сменить все npm-токены и другие секреты, которые могли быть скомпрометированы.

Параллельно с инцидентом в npm была зафиксирована фишинговая кампания, нацеленная на пользователей официального реестра пакетов Rust, . Атака проводилась с целью кражи их учетных данных GitHub через поддельную страницу входа.

Злоумышленники рассылали пользователям электронные письма с тайпсквоттингового домена rustfoundation[.]dev. В письме содержалось ложное утверждение о компрометации инфраструктуры . Получателю предлагалось перейти по встроенной ссылке для смены своей учетной информации.

Встроенная ссылка вела на фишинговый сайт github.rustfoundation[.]dev, который имитировал страницу входа GitHub. Цель этой страницы заключалась исключительно в сборе вводимых пользователями логинов и паролей.

Рабочая группа по реагированию на угрозы безопасности Rust (The Rust Security Response Working Group) официально заявила, что никаких доказательств компрометации инфраструктуры нет. Домен rustfoundation[.]dev не контролируется ни Rust Foundation, ни проектом Rust.

На момент публикации отчета фишинговая страница была уже недоступна. Команда Rust продолжает мониторинг активности в и предпринимает шаги для блокировки вредоносного домена.


Новое на сайте