Фишинговая атака через npm: злоумышленники превратили легитимный CDN в механизм кражи учетных данных

information security

В октябре 2025 года исследователи кибербезопасности обнаружили масштабную фишинговую операцию, которая необычным образом использует экосистему npm (Node Package Manager). В отличие от традиционных атак на цепочку поставок, направленных на заражение разработчиков во время установки пакетов, злоумышленники применили новую тактику - превратили доверенный CDN-сервис unpkg.com в платформу для хостинга и доставки фишинговых скриптов.

Описание

По данным компании Socket Security, первой опубликовавшей исследование об этой кампании, злоумышленники создали более 175 одноразовых пакетов в репозитории npm. Эти пакеты служили disposable-хостингом для JavaScript-кода, который автоматически перенаправлял жертв на сайты сбора учетных данных при открытии специально сформированных HTML-документов, маскирующихся под бизнес-документацию.

Целями атаки стали сотрудники более 135 организаций промышленного, технологического и энергетического секторов, преимущественно в Европе. После раскрытия информации компанией Socket, специалисты Snyk провели дополнительный анализ и идентифицировали отдельный кластер пакетов с именами по схеме mad-x.x.x.x.x.x (где x - случайное число). Эти пакеты демонстрируют схожую инфраструктуру и цели, что может указывать либо на связь с первоначальной кампанией, либо на эксперименты подражателей.

Ключевое отличие этой кампании от классических компрометации цепочки поставок заключается в механизме доставки. Вместо заражения пользователей через команду npm install, злоумышленники использовали браузерный путь доставки через unpkg. Это превращает легитимную инфраструктуру хостинга открытого исходного кода в фишинговый механизм, что свидетельствует о поиске злоумышленниками новых способов оружиеиспользования экосистемы open source.

Технический механизм атаки включает несколько этапов. Сначала злоумышленники автоматизировали создание множества npm-пакетов с паттерном имен redirect-[a-z0-9]{6}, содержащих минимальный набор файлов: beamglea.js и HTML-приманки. После публикации пакета его содержимое немедленно становилось доступным через популярный централизованный CDN-ресурс unpkg.com. Целевые пользователи получали кастомные HTML-файлы, часто имитирующие счета и другую документацию. При открытии этих файлов происходила загрузка скрипта с распаковкой, который немедленно перенаправлял жертву на контролируемую атакующими страницу, передавая email пользователя через URL фрагмент для предварительного заполнения фишинговой формы.

Что касается временной линии инцидента, первые следы инфраструктуры были зафиксированы 24 сентября 2025 года. 9 октября Socket опубликовала детальное исследование, раскрывающее 175 пакетов, кодовое имя "Beamglea", схему именования redirect-* и информацию о более чем 135 пострадавших организациях. Уже 10 октября внутренний анализ Snyk документировал дополнительные пакеты со схемой именования mad-*, которые все еще изучаются.

Анализ пакетов mad-* показал, что они содержат фейковую страницу "Cloudflare Security Check", которая скрытно перенаправляет пользователей на контролируемые злоумышленниками URL, загружаемый с удаленного GitHub-хоста. Код включает сложную логику антианализа, блокирующую клавиши для инструментов разработчика и пытающуюся перенаправить верхнее окно после нажатия фейкового флажка.

Модуль защиты от анализа включает несколько уровней. Код периодически проверяет наличие открытых developer tools и при обнаружении очищает страницу или перенаправляет пользователя. Реализовано отключение правого клика, клавиши F12, распространенных сочетаний клавиш для devtools и функций "просмотр исходного кода"/"сохранение". При активации чекбокса "I am not a robot" отображается спиннер, затем происходит получение удаленного текстового файла, и если он содержит URL, браузер (или его родительский frame) перенаправляется по этому адресу.

Полный обфусцированный код script.js демонстрирует сложный подход к реализации фишингового механизма. Функции включают проверки статуса запросов, валидацию URL-формата, обработку ошибок и множественные попытки перенаправления через разные объекты window. Особенностью является использование GitHub-репозитория для хранения целевых URL, что позволяет атакующим динамически менять направления перенаправления без изменения кода в npm-пакетах.

Основными пострадавшими компонентами являются любые пользователи, открывающие HTML-приманки кампании в браузере с последующей загрузкой скрипта с unpkg.com. В отличие от многих атак на цепочку поставок программного обеспечения, целевой аудиторией here стали корпоративные сотрудники, а не разработчики.

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

Индикаторы компрометации

Domains

  • cfn.jackpotmastersdanske.com

URLs

  • https://unpkg.com/redirect-<6-char-suffix>@<semver>/beamglea.js

HTML meta tag

  • name="html-meta" content="nb830r6x"

Схожие индикаторы

Комментарии: 0