Эксперты Trellix Advanced Research Center обнаружили высокотехнологичную кампанию Advanced Persistent Threat (APT), получившую название OneClik, которая целенаправленно атакует критическую инфраструктуру энергетической, нефтяной и газовой отраслей. Злоумышленники используют фишинговые рассылки и эксплуатируют уязвимости в технологии Microsoft ClickOnce для скрытного внедрения вредоносного ПО. Кампания демонстрирует тактики, характерные для китайских хакерских группировок, хотя окончательная атрибуция требует осторожности. Ключевая особенность OneClik - стратегия «living off the land», маскирующая зловредные операции под легитимные облачные и корпоративные инструменты, что сводит на нет эффективность традиционных систем защиты.
Описание
Атака разворачивается в трех вариантах (v1a, BPI-MDM и v1d), каждый из которых использует .NET-лоадер OneClikNet для развертывания изощренного бэкдора RunnerBeacon, написанного на языке Go. Последний устанавливает связь с инфраструктурой злоумышленников, замаскированной под сервисы AWS - CloudFront, API Gateway и Lambda. Это делает сетевое обнаружение практически невозможным без расшифровки трафика или глубокого поведенческого анализа. Эволюция кампании прослеживается в усложнении методов уклонения от детектирования: от злоупотребления ClickOnce для прокси-выполнения кода до раннего внедрения через подмену .NET AppDomainManager и внедрения антиотладочных механизмов.
Техника атаки: Как Работает OneClik
ClickOnce, технология развертывания приложений .NET, стала основным вектором атаки. Злоумышленники рассылают письма с ссылками на поддельные сайты «анализа оборудования», где жертве предлагается загрузить .application-файл (манифест ClickOnce), замаскированный под легитимный инструмент. После запуска файл инициирует цепочку заражения: легитимный процесс Deployment Service (dfsvc.exe) загружает вредоносный код через подмену конфигурации .NET. Техника AppDomainManager Hijacking (T1574.014) позволяет заставить .NET-приложение (например, ZSATray.exe) загружать удаленную вредоносную DLL вместо штатных зависимостей. Это обеспечивает выполнение кода в доверенном процессе, сливаясь с нормальной активностью ClickOnce.
Цепочка заражения включает несколько этапов. В варианте v1a фишинговый переход ведет к загрузке файла Hardware_Analysis_Tool.application, который запускает исполняемый файл под dfsvc.exe. Далее через подмену конфигурации загружается .NET DLL и зашифрованный шелл-код, который в памяти расшифровывается в бэкдор RunnerBeacon. Лоадер OneClikNet использует модульный подход: идентификатор жертвы генерируется через SHA-256-хэширование имени компьютера или загрузку с C2-сервера, а полезная нагрузка (шелл-код) извлекается из локальных файлов, C2 или встроенных ресурсов. Для усложнения анализа применяется предварительная обработка данных - замена символов в base64-строках и брутфорс-подбор AES-ключей.
Уклонение от Обнаружения: От ETW до Облака
OneClik внедряет многоуровневые антианалитические меры. В v1a лоадер перемещает в памяти системные библиотеки (ntdll.dll, kernel32.dll), патчит ETW (Event Tracing for Windows), подменяя функции EtwEventWrite на пустые операции (xor rax, rax; retn), и скрывает окна консоли. Вариант BPI-MDM добавляет постоянную проверку отладчиков: отдельный поток мониторит Debugger.IsAttached, CheckRemoteDebuggerPresent и NtQueryInformationProcess, завершая работу при обнаружении анализа. В v1d внедрена проверка окружения: вредоносный код определяет, присоединена ли машина к домену или Azure AD (через NetGetJoinInformation/NetGetAadJoinInformation), и проверяет объем оперативной памяти (менее 8 ГБ считается признаком песочницы). После загрузки конфигурационные файлы удаляются, что затрудняет цифровую криминалистику.
RunnerBeacon: Мощный Бэкдор на Golang
Основная нагрузка - бэкдор RunnerBeacon - реализован на Go и шифрует трафик RC4 с сериализацией данных через MessagePack. Каждое сообщение содержит заголовок (длина и тип) и зашифрованное тело. Бэкдор поддерживает модульную систему команд: от выполнения shell-инструкций (через CreateProcessW) до сканирования портов, операций с файлами и создания SOCKS5-туннелей. Расширенные функции включают инъекцию кода в удаленные процессы, манипуляции токенами и эскалацию привилегий. Протокол поддерживает 16 типов сообщений (0x0–0xF), включая сжатые данные и асинхронные прокси-запросы. Интересная деталь - наличие строки «runneradmin» в отладочных символах, что и дало имя бэкдору. Сходство с Cobalt Strike (Geacon) указывает на возможную модификацию известных инструментов.
Инфраструктура: Маскировка в AWS
C2-серверы OneClik используют AWS-сервисы для обфускации. В v1a трафик направлялся через CloudFront (dyydej4wei7fq.cloudfront[.]net) и API Gateway (b2zei88b61.execute-api.eu-west-2[.]amazonaws.com), имитируя легитимный облачный трафик. В v1d злоумышленники перешли на Lambda-функции (.lambda-url.us-east-1.on.aws), полностью скрываясь за доверенными AWS-доменами. Это позволяет обходить сигнатурные системы: блокировка потребует запрета целых облачных платформ или декодирования SSL, что не всегда реализуемо.
Эволюция Угрозы и Рекомендации
Сравнение вариантов показывает прогрессирующую сложность: от статических AES-ключей в v1a до многофакторных проверок окружения в v1d. Тренд ясен: минимизация следов, усиление обфускации и эксплуатация облачных сервисов. Для защиты Trellix рекомендует:
- Блокировать недоверенные ClickOnce-приложения через групповые политики.
- Внедрять поведенческий анализ для выявления аномалий в процессах .NET.
- Мониторить необычную активность в AWS-сервисах, особенно Lambda и CloudFront.
- Обновлять системы для устранения уязвимостей в .NET и ClickOnce.
- Обучать сотрудников распознаванию фишинговых атак, нацеленных на ИТ-персонал.
Кампания OneClik демонстрирует опасный синтез «бесшумных» техник и облачной инфраструктуры. Ее обнаружение подчеркивает необходимость перехода от сигнатурных методов к AI-ориентированной защите, способной анализировать контекст и аномальное поведение в режиме реального времени. Энергетический сектор, как критическая инфраструктура, должен стать приоритетом для таких решений.