Скачал обновление — удалил сервер. Коротко о том, как обстоят дела у пользователей npm

Как вредоносный код внедряется в систему и почему его почти невозможно заблокировать.


u91axwoh6yxj2yy84lzgykqxqpkh3ykb.jpg

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

Речь идёт о кампании CanisterWorm, за которой стоит группа TeamPCP. История началась с компрометации утилиты Trivy . В одной из версий злоумышленники встроили механизм кражи учётных данных в цепочку сборки. После запуска в среде разработки вредоносный код собирал токены npm и отправлял их атакующим. Дальше с помощью украденных токенов публиковались новые версии пакетов уже с внедрённой закладкой. Так пострадали десятки библиотек, включая пространство имён @opengov.

Каждая заражённая версия работает одинаково. При установке через npm автоматически запускается скрытый сценарий. Он записывает на систему жертвы вредоносный модуль на Python и добавляет службу в systemd, которая запускается при каждом входе в систему и переживает перезагрузки. Для этого не нужны права администратора, поэтому пользователь ничего не замечает.

Дальше вредоносный модуль связывается с сервером управления, который размещён не на обычном хостинге, а в сети Internet Computer. Такой выбор усложняет блокировку, поскольку нет привычного провайдера или доменного регистратора, через которых можно быстро отключить инфраструктуру.