Более 300 пакетов npm оказались скомпрометированы саморазмножающимся червём

NPM-пакет tinycolor, представляющий собой широко используемую библиотеку для управления цветом, был скомпрометирован в ходе атаки. Она затронула более 40 пакетов библиотеки, а после самораспространяющийся червь заразил ещё более 300. 

Это серьёзный инцидент безопасности, учитывая, что исходный NPM-пакет насчитывает 2 млн еженедельных загрузок. 

Как выяснили исследователи компании Socket, злоумышленники смогли распространить вредоносное ПО с помощью функции NpmModule.updatePackage, внедрённой в скомпрометированные библиотеки. Она автоматизировала процесс заражения, загружая tar-архив пакета новой цели. Затем червь изменял файл package.json, внедрял вредоносный скрипт bundle.js, переупаковывал архив и повторно публиковал его в реестре npm, используя украденный токен. Червь ищет переменные окружения, такие как NPM_TOKEN, что позволяет ему находить учётные данные для дальнейшего распространения на пакеты, обслуживаемые скомпрометированной учётной записью.

По данным Socket, учётная запись npm CrowdStrike также была скомпрометирована, и несколько её пакетов были заражены вредоносным ПО. После этого компания, специализирующаяся на безопасности, удалила их и сменила учётные данные. 

Кампания получила название Shai-Hulud из-за файлов рабочих процессов shai-hulud.yaml, обнаруженных во вредоносе. Атака довольно сложна и использует TruffleHog, легитимный инструмент для скрытого сканирования, чтобы искать и проверять учётные данные перед их передачей в веб-перехватчик.

Вот лишь некоторые из затронутых пакетов:

@ctrl/tinycolor;

ngx-toastr;

@crowdstrike/glide-core;

angulartics2;

eslint-config-crowdstrike;

@nativescript-community/ui-collectionview.

Затронутым разработчикам рекомендуют полностью удалить вредоносные пакеты из своих проектов с помощью команды npm uninstall. Они также могут прикрепить зависимости к заведомо исправной версии через команду npm install @ —save-exact.

Поскольку этот червь активно ищет и извлекает секреты, рекомендуется также регулярно обновлять все учётные данные, доступные в системе — токены NPM, токены личного доступа GitHub, секреты Actions, ключи SSH и любые учётные данные для облачных сервисов AWS, Google Cloud или Azure. Наконец, следует циклически повторять ключи API, строки подключения к базе данных и любые секреты, хранящиеся в таких сервисах, как AWS Secrets Manager.

Источник: habr.com

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии