Скомпрометированы популярные npm-пакеты

Неизвестные злоумышленники скомпрометировали несколько популярных npm-пакетов в ходе атаки на цепочку поставок.

Скомпрометированы популярные npm-пакеты

Несколько популярных npm-пакетов, используемых во множестве веб-проектов были скомпрометированы и троянизированы неизвестными злоумышленниками. Атакующие, при помощи фишинговой атаки на мейнтейнеров, смогли получить доступ как минимум к одному репозиторию и снабдить пакеты вредоносным кодом, служащим для охоты за криптоактивами. Все веб-приложения, собранные с применением троянизированных пакетов, превращаются в криптодрейнер. А таковых может быть достаточно много, поскольку у скомпрометированных пакетов было более двух миллиардов загрузок в день (по данным Aikido security).

Чем опасны троянизированные пакеты, использованные в этой атаке?

Во все пакеты был добавлен обфусцированный Javascript. Если скомпрометированный пакет используется в веб-приложении, то вредоносный код активизируется на устройствах пользователей, обращающихся к этому приложению. Действуя на уровне браузера, он перехватывает сетевой трафик и API-запросы и изменяет данные, связанные с криптокошельками Ethereum, Bitcoin, Solana, Litecoin, Bitcoin Cash и Tron. Зловред подменяет их адреса и перенаправляет транзакции в кошельки злоумышленников.

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

Как злоумышленникам удалось получить доступ к репозиториям

Атакующие воспользовались достаточно банальным приемом — они создали фишинговое письмо, в котором мейнтейнеров настоятельно просили при первом же удобном случае обновить учетные данные двухфакторной аутентификации. В противном случае им угрожали блокировкой учетной записи начиная с 10 сентября 2025 года. Письма были разосланы с почтового ящика на домене npmjs[.]help, похожего на легитимный npmjs.com. На том же домене располагался и фишинговый сайт, имитирующий официальную страницу реестра npm. Введенные на этом сайте учетные данные незамедлительно попадали в руки злоумышленников.

Атака прошла успешно как минимум против одного мейнтейнера, в результате чего злоумышленникам удалось скомпрометировать npm-пакеты color, debug, ansi-regex, chalk, и ряд других. Однако, по всей видимости, фишинговая атака была более обширна, потому что аналогичное письмо приходило и другим мейнтейнерам и разработчикам, так что полный список троянизированных пакетов может быть длиннее.


Комментарий от Леонида Безвершенко, старшего исследователя угроз информационной безопасности, Global Research & Analysis Team (GReAT):

Атака на пакеты npm с миллиардами скачиваний в неделю наглядно демонстрирует уязвимость цепочек поставок в экосистеме open-source. Несмотря на то, что в данном случае вредоносная нагрузка оказалась ограниченной — мошенникам удалось украсть всего десятки долларов, — ситуация могла развиться гораздо серьезнее.

Зараженные пакеты могли использоваться для компрометации корпоративных серверов, внедрения бэкдоров в системы управления бизнес-процессами или кражи конфиденциальных данных клиентов и партнеров. В таком сценарии мы бы получили масштабную компрометацию, аналогичную атаке XZ: компании, интегрировавшие вредоносные библиотеки во внутренние сервисы или SaaS-продукты могли передать заражение сотням или тысячам корпоративных клиентов.

Как и в случае с XZ, ключевым фактором стала не техническая уязвимость, а человеческий фактор — разработчик популярных npm-пакетов стал жертвой фишингового письма. Опыт показывает: мейнтейнеры широко используемого open-source неизменно остаются привлекательной целью для атакующих, ведь компрометация одного проекта может поставить под угрозу тысячи других систем.

Такой «эффект домино» может превратить единичную ошибку или неосторожность в проблему целой отрасли.

Какие именно пакеты были скомпрометированы

На момент написания этого поста известно что зловред был добавлен в следующие пакеты:

  • ansi-regex
  • ansi-styles
  • backslash
  • chalk
  • chalk-template
  • color-convert
  • color-name
  • color-string
  • debug
  • error-ex
  • has-ansi
  • is-arrayish
  • simple-swizzle
  • slice-ansi
  • strip-ansi
  • supports-color
  • supports-hyperlinks
  • wrap-ansi

Однако, как мы уже писали выше, список может пополняться. За его пополнением можно следить на GitHub.

Как оставаться в безопасности

Продукты «Лаборатории Касперского», включая Kaspersky Endpoint Security и Kaspersky Symphony, детектируют данную угрозу с вердиктами Trojan-Banker.Script.Osthereum с различными префиксами (HEUR, UDS, VHO) и модификациями, например HEUR:Trojan-Banker.Script.Osthereum.gen, а также Trojan.JS.Agent.exf с различными префиксами.

Для поиска можно использовать маски:

  • Trojan-Banker.Script.Osthereum
  • *Trojan.JS.Agent.exf

Фишинговый домен npmjs[.]help, с помощью которого взломали аккаунты меинтейнеров, также детектируется нашими продуктами. В частности, обращения к этому домену детектируют наши решения для сетевой безопасности, такие как KATA, NTA и .

Информация о вредоносных пакетах также была добавлена (и продолжает добавляться по мере обнаружения новых данных) в фид Open Source Software Threats Data Feed. Кроме того, наши аналитики сообщают о фактах обнаружения зараженных пакетов клиентам сервиса Kaspersky Managed Detection and Response.

Разработчикам рекомендуется провести аудит зависимостей в своих проектах и если там используются один из скомпрометированных пакетов, закрепить (pin) безопасную версию с помощью фичи overrides в package.json. Тут можно найти более подробную инструкцию.

Мейнтейнерам и разработчикам, имеющим доступ к репозиториям ПО с открытым исходным кодом, мы рекомендуем быть вдвойне осторожными при получении писем, убеждающих их войти в свои учетные записи. А еще лучше — также использовать защитные решения с антифишинговым движком.

Как уменьшить цифровой след детей и подростков

Безопасность детей в Интернете: гайд для родителей

Интернет помнит все, и то, что наши дети делают в Сети, может аукнуться им неприятностями как сразу, так и спустя продолжительное время. Рассказываем, как уменьшить цифровой след школьников без запретов и скандалов.

Как уменьшить цифровой след детей и подростков
Советы

Как отключить слежку в iOS?

У вас есть iPhone, iPad или iPod? Потратьте несколько минут на настройку служб геолокации, чтобы сэкономить заряд батареи и сохранить конфиденциальность перемещений.