Исследовательская группа Socket Threat Research Team раскрыла целевую и продолжительную фишинг-кампанию, которая на протяжении как минимум пяти месяцев злоупотребляла реестром npm в качестве инфраструктуры хостинга и распространения. Эксперты идентифицировали 27 вредоносных пакетов, опубликованных под шестью разными псевдонимами. Эти пакеты были предназначены для доставки компонентов фишинга, исполняемых в браузере и имитирующих защищённые порталы для обмена документами, а также страницы входа Microsoft.
Описание
Кампания является высокотаргетированной, ориентируясь на сотрудников отделов продаж и коммерческих подразделений организаций, связанных с критической инфраструктурой в США и странах-союзниках. В рамках этого кластера было выявлено 25 конкретных целевых лиц из секторов производства, промышленной автоматизации, пластиков и здравоохранения. Это указывает на тщательную подготовку, ориентированную на конкретных жертв, а не на широкое и случайное распространение.
Данная операция перепрофилирует npm и сети доставки контента (CDN) пакетов в устойчивую хостинговую инфраструктуру. Она доставляет клиентские HTML и JavaScript-приманки, которые злоумышленник напрямую встраивает в фишинговые страницы. Все пакеты следуют одинаковой схеме. Например, пакет adril7123, который на момент публикации отчёта всё ещё оставался активным, доставляет компонент, исполняемый в браузере. Этот компонент заменяет содержимое страницы, отображает шлюз верификации для «безопасного обмена документами», а затем перенаправляет жертву на стилизованную под Microsoft страницу входа с предзаполненным адресом электронной почты цели для кражи учётных данных. Данный и другие пакеты в кластере также содержат клиентские средства защиты, призванные затруднить анализ, включая поля-ловушки (honeypot), проверки на ботов и блокировку, требующую взаимодействия с мышью или сенсорным вводом для продолжения. После завершения процесса скрипт перенаправляет браузер на контролируемую злоумышленником инфраструктуру, передавая идентификатор жертвы в фрагменте URL для последующего сбора данных.
Несколько доменов, встроенных в эти пакеты, пересекаются с публично задокументированной инфраструктурой для фишинга по схеме «злоумышленник посередине» (Adversary-in-the-Middle, AiTM). Эта инфраструктура ассоциируется с шаблонами редиректоров Evilginx, такими как пути "/wlc/", "/load/" и "/success/". В сценариях AiTM такая передающая инфраструктура может не просто собирать пароли. Она способна выступать в роли прокси-сервера, контролируемого угрозой, и красть сессионные файлы cookie или токены во время интерактивной аутентификации, что может нивелировать защиту традиционного многофакторного аутентификации (MFA). Исследователи уже сообщили о кампании и оставшемся активном пакете команде безопасности npm, запросив блокировку аккаунта издателя. Также было направлено уведомление 25 целевым организациям с предоставлением соответствующих индикаторов компрометации для поддержки расследования.
Стратегия злоумышленников демонстрирует, что экосистема npm может функционировать как фишинг-инфраструктура, а не только как вектор компрометации на этапе установки. Ещё в октябре 2025 года анализировалась кампания Beamglea, в которой сотни одноразовых пакетов npm использовались в качестве редиректоров, размещённых на CDN, для перенаправления жертв с локальных приманок на страницы сбора учётных данных. Однако текущая кампания, судя по структуре пакетов, шаблонам реализации и непересекающейся инфраструктуре сбора данных, оценивается как отдельная операция, которую приписывают другому субъекту угроз.
Вредоносная нагрузка (payload) начинается с приманки, имитирующей сервис обмена документами под названием «MicroSecure». Страница утверждает, что бизнес-документы были отправлены конкретному получателю, чей адрес электронной почты жёстко вшит в код. Для большей убедительности приманка ссылается на поддельный файл Documents.pdf, якобы содержащий коммерческие предложения и технические чертежи. Взаимодействие заблокировано базовыми средствами защиты от анализа. Кнопка «Verify and Continue» остаётся неактивной до обнаружения действий пользователя. Правая кнопка мыши и действия с буфером обмена также блокируются.
Для противодействия автоматическому анализу пакеты реализуют лёгкие клиентские проверки. Скрипт ищет сигналы автоматизации, включая свойства "navigator.webdriver", пустые списки плагинов, аномальные размеры экрана и строки пользовательского агента, связанные с краулерами или headless-браузерами. При срабатывании этих проверок поток блокируется. Страница также требует реального пользовательского ввода, активируя кнопку только после прохождения проверок на бота и регистрации событий движения мыши или касания.
Классический метод защиты - использование полей-ловушек. Обе стадии фишингового процесса включают скрытое текстовое поле с именем "company", которое не предназначено для заполнения реальным пользователем. Однако многие автоматические сканеры и «умные» заполнители форм заполняют все видимые в DOM поля. Если это поле содержит какое-либо значение, скрипт блокирует продолжение и выводит общую ошибку верификации. На финальном этапе скрипт повторно запускает проверки. В случае неудачи он отображает сообщение о «подозрительной активности», очищает содержимое страницы и оставляет чёрный экран, что затрудняет повторный анализ.
После отправки жертвой учётных данных на поддельной странице входа Microsoft компонент не выполняет реальную аутентификацию. Вместо этого он перенаправляет браузер на внешний конечный пункт, контролируемый злоумышленником, передавая идентификатор жертвы для последующего отслеживания. В рамках этого кластера были выявлены такие контролируемые угрозой хосты, как "livestore[.]click", "hexrestore[.]online" и другие. Эти конечные пункты используются для передачи жертвы со стадии приманки, размещённой в npm/CDN, на веб-инфраструктуру злоумышленника, где происходит сбор данных и, возможно, перехват сессии.
Кампания построена вокруг тщательно отобранного списка целей, а не массовой рассылки. Адреса электронной почты получателей вшиты в пакеты и связаны с конкретными лицами, которые, как правило, занимают коммерческие роли, такие как менеджеры по работе с клиентами или продажам. Эти сотрудники регулярно работают с входящими запросами и общими документами, что делает их более уязвимыми для такой приманки. Целевые организации сосредоточены в секторах, смежных с критической инфраструктурой: производство, промышленная автоматизация, поставки пластиков и фармацевтическое производство. Географически цели охватывают США, страны Европы и Восточной Азии.
Исследователи предполагают, что злоумышленник мог получить контакты из публичных источников, таких как каталоги участников крупных международных выставок (например, Interpack и K-Fair), где многие целевые компании представлены в качестве экспонентов. Дополнением к этому, вероятно, служит разведка в открытых источниках, включая LinkedIn, где коммерческие сотрудники часто публикуют информацию о своей роли и работодателе.
Реестр npm часто становится объектом злоупотреблений в подобных кампаниях. В этой модели «пакет» - это скорее примитив доставки, чем зависимость. Он может содержать фишинговый компонент или полную визуальную приманку, исполняемую в браузере, даже если никогда не запускается в Node.js. Пока CDN пакетов остаются надёжным каналом распространения, злоумышленники могут использовать реестры как устойчивый хостинг, устойчивый к удалению, недорогой в эксплуатации и позволяющий легко менять псевдонимы издателей и имена пакетов. В будущем подобные кампании, вероятно, продолжат разделять функциональность между несколькими пакетами, добавлять больше проверок на взаимодействие и противодействие анализу, а также чередовать домены и пути CDN.
Для снижения рисков эксперты рекомендуют ужесточить контроль как за цепочкой поставок программного обеспечения, так и за средой исполнения в браузере. Следует тщательно проверять зависимости, блокировать версии пакетов и сканировать на предмет подозрительных артефактов, таких как запакованные HTML-шаблоны или сильно обфусцированные бандлы для браузера. Необходимо отслеживать запросы к CDN из непроизводственных контекстов. Также важно учитывать возможность атак по схеме AiTM и внедрять устойчивую к фишингу многофакторную аутентификацию, например, на основе WebAuthn (пассключей). Мониторинг сигналов компрометации после аутентификации, таких как подозрительные события входа или аномальные события OAuth, также является критически важным.
Индикаторы компрометации
Domains
- extfl.roundupactions.shop
- hexrestore.online
- jigstro.cloud
- leoclouder.online
- livestore.click
URLs
- hexrestore.online/load/
- jigstro.cloud/wlc/
- leoclouder.online/load/
- leoclouder.online/success/
- livestore.click/wlc/
Threat Actor Email Addresses
- briandmooree@proton.me
- fineboi231@proton.me
- icpc12@proton.me
- michael.shaw119@proton.me
- nuelvamp@proton.me
- safehavenbill@proton.me
Malicious npm Packages
- adril7123
- androidvoues
- ardril712
- arrdril712
- assetslush
- axerification
- erification
- erificatsion
- errification
- eruification
- hgfiuythdjfhgff
- homiersla
- houimlogs22
- iuythdjfghgff
- iuythdjfhgff
- iuythdjfhgffdf
- iuythdjfhgffs
- iuythdjfhgffyg
- jwoiesk11
- modules9382
- onedrive-verification
- sarrdril712
- scriptstierium11
- secure-docs-app
- sync365
- ttetrification
- vampuleerl