Червь Shai-Hulud вышел из режима одной громкой кампании и начал тиражироваться чужими руками: после публикации исходников на GitHub исследователи уже нашли четыре вредоносных npm-пакета, собранных по тому же шаблону. Для разработчиков и команд, которые живут на open source и CI/CD, это неприятный сигнал: теперь речь не о единичном инциденте, а о модели атаки, которую можно быстро копировать и масштабировать.
Как пишет Dark Reading, исходный код Shai-Hulud опубликовала на GitHub группа TeamPCP, которую связывают с прежними атаками этого семейства. Оригинальный репозиторий, размещённый 12 мая, GitHub удалил, но форки успели разойтись. И это тот случай, когда удаление одной страницы уже мало что меняет: если рабочий образец червя оказался в открытом доступе, дальше начинается обычная для подпольного рынка история с клонами, вариациями и тестами на живой инфраструктуре.
Сам Shai-Hulud появился прошлым летом и ударил по npm не за счёт громкой экзотики, а за счёт неприятно практичной механики. Сценарий выглядел так: разработчик скачивал заражённый open source-компонент, вместе с ним получал инфостилер, после чего злоумышленники использовали скомпрометированный npm-аккаунт, чтобы публиковать уже от имени жертвы вредоносные зависимости в пакетах, которые она поддерживает. Дальше цикл повторялся почти без ручного участия атакующего. Это и отличает червя от привычного тайпсквоттинга: вредоносный пакет здесь не финальная точка, а только вход в цепочку самораспространения.
До сих пор защитники успевали сдерживать такие кампании, и ущерб, по оценке собеседников Dark Reading, оставался относительно ограниченным, несмотря на вал атак на разработчиков за последние месяцы. Но после публикации кода ситуация меняется. Директор по информационной безопасности Mondoo Патрик Мюнх в свежем разборе описал новый эпизод: один из атакующих загрузил с одного npm-аккаунта сразу четыре вредоносных пакета. Среди них был почти дословный клон Shai-Hulud с собственной инфраструктурой управления, три тайпсквота под Axios и полезная нагрузка для DDoS-ботнета, которая подключает заражённые машины к сети для флуд-атак.
На первый взгляд цифры не выглядят апокалиптично: суммарно все четыре пакета набрали около 2600 загрузок за неделю. Но в этой истории важна не текущая статистика, а снижение порога входа. Мюнх называет Shai-Hulud прототипом новой автоматизированной атаки на цепочку поставок ПО, где оружием становится не только уязвимый пакет, но и доверие к личности разработчика и к самим конвейерам CI/CD. Если раньше атакующему нужно было отдельно придумывать легенду, вредонос, инфраструктуру и схему распространения, то теперь у него есть рабочий конструктор: меняешь endpoint управляющего сервера, подставляешь свой ключ подписи, слегка варьируешь полезную нагрузку — и запускаешь новую волну.
Самый тревожный вывод Mondoo как раз в этом. По данным компании, клоны не требуют особенно тонкой доработки. Флагманский образец, опубликованный под именем chalk-tempalte — с опечаткой в названии популярного пакета chalk-template — оказался почти прямой копией утекшего Shai-Hulud. Атакующий просто заменил C2-инфраструктуру и ключ подписи, почти не занимался обфускацией и всё равно получил рабочую схему. На практике это означает, что защитникам придётся ловить уже не одного узнаваемого червя, а популяцию вариантов с разными серверами, ключами и нагрузками, которые достаточно похожи, чтобы быть опасными, но достаточно разными, чтобы ломать простые сигнатурные правила.
Есть и ещё один штрих, который хорошо показывает направление рынка вредоносного ПО. По наблюдениям Mondoo, инфостилеры внутри четырёх пакетов различались по возможностям, а часть из них, вероятно, была «машинно собрана». Иными словами, злоумышленник может быстро штамповать несколько вредоносных сборок параллельно и проверять, какая лучше проходит защиту и даёт больше украденных учётных данных. Старший инженер SafeBreach Эдриан Калли в комментарии Dark Reading смотрит на историю ещё жёстче: по его версии, публикация кода больше похожа не на хвастовство, а на маркетинг для бизнеса по продаже доступа. Если чужие копии всё равно кормят экосистему кражи учётных данных, то шум вокруг червя помогает перегрузить защитников, пока реальные креды тихо уходят с рабочих станций и CI-раннеров.
Для разработчиков и бизнеса вывод довольно приземлённый. Атакующая поверхность теперь находится не только в коде зависимостей, но и в самом доверии к аккаунтам мейнтейнеров, скриптам установки и автоматике релизов. Mondoo советует включить в менеджере пакетов как минимум три контроля: по умолчанию блокировать lifecycle-скрипты, вводить задержку перед выпуском релиза и отслеживать любые понижения уровня доверия. За пределами пакетного менеджера рекомендации тоже не выглядят декоративными: аудит install-time code execution, пересмотр того, какие зависимости вообще имеют право выполнять код при установке, и ротация учётных данных, которые успели побывать на машинах разработчиков или CI-узлах, контактировавших с подозрительными пакетами.
Именно здесь история с червём Shai-Hulud становится важной не только для специалистов по AppSec, но и для продактов, CTO, платформенных команд и даже IT-рекрутинга. Когда supply chain-атака начинает опираться на реальные аккаунты разработчиков и доверенные пакеты, цена ошибки уходит далеко за пределы одного репозитория. Вопрос уже не в том, появятся ли новые копии, а в том, как быстро open source-экосистемы и корпоративные пайплайны перестроятся с модели «доверяем по умолчанию» на модель постоянной проверки. За подробностями исходного кейса можно обратиться к .