Исследователи Solar 4RAYS представили в новом отчете большой обзор open-source-вредоносов, описав и систематизировав повторяющиеся приемы и техники атакующих с отражением на реальных примерах.
Исследование поможет погрузиться в проблему вредоносов в пакетных менеджерах в качестве небольшой «википедии» или для написания собственных правил детекта.
За последний год, с мая 2025 до июня 2026-го, они прогнали через свою систему анализа пакетов из пакетных менеджеров выборку вредоносных и подозрительных пакетов из npm и PyPI.
Это были обычные пакеты из публичных реестров зависимостей: библиотеки, консольные клиенты, SDK, плагины, генераторы шаблонов, devtools и прочие вещи, которые разработчики ставят каждый день.
Часть из них маскируется под полезные утилиты, часть ловит опечатки в именах, часть попадает в проекты как транзитивные зависимости, а самые опасные случаи вообще являются очередным релизом легитимного пакета после компрометации аккаунта разработчика или CI/CD-токенов.
Общее количество проанализированных пакетов исчисляется сотнями тысяч, а вредоносных - десятками тысяч. Самый частый общий паттерн - выполнение кода во время установки.
В npm он обычно проявляется через lifecycle scripts: preinstall, install и postinstall. В PyPI тот же класс атак чаще реализован через setup.py, custom install command, переопределенный cmdclass или модуль, который исполняется до нормального использования библиотеки.
Разница в точке входа. Злоумышленнику нужно добиться исполнения кода в момент установки зависимости, дальше сценарии похожи: собрать данные окружения, скачать полезную нагрузку, закрепиться, проверить окружение и отправить информацию о закреплении наружу.
Топ техник по текущему срезу представлен следующим образом: скрипт установки в npm - 63,8%, подозрительные внешние ссылки - 28,4%, сбор и отправка чувствительных данных в npm - 25,0%, postinstall с эксфильтрацией - 20,5%, динамическое исполнение кода - 7,0%, а также доступ к системным файлам Linux, обфускация JavaScript и подмена install-команд в Python - в среднем приблизтельно по 5 с лишним %.
Одиночные признаки часто дают ложноположительные сработки - Install script может быть легитимным, Base64 может быть токеном, забытым разработчиками, внешний URL может быть документацией или API.
Install hook вместе с сетевым кодом, сбором окружения, child process и обфускацией уже выглядит как атака. Есть и часто повторяющиеся паттерны во вредоносных пакетах.
Например, discord-/telegram-/webhook-паттерн встречается примерно в 10% текущей выборки. Сотни пакетов с очень похожей установочной логикой, но разными именами, metadata и webhook URL.
Как отмечают в Solar 4RAYS, за все время анализа картина получилась довольно прагматичной: большинство атак устроены просто. Они используют доверие к install lifecycle, привычные сетевые API, обфускацию и массовое размножение похожих пакетов.
Самые полезные сигналы появляются из комбинаций: install-time execution, сбор локальных данных, внешний endpoint, динамическое исполнение и маскировка полезной нагрузки.
Разбор реальных примеров в составе каталога, IOCs и рекомендации - в отчете.