icons-vscode: RustImplant в VS Code маскируется под легитимное расширение
Вредоносное расширение VS Code под названием icons-vscode было опубликовано пользователем bphpburn и замаскировано под легитимный пакет vscode-icons. Для компрометации сред разработки оно использовало скомпилированный загрузчик на базе Rust.
Вредоносный код находился в Mach-O
Код активации расширения загружал нативный модуль .node с именем darwin.node. Благодаря этому основной вредоносный код размещался в бинарном файле Mach-O, а не в JavaScript. Такой подход позволял обходить статический анализ, ориентированный на JavaScript.
Бинарный файл регистрировался через точку входа napi_register_module_v1 Node.js и экспортировал нативную функцию rustImplantRun. JavaScript-код расширения вызывал её следующим образом:
require('./darwin.node').run()
Компонент на Rust содержал логику антианализа и контроля выполнения. В бинарный файл был встроен профилировщик среды на JavaScript, который проверял параметры системы до запуска основной функциональности.
Проверка на признаки российского региона
Профилировщик анализировал имена пользователей, сведения о локали, языковые настройки и часовые пояса. Он искал индикаторы, связанные с Россией и более широким регионом СНГ, включая:
ru_RU;- значение
Russian; - московский и калининградский часовые пояса.
При обнаружении признаков русского языка или региональной принадлежности имплант завершал работу без видимой активности. Вероятно, это снижало риск обнаружения со стороны местных специалистов по информационной безопасности и средств автоматизированного анализа.
Связь с GLASSWORM
Конфигурация образца хранилась во встроенном блоке данных. Её восстановили в ходе анализа цикла дешифрования, использующего многобайтовый XOR.
В результате дешифрования был обнаружен адрес кошелька Solana BjVeAjPrSKFiingBn4vZvghsGj9KCE8AJVtbc9S8o8SC. Согласно отчётности из открытых источников, он связан с GLASSWORM.
Внедрение, по-видимому, использует HTTP-функциональность статически связанных библиотек Rust, таких как hyper или reqwest. Эти компоненты могут применяться для обработки ответов и получения данных, связанных с кошельком через API, вместо реализации собственного протокола управления.
Возможный Rust-загрузчик
Вредоносное ПО отслеживается под именем RustImplant. Его оценивают как возможный вариант загрузчика на базе Rust, связанный с GLASSWORM.
Сетевая активность импланта может оставаться скрытой во время выполнения в песочнице, если среда анализа не обойдёт проверки географического ограничения, geofencing.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



