Злоумышленники расширяют злоупотребление Microsoft Visual Studio Code для целевых атак на macOS

information security

Исследователи из Jamf Threat Labs выявили новую волну кампании Contagious Interview, которую приписывают хакерам, действующим в интересах Северной Кореи (DPRK). Злоумышленники значительно усовершенствовали методы заражения, активно используя конфигурационные файлы популярной среды разработки Microsoft Visual Studio Code (VS Code) для скрытной доставки вредоносного ПО на компьютеры macOS. Это демонстрирует растущую тенденцию интеграции угроз в легитимные рабочие процессы разработчиков.

Описание

Кампания, за которой наблюдают с конца прошлого года, использует социальную инженерию. Жертвам под предлогом участия в процессе найма или выполнения технического задания предлагают клонировать и открыть в VS Code вредоносный репозиторий с платформ GitHub или GitLab. Критичным моментом является запрос программы о доверии к автору репозитория. Если пользователь подтверждает доверие, VS Code автоматически обрабатывает файл конфигурации задач "tasks.json". Внедренные в этот файл произвольные команды немедленно выполняются на системе без каких-либо дополнительных предупреждений.

На macOS это приводит к выполнению фоновой shell-команды. Команда использует "curl" для удаленной загрузки JavaScript-полезной нагрузки (payload) с сервера и немедленно передает ее на выполнение в среду Node.js. При этом применяется техника обеспечения устойчивости (persistence): процесс запускается так, чтобы продолжать работу даже после закрытия VS Code. Для размещения вредоносных скриптов злоумышленники активно используют сервис vercel.app. Этот хостинг стал популярен среди DPRK-акторов после того, как предыдущая инфраструктура была заблокирована.

Основная полезная нагрузка представляет собой бэкдор, написанный на JavaScript. Хотя код содержит большой объем неиспользуемых функций и избыточной логики, что усложняет его анализ, его ядро обеспечивает три ключевые функции. Во-первых, это удаленное выполнение кода (Remote Code Execution, RCE). Бэкдор включает функцию, которая динамически исполняет любой JavaScript-код, полученный от оператора. Это позволяет злоумышленникам произвольно расширять функционал вредоносной программы прямо во время ее работы на зараженной машине.

Во-вторых, проводится сбор информации о системе (системный отпечаток, fingerprinting). Скрипт собирает имя хоста, MAC-адреса сетевых интерфейсов и детали операционной системы. Дополнительно он определяет публичный IP-адрес жертвы, запрашивая внешний сервис ipify[.]org. Эти данные формируют уникальный идентификатор для каждого зараженного устройства. В-третьих, устанавливается постоянная связь с командным сервером (Command-and-Control, C2). Бэкдор каждые пять секунд отправляет собранные данные на сервер злоумышленников и ожидает инструкций. Если в ответе сервера содержится специальный статус, вложенное сообщение передается на выполнение функции RCE.

В ходе мониторинга исследователи Jamf наблюдали, как примерно через восемь минут после первоначального заражения бэкдор получал и исполнял дополнительные инструкции. Вторая стадия полезной нагрузки демонстрировала более продвинутую архитектуру. Новый скрипт также зондировал C2 каждые пять секунд, но выполнял получаемый код в изолированном дочернем процессе. Это повышало устойчивость основной вредоносной программы. Кроме того, код содержал механизм для полной остановки себя и всех дочерних процессов по команде оператора, что позволяло аккуратно скрыть следы активности. Исследователи отмечают, что стиль кода, включая встроенные комментарии, указывает на возможное использование инструментов искусственного интеллекта для его генерации или помощи в разработке.

Эта активность подчеркивает постоянную адаптацию DPRK-связанных угрозых акторов (APT). Они целенаправленно выбирают инструменты и методы, которые встраиваются в привычные процессы разработчиков, снижая бдительность жертв. Злоупотребление доверенными конфигурациями VS Code и легитимной средой выполнения Node.js делает атаку особенно скрытной. Эксперты по безопасности рекомендуют разработчикам проявлять повышенную осторожность при работе со сторонними репозиториями, особенно полученными из непроверенных источников. Перед тем как предоставить доверие проекту в VS Code, необходимо внимательно изучить его содержимое, особенно файлы "tasks.json" и "package.json".

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

IPv4 Port Combinations

  • 87.236.177.9:3000

Domains

  • srv37746.hosted-by-eurohoster.org

URLs

  • https://edgeauth.vercel.app/api/getMoralisData?token=Z4T9QH
  • https://github.com/CannonOps/backend/blob/dev/.vscode/tasks.json
  • https://github.com/CannonOps/frontend-website/blob/dev/.vscode/tasks.json
  • https://moralmetrics.vercel.app/api/getMoralisData?token=Z4T9QH

SHA256

  • 1b26f73fa88f8c3b17adf6db12ec674481db1f92eb04806815b8fbd6086f07ef
  • 67c05c1624a227959728e960e4563435db2519a24a46e95207a42ea8d4307e2d
  • 71d8a974548e4e152e2c818d1febb7862632c1f9bff6adaa731bbaf6b23bd4b9
  • 71e4ea17c871b983a2cbbea7a4fbd7fe498951c8fe4a1e17377e9aa06fd7184a
  • 932a67816b10a34d05a2621836cdf7fbf0628bbfdf66ae605c5f23455de1e0bc
  • a2194390105731ce33cb9a51011c42a39a440942e907099f072916a36f17ef4b
  • f8ae6ae9d6a13a8dddb05975930161601b5cfdd0cec30b7efdc5ba0606774998
Комментарии: 0