Новая атака использует VS Code для скрытой установки вредоносного ПО для кражи данных

information security

Эксперты ThreatLvers Threat Intelligence обнаружили в дикой природе файл конфигурации проекта VS Code (Visual Studio Code) "tasks.json", который демонстрирует использование нового метода для выполнения произвольного кода через этот популярный редактор. Когда папка проекта открывается и помечается как доверенная, VS Code автоматически загружает файл "tasks.json", предназначенный для хранения команд сборки и пост-обработки. Однако злоумышленники могут внедрить в этот файл вредоносные команды, которые используют легитимный функционал редактора для выполнения несанкционированных действий. В рассмотренном сценарии это привело к развертыванию на машине ничего не подозревающего пользователя многофункционального вредоносного ПО для кражи данных .

Описание

Цепочка компрометации, от открытия вредоносной папки до выполнения финального полезного груза (payload), включает несколько этапов, насыщенных методами обфускации и защиты от анализа. Первоначально, после доверия к папке, файл "tasks.json" обращается к вредоносному домену за дальнейшими инструкциями, передавая полученные команды в командную строку. После установки фреймворка Node.js и других зависимостей, процесс "node.exe" использует библиотеку Axios для получения сильно обфусцированного финального вредоносного модуля. Этот модуль затем рекурсивно сканирует указанные директории на наличие чувствительных файлов, постоянно перехватывает содержимое буфера обмена и загружает все собранные данные на инфраструктуру, контролируемую злоумышленником.

Поскольку наличие файла "tasks.json" в папках проектов является обычной практикой, пользователь может не заподозрить ничего неладного. Хотя эта функция имеет законные варианты использования для разработчиков, автоматические действия открывают возможность для угрозовых акторов выполнять вредоносные команды. В обнаруженном случае файл выполняет одну команду в зависимости от обнаруженной операционной системы. Для демонстрации был рассмотрен сценарий для Windows. Команда обращается к первому домену: "hxxps://vscode-load[.]onrender[.]com/settings/windows?flag=4". Содержимое ответа на запрос передается в командную строку, запуская следующий этап атаки.

Полученные дополнительные команды сами по себе не выглядят вредоносными. Сначала выполняется поиск папки профиля пользователя для проверки существования директории ".vscode", и, если она отсутствует, она создается. Затем выполняется Curl для получения дальнейших команд, ответ сохраняется в локальный файл "vscode-bootstrap.cmd", который немедленно запускается. Этот следующий набор команд гарантирует установку нескольких зависимостей: фреймворка Node.js, среды разработки Hardhat для Ethereum и пакетов Node.js "Axios", "FS", "request" и "clipboardy". Если Node.js не найден, выполнение скрипта прекращается.

Последующие команды обращаются к домену за файлом "NPL", содержащим синтаксис Node.js, который использует ранее установленную библиотеку Axios. Примечательно, что все предыдущие соединения использовали Curl, но финальный полезный груз может быть запрошен только с помощью библиотеки Axios, независимо от пользовательского агента и заголовков. Любые запросы к этой странице без Axios возвращают бессмысленные данные JSON с IP-адресом пользователя и геолокацией.

После деобфускации финального модуля были проанализированы возможности этого примитивного инфостилера. Одним из первых действий является определение конечной точки для отправки захваченных данных: "hxxp://144[.]172[.]116[.]80:8085/upload". Затем перечисляются имя хоста, тип ОС и локальные пользователи, а также выполняется дополнительная проверка на выполнение в среде WSL. Модуль содержит функции для перезапуска "зависших" процессов и выполнения вложенных скриптов. Интересно, что в коде определен список расширений Google Chrome/Chromium для криптокошельков, что может указывать на будущие версии атаки, нацеленные на их сид-фразы.

Основная логика кражи данных реализована во встроенных скриптах. Первый скрипт инициализирует базу данных LDB. Второй, "autoUpload", определяет исключенные и "чувствительные" расширения файлов, после чего рекурсивно сканирует указанные директории. Функция "uploadFile" проверяет файл, шифрует данные с использованием жестко заданного HMAC-ключа и отправляет их через Axios на эндпоинт "hxxp://144[.]172[.]116[.]80:8086/upload". Третий скрипт, "SocketScript", отвечает за мониторинг буфера обмена. Он использует PowerShell и .NET Framework для захвата его содержимого каждую секунду и отправки новых скопированных текстов на эндпоинт "hxxp://144[.]172[.]116[.]80:8087".

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

Хотя для успеха этой атаки требуется несколько этапов, многие используемые инструменты и команды сами по себе не являются вредоносными. Первым шагом в цепочке компрометации стало доверие к вредоносному источнику, что привело к авто-исполнению файла "tasks.json". Разработчикам, как и новым пользователям VS Code, следует знать о подобных атаках и проявлять осмотрительность при открытии неизвестных проектов. Проверка авторов и следование методологии Zero Trust (нулевого доверия) позволяет как отдельным пользователям, так и компаниям снизить риски и обеспечить безопасную среду для разработки.

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

IPv4

  • 144.172.116.80

Domains

  • ip-api-check-gold.vercel.app
  • vscode-load.onrender.com

SHA256

  • 2a935b27687204c7c09b0f0fada6419c6017c68887b8e0bab4a8f9dabc1616fc
  • 806de89db37c18b2d722c1c50b9ee90641cdb941836dc98c1d6e1e2049f58db7
  • a7de382e429b123361b662e0e36ebfc55ac91e1eb47043a6695c1959b15f5588
  • cda1f5aec8d0be8a9bd16d119d5e2fece565021b9e11a440f564f1c6f3c725bf
  • d819efc15022108954d730e0493b1ebe4e325bcfdaa8ef87a101674dfdfb2cdc
Комментарии: 0