Кампания Contagious Interview: северокорейские хакеры разместили 338 вредоносных пакетов в npm

information security

Исследовательская группа Socket Threat Research обнаружила масштабную кампанию кибершпионажа, связанную с северокорейскими государственными хакерами. Злоумышленники систематически размещают вредоносные пакеты в реестре npm, используя тактику социальной инженерии против разработчиков криптовалютных и блокчейн-проектов.

Описание

Согласно отчету, с момента предыдущего обновления 14 июля 2025 года было выявлено 338 вредоносных пакетов, которые суммарно скачали более 50 000 раз. На момент публикации исследования 25 пакетов оставались активными в реестре npm. Исследователи направили запросы на удаление опасного кода и приостановку associated учетных записей издателей.

Кампания получила название Contagious Interview (заразительное интервью) из-за характерного метода атаки: злоумышленники представляются рекрутерами в LinkedIn и предлагают жертвам выполнить тестовое задание, содержащее вредоносные зависимости. Целями становятся разработчики в сфере Web3, криптовалют и блокчейна, а также соискатели технических вакансий.

Технический анализ показал эволюцию инструментария хакеров. Изначально использовались прямые дропперы вредоносного ПО BeaverTail, но теперь злоумышленники перешли к более сложным загрузчикам HexEval, XORIndex и зашифрованным модулям. Каждый пакет выполняет код при установке или импорте, восстанавливает обфусцированный BeaverTail в памяти и загружает бэкдор InvisibleFerret для обеспечения постоянства.

Особенностью кампании является волнообразный и итеративный характер. Хакеры регулярно публикуют новые пакеты с опечатками в названиях (typosquatting), модифицируют код загрузчиков и масштабируют дистрибуцию через новые псевдонимы. Было зафиксировано использование более 180 фальшивых личностей, связанных с новыми npm-алиасами и регистрационными email-адресами, а также более десятка командных серверов.

В текущей волне атаки используются названия, похожие на популярные зависимости, которые разработчики часто устанавливают автоматически: epxreso (вместо express), dotevn (вместо dotenv), boby_parser (вместо body-parser) и другие. Также targeted пакеты для Web-разработки: react-router-html, vite-plugin-react-ping и аналоги.

Эксплуатация начинается в момент выполнения кода злоумышленника на машине жертвы. В этой кампании исполнение является пользовательским, а не уязвимостью. Установка или импорт активируют логику хакеров через npm lifecycle hooks, такие как postinstall, или через entry points, которые выполняют код при загрузке модуля.

Исследователи обнаружили проблемы в механизмах безопасности npm registry. Например, alias anarenhsaihan опубликовал два вредоносных пакета: jito-components (уже удален и заменен security holding page) и components-flexibility (оставался активным на момент написания отчета). Несмотря на удаление первого пакета, учетная запись хакера не была приостановлена, что позволило опубликовать второй вредоносный пакет.

Установка вредоносных пакетов напоминает матрешку: небольшой загрузчик запускается первым, восстанавливает BeaverTail в памяти, после чего BeaverTail загружает и активирует бэкдор InvisibleFerret. Новые зашифрованные загрузчики используют AES-256-CBC с жестко заданными ключами и векторами инициализации, храня зашифрованный текст в файлах типа LICENSE.

BeaverTail устанавливает командное управление через HTTP(S) и WebSocket, регистрирует хост, получает задания и подготавливает InvisibleFerret - кроссплатформенный Python-бэкдор для Windows, macOS и Linux. Инфраструктура смешивает raw IP-адреса на коммерческих VPS с легитимными hosting-платформами типа *.vercel.app для маскировки под developer-трафик.

Основные цели кампании - кража криптовалют и сохранение постоянства для дальнейших атак. По независимым оценкам, северокорейские хакеры уже похитили $2 миллиарда в 2025 году и approximately $1.34 миллиарда в 2024 году. Украденные активы обычно проходят через миксеры, cross-chain свопы и сети с низкой видимостью.

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

Для защиты рекомендуется рассматривать каждую установку npm как выполнение кода и блокировать risky behavior до попадания на developer-машины или в CI/CD-пайплайны.
Следует сканировать код и запросы (pull requests) на включение в самом начале, требовать чистый отчет перед слиянием и проверять внешние библиотеки на происхождение, безопасность для сопровождающего и зафиксированные версии.

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

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

IPv4

  • 135.181.123.177
  • 138.201.50.5
  • 144.172.105.235
  • 144.172.112.106
  • 146.70.253.107
  • 23.127.202.249
  • 23.227.202.244

