Атака на npm: вредоносные пакеты маскировались под знакомые CLI-команды

12 августа 2026 года исследователи зафиксировали публикацию 21 вредоносного пакета в реестре npm. Злоумышленники не занимали свободные имена обычных зависимостей, а нацелились на поле bin в файле package.json — именно оно определяет, какие команды CLI устанавливаются вместе с пакетом. Такой подход позволил имитировать исполняемые команды, предоставляемые популярными пакетами с ограниченной областью видимости (scoped packages), связанными с Google и другими крупными проектами.

Механика атаки: эксплуатация поля bin

Пакеты с ограниченной областью видимости, например @angular/localize, могут предоставлять неограниченные бинарные файлы (команды CLI), такие как localize-extract и localize-translate. Эти имена команд могут быть зарегистрированы независимо как публичные пакеты npm без префикса области видимости. Актор использовал скрапинг метаданных реестра npm, чтобы выявить пакеты с областью видимости, извлечь их записи bin, удалить область видимости и проверить, зарегистрированы ли соответствующие имена автономных пакетов.

В результате 18 из 21 вредоносного имени совпали с подтверждёнными бинарными файлами в общедоступных пакетах. При этом ни одно из 18 выявленных автономных имён не было зарегистрировано до начала кампании.

Масштаб и цели атаки

Среди целей оказались бинарные файлы, связанные со следующими пакетами:

  • @angular/localize
  • google-ads-api-report-fetcher
  • chromecast-webdriver-server
  • @google/gemini-cli-a2a-server
  • @google/chrome-enterprise-premium-mcp
  • @googlemaps/code-assist-mcp
  • @googlemaps/github-policy-bot
  • @bazel/bazelisk
  • koa-karma-proxy проекта Polymer

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

Риски и последствия

Данная техника создаёт риск случайной установки вредоносного пакета: разработчики или автоматизированные системы могут вызвать знакомое имя CLI, не осознавая, что оно разрешается в совершенно другой пакет. Особенно опасна ситуация, когда имя команды используется без указания области видимости — например, вместо @angular/localize вызывается просто localize-extract.

Как отмечается в отчёте, «этот путь атаки не защищён общими средствами защиты от путаницы зависимостей, такими как публикация пакетов с областью видимости, разрешающие списки реестров или привязка файлов блокировки, когда вредоносный пакет намеренно назван в честь исполняемого файла, а не самой зависимости».

Иными словами, традиционные меры против подмены зависимостей (dependency confusion) не срабатывают, если злоумышленник регистрирует имя, совпадающее с бинарным файлом, а не с именем исходного пакета.

Рекомендации экспертов

Для снижения рисков организациям рекомендуется:

  • Провести инвентаризацию записей bin в рамках доверенных областей видимости, используемых в проектах.
  • Отслеживать наличие отдельных пакетов, чьи имена совпадают с командами CLI из доверенных источников.
  • Рассматривать неожиданные пакеты, предоставляющие знакомые бинарные файлы CLI, как потенциальные угрозы цепочке поставок.
  • Внедрить дополнительные проверки при установке зависимостей, особенно если имя пакета совпадает с известной командой без области видимости.

Инцидент подчёркивает важность внимательного отношения не только к именам пакетов, но и к именам исполняемых файлов, которые они предоставляют. Атаки на цепочку поставок продолжают эволюционировать, и защита должна учитывать все возможные векторы.

Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.

Ознакомиться подробнее с отчетом можно по ссылке.

Технологии киберугроз
Автор: Технологии киберугроз
Технологии киберугроз – технологическая компания, специализирующаяся на решениях по анализу угроз для предприятий любого размера. Мы собираем, нормализуем, обогащаем информацию о киберугрозах со всего мира. Нашими источниками являют более 260 открытых фидов, более 100 открытых поставщиков Threat Intelligence-отчетов, открытые online sandbox, социальные сети и репозитории GitHub. Мы также предоставляем ряд сервисов по: семантическом анализу Threat Intelligence-отчетов и приведения их в машиночитаемый формат STIX 2.1, проверки IoC на потенциальные ложноположительные сработки, а также получению WHOIS-записей для доменных имен.
Комментарии: