ValleyRAT атакует системы безопасности через уязвимые драйверы

remote access Trojan

В рамках мониторинга киберугроз Hexastrike Cybersecurity UG, была обнаружена новая кампания вредоносного программного обеспечения ValleyRAT, которая распространяется через поддельные установщики популярных приложений, таких как WinRAR и Telegram. Анализ показал, что один из сброшенных файлов, NVIDIA.exe, использует технику BYOVD (Bring Your Own Vulnerable Driver - использование собственного уязвимого драйвера) для отключения защитных решений на конечных устройствах.

Описание

Исполняемый файл NVIDIA.exe содержит простую, но эффективную логику: он определяет фиксированный список из 20 процессов, связанных с китайскими антивирусными продуктами, и непрерывно ищет их в системе. Список включает такие процессы, как ZhuDongFangYu.exe, 360tray.exe и другие компоненты антивируса 360 от Beijing Qihoo Technology Co., Ltd., что указывает на целевой характер атаки против китайских пользователей. После определения списка файл открывает handle драйвера и входит в бесконечный цикл, который перебирает активные процессы через Toolhelp32snapshot. При обнаружении соответствия PID процесса передаётся драйверу через вызов DeviceIoControl с кодом 0x2248E0, что приводит к принудительному завершению целевых процессов.

Процесс загрузки драйвера раскрывает дополнительные детали атаки. Программа обращается к устройству ядра с именем NSecKrnl через путь \\.\NSecKrnl. Если устройство уже занято, функция возвращает ошибку. Интересной особенностью является использование генератора псевдослучайных чисел для создания случайного алфавитного имени файла драйвера длиной от 10 до 29 символов. Драйвер записывается во временную директорию, полученную через GetTempPathA, после чего регистрируется как служба в системном реестре по пути HKLM\SYSTEM\CurrentControlSet\Services\<RandomName>. Для этого программа включает привилегию SeLoadDriverPrivilege через вызов RtlAdjustPrivilege и загружает драйвер с помощью NtLoadDriver.

Анализ сброшенного драйвера, NSecKrnl64, показал, что он был валидно подписан компанией Shandong Anzai Information Technology CO., Ltd., что могло способствовать его незаметному внедрению. Драйвер создаёт устройство \Device\NSecKrnl и символическую ссылку \DosDevices\NSecKrnl для доступа из пользовательского режима. Он обрабатывает IRP_MJ_DEVICE_CONTROL через диспетчер, который поддерживает четыре смежных кода управления: 0x2248D4, 0x2248D8, 0x2248DC и 0x2248E0. Код 0x2248E0, используемый в атаке, активирует примитив завершения процессов, который разрешает PID в EPROCESS через PsLookupProcessByProcessId, открывает handle с правами PROCESS_TERMINATE и вызывает ZwTerminateProcess.

Для проверки механизма атаки был разработан минимальный proof of concept (PoC), который демонстрирует возможность завершения процессов через обращение к \\.\NSecKrnl. PoC использует Toolhelp32 для поиска PID по имени процесса и отправляет его драйверу через DeviceIoControl, что подтверждает уязвимость систем, где драйвер активен.

Для обнаружения подобных атак рекомендуется активировать блокировку уязвимых драйверов в Windows (Windows Vulnerable Driver Blocklist) и использовать механизмы WDAC (Windows Defender Application Control) и HVCI (Hypervisor-Protected Code Integrity) там, где это возможно. Ключевым индикатором компрометации является установка драйверов и служб из нестандартных путей, доступных для записи пользователям, таких как %TEMP% или C:\Windows\Temp. Следует отслеживать создание файлов драйверов с последующей записью в реестр по пути HKLM\SYSTEM\CurrentControlSet\Services\<имя>\ImagePath и последующей загрузкой драйвера. Это сочетание событий имеет низкий уровень ложных срабатываний в корпоративных средах.

Для мониторинга можно использовать следующие методы на основе журналов Windows: поиск событий System с ID 7045, указывающих на установку служб с ImagePath во временных директориях; событий Sysmon с ID 6, фиксирующих загрузку драйверов из temp-путей; и событий Sysmon с ID 13, регистрирующих изменения в реестре по ключам Services\*\ImagePath, связанных с временными файлами. Рекомендуется настроить Sysmon на сбор событий ID 11 (создание файлов), ID 13 (изменение реестра) и ID 6 (загрузка драйверов) для построения полной цепочки атаки: от появления файла .sys во временной папке до попытки загрузки в ядро.

Важно отметить, что удаление ключа реестра службы и файла драйвера не выгружает уже активный драйвер из памяти. Устройство остаётся резидентным до остановки драйвера или перезагрузки системы. После сдерживания угрозы необходимо перезагрузить систему, убедиться, что доступ к \\.\NSecKrnl невозможен, и провести анализ журналов на предмет других артефактов кампании. Любое наблюдение подобного поведения должно рассматриваться как признак развёртывания бэкдора или RAT (Remote Access Trojan - трояна удалённого доступа) и эскалироваться в группу реагирования на инциденты.

Обнаружение ValleyRAT, использующего подписанный драйвер для атаки на системы безопасности, подчёркивает важность комплексного подхода к защите, включающего не только сигнатурные методы, но и мониторинг аномального поведения и контроль целостности драйверов. Организациям следует уделять внимание не только внешним угрозам, но и рискам, связанным с использованием легитимного, но скомпрометированного программного обеспечения.

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

MD5

  • 5d38c8a2e1786e464a368465d594d2b4
  • 80961850786d6531f075b8a6f9a756ad

SHA1

  • b0b912a3fd1c05d72080848ec4c92880004021a1
  • b5a605440f50e8d0fd5b26d01886a3b4a3dd3c8d

SHA256

  • 206f27ae820783b7755bca89f83a0fe096dbb510018dd65b63fc80bd20c03261
  • b4ac2e473c5d6c5e1b8430a87ef4f33b53b9ba0f585d3173365e437de4c816b2
Комментарии: 0