Угрозы

Северокорейские хакеры используют Visual Studio Code для удалённого управления скомпрометированными системами

Артем Сафонов
By Артем Сафонов , Аналитик угроз
Северокорейские хакеры используют Visual Studio Code для удалённого управления скомпрометированными системами
Image by Anonhaven

Северокорейские хакеры снова играют не в экзотику, а в доверие к привычным инструментам. По данным Darktrace и Jamf Threat Labs, атакующие начали активно использовать легитимную функцию Visual Studio Code под названием удаленное туннелирование, чтобы получать устойчивый доступ к скомпрометированным системам. Кампании зафиксированы как минимум в Южной Корее, а также в глобальной операции Contagious Interview, которая нацелена на разработчиков, в том числе в криптовалютном и финтех-сегменте.

Главная проблема здесь в том, что злоумышленники строят доступ не на вредоносном сервере управления, а на инфраструктуре Microsoft. Трафик выглядит легитимным, а сам инструмент подписан и привычен для разработчиков. Из-за этого классические фильтры, которые ищут подозрительные домены и неизвестные бинарники, могут не сработать.

Как они превращают VS Code в удаленный доступ

Удаленное туннелирование Visual Studio Code устроено просто: на машине жертвы запускается компонент сервера, он устанавливает защищенное соединение с сервисом туннелей Microsoft, а подключение выполняется через учетную запись GitHub или Microsoft. Для разработчика это удобный способ работать с удаленным компьютером, как будто он рядом. Для атакующего это готовый канал управления с терминалом и доступом к файлам.

В одном из сценариев, который описывает Darktrace в Южной Корее, атака начинается с фишингового письма, якобы от государственного органа. В письме лежит документ формата HWP, популярного в стране. Внутри находится скрипт JSE, который запускается при открытии файла и скачивает легитимный VS Code CLI в папку C:\ProgramData. После этого в скрытом окне создается туннель с заданным именем, например bizeugene, а вывод уходит в out.txt. В этом файле оказывается код авторизации для GitHub, который атакующий подтверждает со своей стороны. Отдельно Darktrace отмечает, что токен туннеля и код отправлялись на URL https://www.yespp.co.[kr]/common/include/code/out.php, то есть на легитимный южнокорейский сайт, который, по их оценке, был скомпрометирован и использовался как промежуточная точка для управления.

После создания туннеля злоумышленник получает полноценный интерактивный доступ: терминал, файловая система, запуск команд. Это и есть тот момент, когда заражение выглядит как работа администратора, а не как классическая малварь.

Jamf Threat Labs описывает другую ветку, где все начинается с поддельного собеседования. Жертве предлагают работу, дают тестовое задание и ссылку на репозиторий на GitHub. Проект выглядит как обычная задача на React или Node.js, но внутри есть скрытая настройка в .vscode/tasks.json. Если разработчик откроет папку в Visual Studio Code и пометит ее как доверенную, задача может выполниться автоматически через runOn: folderOpen.

Дальше схема использует легитимные площадки доставки. Команды тянут обфусцированный JavaScript, в том числе с доменов на Vercel, и разворачивают бэкдоры BeaverTail и InvisibleFerret. В описании кампании упоминаются модули, которые снимают скриншоты, пишут нажатия клавиш, подменяют буфер обмена при копировании адресов кошельков, вытаскивают файлы с исходным кодом и ключами, ставят XMRig для майнинга Monero и даже подтягивают AnyDesk как легитимный инструмент удаленного доступа. Если основной путь не срабатывает, используются запасные варианты, включая вредоносные npm-пакеты и многоступенчатые загрузчики, маскируемые под словари и вспомогательные компоненты.

Отдельный смысл этой кампании в том, что разработчики часто имеют доступ туда, куда никто больше не имеет. Репозитории, системы сборки и развертывания, ключи к облакам, токены, иногда корпоративные кошельки. Поэтому атака через рабочие инструменты разработки дает нападающему шанс сразу попасть в центр инфраструктуры.

Эта тактика относится к подходу, который обычно называют жить за счет легитимных инструментов. Вместо того чтобы тянуть очевидный вредонос и светить инфраструктуру управления, злоумышленники берут готовый инструмент, который компаниям сложно запрещать. Туннели VS Code создают трафик через серверы Microsoft, а не через странный домен. Приложение не выглядит подозрительно. Даже песочницы и автоматические проверки могут пропустить такое поведение, потому что с точки зрения системы запускается нормальный разработческий инструмент.

Именно поэтому Darktrace и Jamf связывают эти кампании с северокорейскими акторами, включая Lazarus. У них исторически сильный фокус на криптовалюте и на проектах, где можно быстро монетизировать доступ, а также на длительном скрытом присутствии.

Visual Studio Code и его функции сами по себе не вредоносны. Опасно то, как легко легитимный инструмент превращается в канал управления, если его запускают без контроля. Для организаций это означает, что социальные сети, мессенджеры и репозитории с тестовыми заданиями нужно воспринимать как полноценный канал первоначального доступа, а не как внешнюю зону, которая не относится к безопасности. Для разработчиков это означает еще более приземленное правило: если вас просят открыть проект из непроверенного источника или установить неизвестный инструмент для созвона, это не проверка навыков. Это попытка получить ваш доступ к чужим системам.

Lazarus Malware Visual Studio Code Кибербезопасность Северная Корея