Исследователи Cisco Talos в четверг раскрыли детали вредоноса msaRAT — импланта на Rust, который группа Chaos использует для управления зараженными машинами через... собственный браузер жертвы. Не через скрытый туннель, не через самописный протокол на нестандартном порту, а через headless-копию Chrome или Edge, запущенную прямо на скомпрометированном компьютере. Весь трафик command-and-control при этом выглядит как обращения обычного браузера к Cloudflare и Twilio — сервисам, которые есть в белых списках почти любой корпоративной сети.
Малварь нашли на взломанной Windows-машине, причем сработала она еще до запуска шифровальщика — это была разведывательная и управляющая стадия атаки. Схема доставки banальна до зевоты: одна команда curl тянет с сервера 172.86.126[.]18 по порту 443 файл update_ms.msi. Важный нюанс — порт 443 используется для обычного HTTP, а не HTTPS. Прием грубый, но рабочий: многие файрволы фильтруют трафик по номеру порта, не заглядывая внутрь протокола, и пропускают такое как «почти наверняка защищенное соединение».
MSI-пакет маскируется под обновление Windows — соответствующие свойства прописаны прямо в метаданных файла. По завершении установки срабатывает custom action, который подгружает в память встроенную DLL — она же и есть msaRAT. Библиотека написана на Rust с использованием асинхронного рантайма Tokio, а инсталлятор вызывает у нее экспортированную функцию с говорящим именем RUN.
Дальше начинается самое интересное. Малварь ищет на машине браузер — сперва через переменные окружения, если не находит, лезет в реестр в поисках Chrome. Если браузера нет вообще, весь сценарий с Chrome DevTools Protocol (CDP) просто пропускается. Найденный браузер запускается невидимо, с флагами --headless=new, --remote-debugging-port и --user-data-dir — последний создает отдельный, кастомный профиль, никак не связанный с реальными данными пользователя.
Здесь стоит вспомнить про изменение в Chrome 136, о котором Google объявила в марте 2025 года: с этой версии браузер перестал разрешать удаленную отладку default-профиля — именно так инфостилеры раньше воровали куки. msaRAT эту защиту обходит элегантно — просто работает со своим собственным профилем. Talos подчеркивает: никаких следов обращения к реальному профилю жертвы обнаружено не было.
Взаимодействие с CDP происходит по классической схеме: малварь запрашивает /json/list/, получает список отлаживаемых целей, подключается по WebSocket, создает новую вкладку. Затем через Page.setBypassCSP отключается Content Security Policy — это развязывает руки для инъекции произвольного JavaScript. Через Runtime.addBinding регистрируются пять коллбэков: msaOpen, msaClose, msaError, msaMessage и dataAck. Собственно, первые четыре и подсказали Talos название вредоноса. Сам JS-payload инжектится через Runtime.evaluate и, что довольно небрежно с точки зрения OPSEC, хранится в бинарнике открытым текстом, в секции.rdata.
Инжектированный скрипт запрашивает конфигурацию STUN/TURN у Cloudflare Worker по адресу is-01-ast[.]ols-img-12[.]workers[.]dev, при этом заголовки Origin и Referer подделаны под трафик сайтов Microsoft. Дальше строится WebRTC-соединение, SDP-offer отправляется на тот же Worker. В ответе нет ICE-кандидатов, адрес подключения выставлен в 0.0.0.0 — прямое P2P-соединение таким образом исключается намеренно. Весь реальный трафик идет через TURN-релей Twilio: . Как только канал данных установлен, Cloudflare Worker вообще выпадает из цепочки связи. Защитник видит только браузерный процесс, который стучится к Cloudflare и Twilio — настоящий IP атакующего сервера нигде не всплывает.
Шифрование двухслойное. Сначала работает нативный для браузера DTLS. Поверх него — ChaCha-Poly1305 с ключом, полученным через обмен по ECDH; рукопожатие инициирует кадр 0xFE, который C2 присылает сразу после установки соединения. Полученные командные кадры передаются в cmd.exe /e:ON /v:OFF /d /c <cmd>. Судя по устройству очереди отправки и механизму управления потоком, авторы msaRAT рассчитывали на надежную передачу больших объемов данных — скриншотов, файлов и подобного.
Технику нельзя назвать полностью оригинальной. В августе 2025 года компания Praetorian показывала, что инфраструктура TURN конференц-платформ способна нести полноценный C2-канал. В марте 2026-го исследователи Sansec обнаружили скиммер, который через WebRTC data channel вытаскивал украденные данные карт мимо HTTP-инспекции. Новизна msaRAT в том, что он объединяет оба приема внутри одного Rust-импланта, управляющего headless-браузером через CDP — раньше такой связки не встречалось.
Как Chaos получает первоначальный доступ на конкретно эту машину, Talos не сообщает — известно только про типичный для группы арсенал: спам-рассылки, вишинг, злоупотребление Quick Assist, инструменты удаленного администрирования для закрепления. Про эту атаку такой конкретики нет.
Для охоты на угрозу Talos советует искать запуск Chrome или Edge инсталлятором, службой или любым неинтерактивным родительским процессом, проверять флаги --headless=new и --remote-debugging-port, сопоставлять с loopback-трафиком на порт отладки и с исходящим WebRTC-трафиком. Там, где телеметрия позволяет, стоит мониторить сообщения CDP — в частности вызовы Runtime.addBinding и Runtime.evaluate. Организациям, использующим автоматизацию браузера в CI-пайплайнах, придется отдельно настраивать правила под собственные легитимные headless-задачи, чтобы не тонуть в ложных срабатываниях. Важная оговорка: msaRAT не эксплуатирует никакую уязвимость Chrome или Edge — это чисто постэксплуатационный инструмент, и никакой патч браузера от него не защитит.
По состоянию на 23 июля 2026 года Talos не опубликовала ни одного файлового хеша msaRAT. В открытом репозитории индикаторов компрометации есть только два сетевых артефакта — стейджинговый IP 172.86.126[.]18 и хостнейм воркера is-01-ast[.]ols-img-12[.]workers[.]dev. Из сигнатур доступны ClamAV Win.Downloader.ChaosRaas-10060321-0, а также правила Snort 2 (1:66839, 1:66840, 1:66841) и Snort 3 (1:66839, 1:301587).
Ценность этих индикаторов ограничена по объективным причинам. Домен — это общий домен развертывания Cloudflare, который выдается каждому аккаунту сервиса Workers; злоумышленники и раньше использовали его для хостинга payload'ов и туннелирования C2, ничего специфичного для этой кампании тут нет. STUN/TURN-сервис Twilio — легитимная инфраструктура, которой пользуются реальные WebRTC-приложения. Заблокировать Twilio или Cloudflare Workers на уровне организации означает сломать законный трафик всем сотрудникам сразу. Talos прямо предполагает, что именно поэтому атакующие и выбрали Cloudflare Workers для сигнализации — решение сливается с фоновым шумом и его трудно заблокировать без побочного ущерба.
Отчет не называет пострадавшую организацию, не дает оценки масштаба заражения других компаний, не указывает, когда malware впервые появилась в обороте, и не объясняет, каким образом были получены креды для Cloudflare Worker и Twilio TURN. Сама схема доставки — curl, поддельное обновление, DLL через MSI — ничем не примечательна и встречается постоянно. Настоящая новизна в том, где именно после заражения «живет» C2-трафик — внутри легитимного на вид браузерного и WebRTC-обмена. Оба опубликованных сетевых индикатора, IP и хостнейм воркера, атакующие могут поменять за считанные минуты. А вот сам факт запуска headless-браузера инсталлятором — куда более устойчивый сигнал для детекции, поскольку он отражает саму технику, а не сменяемую инфраструктуру вокруг нее. Для успеха атаки нужен минимум: один из двух самых распространенных браузеров на машине и разрешенный исходящий доступ в сеть — планка, которую преодолевает практически любой парк Windows-компьютеров.
Малварь нашли на взломанной Windows-машине, причем сработала она еще до запуска шифровальщика — это была разведывательная и управляющая стадия атаки. Схема доставки banальна до зевоты: одна команда curl тянет с сервера 172.86.126[.]18 по порту 443 файл update_ms.msi. Важный нюанс — порт 443 используется для обычного HTTP, а не HTTPS. Прием грубый, но рабочий: многие файрволы фильтруют трафик по номеру порта, не заглядывая внутрь протокола, и пропускают такое как «почти наверняка защищенное соединение».
MSI-пакет маскируется под обновление Windows — соответствующие свойства прописаны прямо в метаданных файла. По завершении установки срабатывает custom action, который подгружает в память встроенную DLL — она же и есть msaRAT. Библиотека написана на Rust с использованием асинхронного рантайма Tokio, а инсталлятор вызывает у нее экспортированную функцию с говорящим именем RUN.
Дальше начинается самое интересное. Малварь ищет на машине браузер — сперва через переменные окружения, если не находит, лезет в реестр в поисках Chrome. Если браузера нет вообще, весь сценарий с Chrome DevTools Protocol (CDP) просто пропускается. Найденный браузер запускается невидимо, с флагами --headless=new, --remote-debugging-port и --user-data-dir — последний создает отдельный, кастомный профиль, никак не связанный с реальными данными пользователя.
Здесь стоит вспомнить про изменение в Chrome 136, о котором Google объявила в марте 2025 года: с этой версии браузер перестал разрешать удаленную отладку default-профиля — именно так инфостилеры раньше воровали куки. msaRAT эту защиту обходит элегантно — просто работает со своим собственным профилем. Talos подчеркивает: никаких следов обращения к реальному профилю жертвы обнаружено не было.
Взаимодействие с CDP происходит по классической схеме: малварь запрашивает /json/list/, получает список отлаживаемых целей, подключается по WebSocket, создает новую вкладку. Затем через Page.setBypassCSP отключается Content Security Policy — это развязывает руки для инъекции произвольного JavaScript. Через Runtime.addBinding регистрируются пять коллбэков: msaOpen, msaClose, msaError, msaMessage и dataAck. Собственно, первые четыре и подсказали Talos название вредоноса. Сам JS-payload инжектится через Runtime.evaluate и, что довольно небрежно с точки зрения OPSEC, хранится в бинарнике открытым текстом, в секции.rdata.
Инжектированный скрипт запрашивает конфигурацию STUN/TURN у Cloudflare Worker по адресу is-01-ast[.]ols-img-12[.]workers[.]dev, при этом заголовки Origin и Referer подделаны под трафик сайтов Microsoft. Дальше строится WebRTC-соединение, SDP-offer отправляется на тот же Worker. В ответе нет ICE-кандидатов, адрес подключения выставлен в 0.0.0.0 — прямое P2P-соединение таким образом исключается намеренно. Весь реальный трафик идет через TURN-релей Twilio: . Как только канал данных установлен, Cloudflare Worker вообще выпадает из цепочки связи. Защитник видит только браузерный процесс, который стучится к Cloudflare и Twilio — настоящий IP атакующего сервера нигде не всплывает.
Шифрование двухслойное. Сначала работает нативный для браузера DTLS. Поверх него — ChaCha-Poly1305 с ключом, полученным через обмен по ECDH; рукопожатие инициирует кадр 0xFE, который C2 присылает сразу после установки соединения. Полученные командные кадры передаются в cmd.exe /e:ON /v:OFF /d /c <cmd>. Судя по устройству очереди отправки и механизму управления потоком, авторы msaRAT рассчитывали на надежную передачу больших объемов данных — скриншотов, файлов и подобного.
Технику нельзя назвать полностью оригинальной. В августе 2025 года компания Praetorian показывала, что инфраструктура TURN конференц-платформ способна нести полноценный C2-канал. В марте 2026-го исследователи Sansec обнаружили скиммер, который через WebRTC data channel вытаскивал украденные данные карт мимо HTTP-инспекции. Новизна msaRAT в том, что он объединяет оба приема внутри одного Rust-импланта, управляющего headless-браузером через CDP — раньше такой связки не встречалось.
Как Chaos получает первоначальный доступ на конкретно эту машину, Talos не сообщает — известно только про типичный для группы арсенал: спам-рассылки, вишинг, злоупотребление Quick Assist, инструменты удаленного администрирования для закрепления. Про эту атаку такой конкретики нет.
Для охоты на угрозу Talos советует искать запуск Chrome или Edge инсталлятором, службой или любым неинтерактивным родительским процессом, проверять флаги --headless=new и --remote-debugging-port, сопоставлять с loopback-трафиком на порт отладки и с исходящим WebRTC-трафиком. Там, где телеметрия позволяет, стоит мониторить сообщения CDP — в частности вызовы Runtime.addBinding и Runtime.evaluate. Организациям, использующим автоматизацию браузера в CI-пайплайнах, придется отдельно настраивать правила под собственные легитимные headless-задачи, чтобы не тонуть в ложных срабатываниях. Важная оговорка: msaRAT не эксплуатирует никакую уязвимость Chrome или Edge — это чисто постэксплуатационный инструмент, и никакой патч браузера от него не защитит.
По состоянию на 23 июля 2026 года Talos не опубликовала ни одного файлового хеша msaRAT. В открытом репозитории индикаторов компрометации есть только два сетевых артефакта — стейджинговый IP 172.86.126[.]18 и хостнейм воркера is-01-ast[.]ols-img-12[.]workers[.]dev. Из сигнатур доступны ClamAV Win.Downloader.ChaosRaas-10060321-0, а также правила Snort 2 (1:66839, 1:66840, 1:66841) и Snort 3 (1:66839, 1:301587).
Ценность этих индикаторов ограничена по объективным причинам. Домен — это общий домен развертывания Cloudflare, который выдается каждому аккаунту сервиса Workers; злоумышленники и раньше использовали его для хостинга payload'ов и туннелирования C2, ничего специфичного для этой кампании тут нет. STUN/TURN-сервис Twilio — легитимная инфраструктура, которой пользуются реальные WebRTC-приложения. Заблокировать Twilio или Cloudflare Workers на уровне организации означает сломать законный трафик всем сотрудникам сразу. Talos прямо предполагает, что именно поэтому атакующие и выбрали Cloudflare Workers для сигнализации — решение сливается с фоновым шумом и его трудно заблокировать без побочного ущерба.
Отчет не называет пострадавшую организацию, не дает оценки масштаба заражения других компаний, не указывает, когда malware впервые появилась в обороте, и не объясняет, каким образом были получены креды для Cloudflare Worker и Twilio TURN. Сама схема доставки — curl, поддельное обновление, DLL через MSI — ничем не примечательна и встречается постоянно. Настоящая новизна в том, где именно после заражения «живет» C2-трафик — внутри легитимного на вид браузерного и WebRTC-обмена. Оба опубликованных сетевых индикатора, IP и хостнейм воркера, атакующие могут поменять за считанные минуты. А вот сам факт запуска headless-браузера инсталлятором — куда более устойчивый сигнал для детекции, поскольку он отражает саму технику, а не сменяемую инфраструктуру вокруг нее. Для успеха атаки нужен минимум: один из двух самых распространенных браузеров на машине и разрешенный исходящий доступ в сеть — планка, которую преодолевает практически любой парк Windows-компьютеров.