В октябре 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 фрагмент для предварительного заполнения фишинговой формы.
| 1 | <script src="https://unpkg[.]com/redirect-abc123@1.0.0/beamglea.js" defer></script> |
Что касается временной линии инцидента, первые следы инфраструктуры были зафиксированы 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"