URLs

  • http://fashdefi.store:6168/defy/v7
  • https://0927.vercel.app/api/ipcheck
  • https://api.npoint.io/b964566497d98298d32c
  • https://ip-check-server.vercel.app/api/ip-check/208
  • https://json-project-hazel.vercel.app/apikey/QWERTYU890T12HML
  • https://log-server-lovat.vercel.app/api/ipcheck/703
  • https://process-log.vercel.app/api/ipcheck
  • https://process-log-update.vercel.app/api/ipcheck

Emails

Malicious npm Packages

  • alchmey-sdk
  • alert-codestreamer
  • async-chai
  • babel-cli-ganache
  • bind-error
  • bingo-abstract-transport
  • bingo-log
  • bingo-logger
  • bingo-pretty
  • boby_parser
  • btrez-logger
  • case-sensitive-paths
  • chai-utils
  • chartable-utils
  • checking-ip
  • checking-ips
  • chunk-logger
  • colorful-buttons
  • common-js-support
  • common-logify
  • components-flexibility
  • config-log
  • cookie-logger
  • cookie-loggers
  • cookie-loggo
  • cookie-parsing
  • cookies-logger
  • cors-validator
  • cross-session
  • ddok-escapes
  • display-notifications
  • dotevn
  • dragon0905-vite-tsconfig-assistant
  • emittery-up
  • epxreso
  • epxresso
  • epxressoo
  • err-notification
  • error-analysis
  • error-fallback
  • error-loggerjs
  • eslint-config-detector
  • eslint-detector
  • eslint-logger
  • eslint-plugin-react-purify
  • eslint-ts-view
  • eslint-validation-cli
  • eslints-logger
  • eth-node-utils
  • etherres
  • ethres.js
  • ethrs.js
  • express-prisma
  • express-xmlrequest
  • file-uploading-advance
  • filigrean-icon
  • filigren-icon
  • filigron-icon
  • filiogrean-ico
  • financial-utils
  • flowhint
  • flowico
  • flowmint
  • foudry
  • foundary
  • foundrey
  • foundri
  • frontend-cron
  • func-analys
  • func-analyst
  • func-analysis
  • func-logger
  • fundry
  • gad-logger
  • ganac
  • ganacche
  • ganacha
  • ganachee
  • ganachhe
  • gannache
  • gatepass
  • glow-admin
  • gnach
  • gridmind
  • hardhat-deploy-notification
  • hardhat-deploy-notifier
  • hashsentinel
  • http-err-notification
  • http-helmet
  • http-req-logger
  • httpreslog
  • httpreqlog
  • husky-es
  • husky-logger
  • icon-sea
  • ip-checkers
  • ip-checking
  • ip-checks
  • item-box
  • jito-components
  • jnscript
  • js-notifiers
  • json-configs
  • json-confs
  • json-log-stream
  • json-weqjoken
  • json-webhooks
  • jsonlise-conf
  • jsons-logger
  • jsonstylizer
  • layzr
  • log-task
  • log4action
  • logger-cookie
  • logger-extjs
  • logger-pino
  • logging-winston
  • logflow-json
  • login-tokenizer
  • lovable-ci
  • lovable-cli
  • lovable-cookie-logger
  • lovable-cookies-logger
  • lovable-js
  • lovable-logger
  • lovable-loggers
  • lovable-react
  • lovable-ts
  • luma-glow-db
  • matrix-charts
  • mega-compress
  • metamask-api
  • middleware-loggers
  • mongodb-cd
  • mongodb-ci
  • mongodb-orn
  • mongose-ci
  • mongose-cli
  • morgan-logger
  • motionflow
  • mongoose-ci
  • muxflux
  • my-ttt
  • next-plugin-uni-i18n
  • nextjs-babel-toastify
  • node-log-config
  • node-log-stream
  • node-logflow
  • node-logger-sdk
  • node-loggerx
  • node-notifications
  • node-nvm-ssh
  • node-orm-logger
  • node-vite-config
  • node-winston
  • node-winston-logger
  • nodeapi-json
  • nodemailer-helper
  • nodemon-pkg
  • nodelog-lite
  • nodespode
  • notification-clients
  • notification-displayer
  • notification-layer
  • notifications-client
  • notifications-layer
  • notifications-log
  • orbital-ledger
  • parse-logger
  • parser-session
  • parser-tson
  • pino-node
  • pixzen
  • preset-log
  • prepare-config
  • prettier-utils
  • pretty-format-setting
  • proc-log-cmd
  • proc-log-error
  • process-load
  • qrcode-pretty-react
  • query-logger
  • randly
  • rc-logger
  • react-babel-purify
  • react-context-stylizer
  • react-copack
  • react-content-provider
  • react-dhtml
  • react-dropzone-log
  • react-eslint-type
  • react-fs-cofnig
  • react-fs-config
  • react-hook-eslint
  • react-icons-loader
  • react-lovable
  • react-milton
  • react-outcome-error-alert
  • react-prop
  • react-repack
  • react-redux-stylizer
  • react-redirect-router
  • react-router-html
  • react-router-purify
  • react-stylizer
  • react-tediter
  • react-thunk-log
  • react-toast-ui
  • real-socket-rt
  • recharts-smart
  • redux-eslint-saga
  • redux-lint-saga
  • redux-saga-devtool
  • redux-saga-guard
  • redux-saga-help
  • redux-saga-inspector
  • redux-saga-sentinel
  • redux-saga-validator
  • redux-thunk-action
  • redux-toolkit-rts
  • request-guard
  • request-kraken
  • request-sentry
  • router-kit
  • rtk-log
  • rtk-logger
  • rtk-service
  • rtk-sleep
  • rtk-wake
  • safe-winston
  • sensitive-paths-focus
  • session-logger
  • sessionfiy
  • sessions-logger
  • simple-icon-maker
  • some-promise
  • stake-config
  • stream-loggers
  • strictor
  • succgdess
  • tai1wind-configs-viewer
  • tailwind-beauty-icon
  • tailwind-book-icon
  • tailwind-class-overrides
  • tailwind-classname-overrides
  • tailwind-classes-overrides
  • tailwind-color-icon
  • tailwind-computer-icon
  • tailwind-config-overrides
  • tailwind-config-setting
  • tailwind-configs
  • tailwind-configs-viewer
  • tailwind-cup-icon
  • tailwind-desktop-icon
  • tailwind-glass-icon
  • tailwind-icon
  • tailwind-icon-animate
  • tailwind-mouse-icon
  • tailwind-mui-modal
  • tailwind-nbr-icon
  • tailwind-next-icon
  • tailwind-react-icon
  • tailwind-react-mui
  • tailwind-round-icon
  • tailwind-scrollbar-show
  • tailwind-scrollmenu
  • tailwind-style-components
  • tailwind-style-overrides
  • tailwind-supabase
  • tailwind-theme-colors
  • tailwindcss-animatexs
  • tailwindcss-animators
  • tailwindcss-color-icons-lite
  • tailwindcss-config-overrides
  • tailwindcss-remotion
  • theta-tv-charts
  • tjsontype
  • trslip
  • truflee
  • truffel
  • tsleep
  • uidraftism
  • uxlift
  • uxline
  • vaildator
  • viam
  • vite-audit-plugin
  • vite-auditlog
  • vite-babel-plugin-es6-promise
  • vite-binding-js
  • vite-chunk-tools
  • vite-chunk-manager
  • vite-configs-viewer
  • vite-css-icon
  • vite-jsconfig
  • vite-lightsparse
  • vite-linting-js
  • vite-log-plugin
  • vite-logeidit
  • vite-mobcss-log
  • vite-next-logger
  • vite-next-loggers
  • vite-parse
  • vite-plugin-chunk-chop
  • vite-plugin-es6-babel
  • vite-plugin-js-support
  • vite-plugin-morgan
  • vite-plugin-opticompress
  • vite-plugin-parse
  • vite-plugin-parse-js
  • vite-plugin-parse-json
  • vite-plugin-react-ping
  • vite-plugin-reactjs-refresh
  • vite-plugin-uni-i18n
  • vite-plugin-vue-layout
  • vite-postcss-bootstrap
  • vite-postcss-helper
  • vite-postcss-kit
  • vite-postcss-nested
  • vite-react-chunker
  • vite-simpleparse
  • vite-singleparse
  • vite-ts-icon
  • vite-tsauditlog
  • vite-tsconfig-assistant
  • vite-tsconfig-optimized
  • vitejs-plugin-react-refresh
  • vortex-logger
  • vvite-plugin-react-ping
  • wb3.js
  • we3.js
  • webpack-css-branch-loader
  • winstem-logging
  • winston-datalog
  • winston-log
  • x-session-parser
  • xml-request-parser
  • tailwindcss-theme-icons
Комментарии: 0