Новости · Безопасность файлов

Фейковое собеседование и вредоносный npm-пакет: WaterPlum похитила $11 млн из криптокошельков

24 сентября 2026 года стало известно о масштабе кампании северокорейской группировки WaterPlum (также известной как Contagious Interview): с декабря 2025 по июль 2026 года злоумышленники заразили не менее 30 000 устройств в более чем 100 странах, выдавая себя за IT-рекрутёров и присылая разработчикам «тестовые задания» — заражённые npm-пакеты и проекты VS Code. Похищено около $10,7 млн с 7000 криптокошельков.

25 сентября 2026 Редакция Loadfile Чтение 6 мин
Ноутбук с открытым кодом npm-пакета и треснувшим криптокошельком на экране — атака WaterPlum

Коротко: северокорейская группа WaterPlum (Contagious Interview) под видом рекрутёров на LinkedIn, GitHub и фриланс-биржах присылает разработчикам «тестовое задание» — репозиторий или npm-пакет, который на самом деле устанавливает бэкдоры BeaverTail, InvisibleFerret, OtterCookie и другие. С декабря 2025 по июль 2026 года заражено 30 000 устройств в 100+ странах, украдено $10,7 млн с 7000 криптокошельков. Атрибуцию подтвердили власти Японии, США, Австралии и Германии.

Содержание
  1. Что произошло
  2. Как устроена атака: от «собеседования» до кражи
  3. Семейство вредоносов: BeaverTail, InvisibleFerret и другие
  4. Кто и как это подтвердил
  5. Как разработчику защититься
  6. Источники

Что произошло

24 сентября 2026 года издание «Хакер» и ряд зарубежных изданий по кибербезопасности рассказали о результатах расследования кампании северокорейской хакерской группы, которую японское Национальное полицейское агентство называет WaterPlum, а исследователи безопасности связывают с продолжающейся операцией Contagious Interview («заразное собеседование»).

По собранным данным, с декабря 2025 по июль 2026 года группировка заразила не менее 30 000 устройств более чем в 100 странах. Жертвами стали в первую очередь IT-специалисты: веб-разработчики, инженеры, специалисты по криптовалютам, блокчейну и Web3-проектам. Похищенные средства или учётные данные затронули свыше 7000 криптокошельков, а общая сумма украденного оценивается примерно в $10,7 млн, переведённых, по данным расследования, в Пхеньян.

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

Как устроена атака: от «собеседования» до кражи

Схема WaterPlum опирается на социальную инженерию, растянутую во времени, а не на один вредоносный файл:

  1. Фальшивая вакансия. Злоумышленники создают профили «рекрутёров» на LinkedIn, GitHub и фриланс-платформах, часто от имени вымышленных AI-, криптовалютных или NFT-стартапов.
  2. Серия собеседований. С кандидатом проводят одно или несколько интервью, чтобы снизить бдительность и создать ощущение легитимного процесса найма.
  3. «Тестовое задание». Кандидату присылают ссылку на репозиторий GitHub или просят установить npm-пакет, якобы необходимый для выполнения задачи — например, «исправить баг» в готовом проекте.
  4. Установка через npm install. Пакет содержит вредоносный код в скриптах жизненного цикла (например, postinstall), который выполняется автоматически при установке зависимостей — без явного запуска исполняемого файла жертвой.
  5. Разворачивание бэкдора. В систему устанавливается один или несколько инструментов удалённого доступа, которые ищут на диске файлы криптокошельков, seed-фразы и сохранённые сессии браузера.
!
Почему npm-пакет обманчивее EXE-файла

Разработчик привык доверять командам npm install и git clone — это его повседневный рабочий процесс. В отличие от подозрительного EXE во вложении письма, установка npm-зависимости не вызывает тревоги, даже если пакет опубликован недавно и почти не имеет загрузок.

Семейство вредоносов: BeaverTail, InvisibleFerret и другие

Полезная нагрузка кампании представлена сразу несколькими семействами вредоносного ПО, которые загружаются последовательно, в зависимости от операционной системы жертвы и целей атаки:

  • BeaverTail — инфостилер и загрузчик, часто маскируется под JavaScript-модуль внутри заражённого npm-пакета или проекта на VS Code.
  • InvisibleFerret — кроссплатформенный бэкдор на Python, обеспечивает удалённый доступ и сбор данных с заражённой машины.
  • OtterCookie и OtterCandy — дополнительные инструменты для закрепления в системе и эксфильтрации данных, в том числе содержимого криптокошельков и учётных данных бирж.
  • StoatWaffle — используется на более поздних этапах атаки для расширения доступа внутри заражённой инфраструктуры.

Такая цепочка из нескольких взаимозаменяемых инструментов усложняет детектирование: даже если антивирус поймает один компонент, остальные могут остаться незамеченными. По данным расследования, кампания связана с 313-м генеральным бюро Департамента военной промышленности КНДР, подчинённого ЦК Трудовой партии Кореи.

Кто и как это подтвердил

Атрибуцию кампании WaterPlum независимо друг от друга подтвердили государственные ведомства сразу нескольких стран — Японии, США, Австралии и Германии. Совместное заявление нескольких юрисдикций по одной и той же кампании — редкий случай, который указывает на высокую степень уверенности в источнике атаки и масштаб причинённого ущерба.

Если на вашем компьютере оказался неопознанный файл из подобного «тестового задания», прежде чем его запускать, стоит определить его реальный тип — расширение файла легко подделать. В этом поможет наш бесплатный инструмент «Определить формат файла»: он читает сигнатуру файла прямо в браузере, без отправки на сторонние серверы.

Как разработчику защититься

Классические советы «не открывайте файлы от незнакомцев» работают плохо, когда файл — это часть реального процесса собеседования. Практические шаги, которые снижают риск:

  1. Выполняйте тестовые задания в изолированной среде. Docker-контейнер, виртуальная машина или отдельная песочница без доступа к вашим реальным SSH-ключам, паролям и криптокошелькам.
  2. Проверяйте npm-пакет перед установкой. Смотрите дату публикации, число загрузок, репозиторий на GitHub и содержимое скрипта postinstall в package.json — необычная сетевая активность при установке должна насторожить.
  3. Никогда не храните seed-фразы и приватные ключи на рабочей машине в открытом виде — используйте аппаратный кошелёк или менеджер паролей с шифрованием.
  4. Проверяйте личность рекрутёра по отдельному каналу — ищите компанию в реестрах, проверяйте домен корпоративной почты, будьте настороже, если весь процесс идёт слишком быстро.
  5. Держите отдельное «чистое» окружение для собеседований — свежую ОС или профиль пользователя без доступа к личным и рабочим данным.
✓
Тревожный признак

Если «тестовое задание» требует установить незнакомый npm-пакет с малым числом загрузок или клонировать репозиторий и сразу запустить npm install без чтения кода — это классическая схема Contagious Interview, а не редкость на рынке труда.

Источники

Читайте также