Северокорейские хакеры атакуют крипторазработчиков через поддельные NPM-пакеты и взломанный MetaMask

information security

Киберпреступники из КНДР, нацеленные на финансовую выгоду, продолжают совершенствовать свои методы атаки на специалистов из высокодоходных технологических секторов. Активная кампания, получившая название Contagious Interview, теперь включает в себя новый агрессивный вектор - манипуляцию расширением для браузера MetaMask с целью прямого хищения криптовалютных средств. Этот шаг знаменует собой переход от сбора конфиденциальных данных к непосредственному и автоматизированному опустошению кошельков жертв.

Описание

Суть угрозы и целевая аудитория

Кампания на протяжении нескольких лет целенаправленно затрагивает IT-специалистов, работающих в сферах криптовалют, Web3 и искусственного интеллекта. Злоумышленники, связываемые с северокорейскими группировками, маскируют вредоносное ПО под легитимные инструменты разработки, такие как пакеты для менеджера NPM или расширения для редактора VSCode. Классический сценарий заражения построен вокруг фиктивного процесса технического собеседования: соискателю предлагают выполнить тестовое задание, включающее установку и запуск специально подготовленного пакета с вредоносным кодом.

диаграмма атаки

Эволюция вредоносного инструментария

Основу арсенала атакующих составляют два семейства вредоносных программ: BeaverTail и InvisibleFerret. Недавние изменения в цепочке заражения показывают, что злоумышленники не только регулярно обновляют эти инструменты, но и кардинально упростили начальную стадию атаки для избежания обнаружения. Первоначальный JavaScript-код, встроенный в поддельный NPM-пакет, теперь выполняет лишь три ключевые функции: отправляет сигнал об успешном заражении на управляющий сервер, получает закодированный адрес сервера для следующей стадии и загружает последующие полезные нагрузки. Эта минималистичная тактика снижает шансы на срабатывание сигнатурных систем обнаружения.

После выполнения начального скрипта система жертвы последовательно загружает несколько вредоносных модулей. Среди них - два дополнительных JavaScript-файла и Python-бэкдор InvisibleFerret, давно используемый в этой кампании. Один из JavaScript-компонентов выполняет функцию легковесного бэкдора, устанавливая постоянное TCP-соединение с командным сервером злоумышленников и ожидая инструкций. Второй модуль специализируется на поиске и эксфильтрации конфиденциальных файлов, целенаправленно сканируя систему на наличие данных, связанных с криптовалютами, паролями и ключами.

Новый вектор: компрометация MetaMask

Наиболее значимым нововведением стала команда "ssh_mmc", добавленная в легковесный бэкдор. По этой команде с сервера злоумышленников загружается специальный скрипт ("y.js"), задача которого - подмена легитимного расширения криптокошелька MetaMask на скомпрометированную версию. Процесс осуществляется через хирургическое изменение конфигурационных файлов браузера (Chromium, Brave).

Алгоритм атаки включает несколько шагов. Сначала скрипт находит установленный MetaMask в профилях браузера. Затем он загружает с сервера злоумышленников архив со взломанным расширением и динамически сгенерированный конфигурационный файл. Ключевым моментом является подмена значений MAC (кодов аутентификации сообщений) в файлах "Preferences" и "Secure Preferences" браузера. Chrome использует HMAC-SHA256 для проверки целостности настроек расширений. Подставляя корректно вычисленные злоумышленниками MAC-значения для настроек MetaMask, режима разработчика и всей структуры предпочтений, скрипт обходит встроенные механизмы защиты от несанкционированных изменений. После этого браузер перезапускается, и пользователь продолжает работу со взломанным расширением, внешне ничем не отличающимся от оригинала.

Механизм кражи средств

Внедренный в поддельный MetaMask вредоносный код минимален и точен. Он модифицирует всего две функции, добавляя около 15 строк. Основная логика встраивается в функцию "submitPassword()", отвечающую за разблокировку кошелька паролем. При успешном вводе мастер-пароля модифицированный код отправляет на командный сервер злоумышленников как сам пароль в открытом виде, так и зашифрованный файл хранилища (vault), содержащий сид-фразы и приватные ключи. Этой информации достаточно, чтобы атакующие могли в любой момент расшифровать данные в автономном режиме и получить полный контроль над всеми активами в кошельке жертвы.

Практические выводы и рекомендации

Данная кампания наглядно демонстрирует, как целевые атаки на сотрудников могут привести к прямым финансовым потерям, выходящим далеко за рамки утечки данных. Для специалистов по информационной безопасности и разработчиков в криптоиндустрии это служит серьезным предупреждением.

  • Критически важно усилить проверку сторонних зависимостей. Установка пакетов из недоверенных источников, особенно в контексте найма или тестовых заданий, должна проводиться в изолированных средах, например, в одноразовых контейнерах или виртуальных машинах. В
  • Необходимы технические меры контроля целостности. Решения класса EDR могут помочь выявить подозрительную активность, такую как модификация файлов браузера или необычные сетевые подключения со стороны процессов Node.js или Python.
  • Для защиты криптоактивов стоит рассмотреть использование аппаратных кошельков, которые хранят приватные ключи в защищенном элементе и не подвержены риску компрометации через вредоносное расширение браузера. Наконец, регулярный аудит установленных расширений и их сравнение с хэшами официальных версий может помочь выявить подмену.

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

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

IPv4 Port Combinations

  • 145.59.1.45:1244
  • 147.124.202.163:1243
  • 202.163.147.124:1248
  • 45.43.11.200:1244
  • 45.43.11.248:1244
  • 66.235.168.238:1244
  • 66.235.28.238:1249
  • 67.203.7.205:1244

MD5

  • 134102aa60f0a97a78a6299b35c30e69
  • 1b39dfc0ef262baba95b58e3b8d81c8e
  • 211d0fad75d20a032803e7cc0d277e09
  • 3013d942ee75ee982f66d7d1021a759d
  • 427bb906b72388381ed3d1ef22f0b3ad
  • 6244da9940f50b9f51e3d85766cb1226
  • 687b235572f3b35c0eb5c6c742862db4
  • 6d3f1aeed4feca39cb5d53f59bf6d9a5
  • 6da79a0ddb7c4923f834ba723f8aea6f
  • 800ffb10a79370991c5c918f572fe192
  • 8e6db10b5acc15c2cc54592e3dd49bf7
  • 900b95205e414e04eacd0ba5dc4868a5
  • 998cc427b2be37bd9dbb109bd1843366
  • b18101a943a149cb1cbb3cac3b4f9f6c
  • d423bf6b18662aed88ddd69c72b4e116
  • d80a29cefae892d26567b14ba9ba21c6
  • ddec84f075036f4afee55e708987b05a
  • f55560735ae028745cf6c90488b07bd7
Комментарии: 0