Двойной удар по разработчикам: компрометация 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 продолжает мониторинг активности в и предпринимает шаги для блокировки вредоносного домена.


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

19856Яйца, которые спасли предков млекопитающих от худшего апокалипсиса на земле? 19855Могут ли омары чувствовать боль, и почему учёные требуют запретить варить их живыми? 19854Премия в $3 млн за первое CRISPR-лечение серповидноклеточной анемии 19853Почему сотрудники игнорируют корпоративное обучение и как это исправить 19852Тинтагель: место силы Артура или красивая легенда? 19851Голоса в голове сказали правду: что происходит, когда галлюцинации ставят диагноз точнее... 19850Куда исчезает информация из чёрных дыр, если они вообще исчезают? 19849Чёрная дыра лебедь Х-1 бросает джеты со скоростью света — но кто ими управляет? 19848Что увидели фотографы над замком Линдисфарн — и почему они закричали? 19847Почему антисептики в больницах могут создавать устойчивых к ним микробов? 19846Правда ли, что курица может жить без головы? 19845Как Оскар Уайльд использовал причёску как оружие против викторианской морали? 19844Назальный спрей против всех вирусов: как далеко зашла наука 19843«Я ещё не осознал, что мы только что сделали»: первая пресс-конференция экипажа Artemis II 19842Кто станет королевой: как голые землекопы решают вопрос власти кровью?
Ссылка