Описание вредоносного ПО

Разрушительный драйвер: как злоумышленники отключают антивирусы с помощью легитимного драйвера

Введение

Недавно в ходе оказания услуг по реагированию на инцидент в Бразилии мы натолкнулись на новое интересное ПО для отключения процессов антивируса (AV Killer), которое используется в реальных атаках как минимум с октября 2024 года. Для этой цели атакующие используют драйвер ThrottleStop.sys, доставляемый вместе с вредоносным ПО в рамках техники BYOVD (Bring Your Own Vulnerable Driver), чтобы отключать процессы антивирусов и ослаблять защиту системы. Использование уязвимых драйверов — хорошо известная техника, которая часто применяется атакующими. В последнее время мы наблюдаем всплеск кибератак с применением этого типа зловредов.

Важно подчеркнуть, что такие решения «Лаборатории Касперского», как Kaspersky Endpoint Security (KES), содержат механизмы самозащиты, которые предотвращают изменение или удаление файлов приложений на жестком диске, процессов в памяти и записей в системном реестре. Они успешно блокируют действия инструментов типа AV Killer, описанного в этой статье.

В проанализированном нами случае клиент сообщил о проблеме после того, как обнаружил, что его системы были зашифрованы одним из вариантов программы-вымогателя. Злоумышленники получили доступ к исходной системе (SMTP-серверу) с помощью действующих учетных данных RDP. После этого они извлекли через Mimikatz учетные данные других пользователей и начали горизонтальное распространение с применением техники Pass-the-Hash и инструментов Invoke-WMIExec.ps1 и Invoke-SMBExec.ps1. Атакующие отключили антивирусные решения на нескольких конечных устройствах и серверах в сети, а затем запустили на них разновидность шифровальщика MedusaLocker.

В этой статье мы подробно рассматриваем инцидент и анализируем поведение AV Killer, а также описываем тактики, техники и процедуры, применяемые злоумышленниками.

Решения «Лаборатории Касперского» детектируют угрозы, обнаруженные в этом инциденте, под следующими именами:

  • Trojan-Ransom.Win32.PaidMeme.* (разновидность MedusaLocker)
  • Win64.KillAV.* (AV Killer)

Обзор инцидента

В ходе атаки злоумышленники раздобыли действующие административные учетные данные. В начале им удалось подключиться к почтовому серверу через RDP из Бельгии, а затем извлечь с помощью Mimikatz NTLM-хэш другого пользователя. После этого атакующие выполнили следующие команды PowerShell Invoke-TheHash в рамках техники Pass-the-Hash, чтобы создать пользователей в других системах.

Примечательно, что злоумышленники создавали учетные записи пользователей с различными именами для каждой системы. Для этого они добавляли порядковый номер в конец имени каждого нового пользователя (т. е. User1, User2 и так далее до UserN). Однако пароль у всех созданных пользователей был одинаковый.

Злоумышленники загрузили на почтовый сервер в папку C:\Users\Administrator\Music набор вредоносных файлов, в том числе AV Killer. Позднее эти файлывместе с шифровальщиком (haz8.exe) были загружены в другие системы, но уже в папку C:\Users\UserN\Pictures. Сначала Windows Defender удалось заблокировать шифровальщик на некоторых устройствах сразу после его загрузки, но вскоре злоумышленники отключили защитное решение.

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

Схема инцидента

Схема инцидента

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

Анализ AV Killer

Для отключения защиты системы атакующие задействовали связку файлов: ThrootleBlood.sys и All.exe. Первый из них — легитимный драйвер с исходным названием ThrottleStop.sys, разработанный компанией TechPowerUp и используемый приложением ThrottleStop. Эта программа предназначена для мониторинга и устранения проблем с троттлингом процессора и в основном применяется геймерами. Драйвер, обнаруженный в инциденте, имел действующий сертификат, подписанный 06.10.2020 в 20:34 (UTC), как показано ниже:

 

Хэш Значение
MD5 6bc8e3505d9f51368ddf323acb6abc49
SHA-1 82ed942a52cdcf120a8919730e00ba37619661a3
SHA-256 16f83f056177c4ec24c7e99d01ca9d9d6713bd0497eeedb777a3ffefa99c97f0

После загрузки драйвер создает устройство с именем .\\.\\ThrottleStop, которое представляет собой канал для обмена данными между пользовательским пространством и ядром.

Организация обмена данными через драйвер устройства ThrottleStop

Организация обмена данными через драйвер устройства ThrottleStop

Взаимодействие с драйвером осуществляется с помощью вызовов IOCTL, в частности через Win32-функцию DeviceIoControl. Она позволяет запрашивать различные операции драйвера с помощью кодов IOCTL. Драйвер содержит две уязвимые функции IOCTL: одна позволяет считывать данные из памяти, а другая — записывать их. Обе работают с указанием физических адресов. Особенно важно, что эти функции может вызывать любой пользователь с административными привилегиями, что и составляет суть уязвимости.

Физический доступ к памяти реализован в драйвере посредством функции MmMapIoSpace — это API уровня ядра, позволяющее сопоставлять конкретный физический адрес с виртуальным адресным пространством, в частности, в регионе MMIO (Memory-Mapped I/O). Благодаря сопоставлению чтение из виртуальной памяти и запись в нее напрямую воздействуют на соответствующие адреса физической памяти. Уязвимости такого типа широко распространены в драйверах уровня ядра и на протяжении многих лет эксплуатируются не только злоумышленниками, но и игровыми читерами для получения низкоуровневого доступа к памяти. Уязвимость в ThrottleStop.sys получила идентификатор CVE-2025-7771. По имеющейся у нас информации, вендор готовит к выпуску патч. Кроме того, мы рекомендуем настроить защитные решения так, чтобы они отслеживали использование этого уязвимого драйвера в операционной системе — это поможет предотвратить его эксплуатацию вредоносным по типа AV/EDR killer, подобным описанному в этой статье.

Второй файл (All.exe) — сам вредоносный инструмент типа AV Killer. Мы начали свой анализ с базовой проверки файла.

Хэш Значение
MD5 a88daa62751c212b7579a57f1f4ae8f8
SHA-1 c0979ec20b87084317d1bfa50405f7149c3b5c5f
SHA-256 7a311b584497e8133cd85950fec6132904dd5b02388a9feed3f5e057fb891d09

Сначала мы изучили свойства файла. В ходе поиска релевантных строк в бинарном файле наше внимание привлекло упоминание множества названий процессов антивирусных решений. На рисунке ниже приведена выдержка из результатов нашего поискового запроса.

Имена процессов антивирусов внутри бинарника

Имена процессов антивирусов внутри бинарника

Нам удалось установить принадлежность всех процессов, которые этот зловред пытается завершить. В таблице ниже им сопоставлены соответствующие поставщики. Как мы видим, артефакт пытается завершить процессы основных антивирусных решений, доступных на рынке.

Имена процессов Поставщик
AvastSvc.exe, AvLaunch.exe, aswToolsSvc.exe, afwServ.exe, wsc_proxy.exe, bccavsvc.exe Avast
AVGSvc.exe, AVGUI.exe, avgsvca.exe, avgToolsSvc.exe AVG Technologies (Avast)
bdlived2.exe, bdredline.exe, bdregsvr2.exe, bdservicehost.exe, bdemsrv.exe, bdlserv.exe, BDLogger.exe, BDAvScanner.exe, BDFileServer.exe, BDFsTray.exe, Arrakis3.exe, BDScheduler.exe, BDStatistics.exe, npemclient3.exe, epconsole.exe, ephost.exe, EPIntegrationService.exe, EPProtectedService.exe, EPSecurityService.exe, EPUpdateService.exe BitDefender
CSFalconContainer.exe, CSFalconService.exe, CSFalconUI.exe CrowdStrike
egui.exe, eguiProxy.exe, ERAAgent.exe, efwd.exe, ekrn.exe ESET
avp.exe, avpsus.exe, avpui.exe, kavfs.exe, kavfswh.exe, kavfswp.exe, klcsldcl.exe, klnagent.exe, klwtblfs.exe, vapm.exe «Лаборатория Касперского»
mfevtps.exe McAfee (Trellix)
MsMpEng.exe, MsMpSvc.exe, MSASCui.exe, MSASCuiL.exe, SecurityHealthService.exe, SecurityHealthSystray.exe Microsoft
QHPISVR.EXE, QUHLPSVC.EXE, SAPISSVC.EXE Quick Heal Technologies
ccSvcHst.exe, ccApp.exe, rtvscan.exe, SepMasterService.exe, sepWscSvc64.exe, smc.exe, SmcGui.exe, snac.exe, SymCorpUI.exe, SymWSC.exe, webextbridge.exe, WscStub.exe Symantec (Broadcom)
PSANHost.exe, pselamsvc.exe, PSUAMain.exe, PSUAService.exe Panda Security (WatchGuard)
SentinelAgent.exe, SentinelAgentWorker.exe, SentinelHelperService.exe, SentinelServiceHost.exe, SentinelStaticEngine.exe, SentinelStaticEngineScanner.exe, SentinelUI.exe SentinelOne
SophosFileScanner.exe, SophosFIMService.exe, SophosFS.exe, SophosHealth.exe, SophosNetFilter.exe, SophosNtpService.exe, hmpalert.exe, McsAgent.exe, McsClient.exe, SEDService.exe Sophos

После запуска бинарный файл сначала загружает драйвер ThrottleBlood.sys с помощью API-функций диспетчера служб (SCM), а именно: OpenSCManagerA() и StartServiceW().

Процесс загрузки драйвера ThrottleStop/ThrottleBlood

Процесс загрузки драйвера ThrottleStop/ThrottleBlood

Зловред AV Killer использует драйвер ThrottleStop для перехвата функций ядра, позволяющих выполнять из пользовательского режима процедуры, предназначенные исключительно для режима ядра. Чтобы вызывать функции ядра с помощью уязвимых примитивов чтения и записи в драйвере, зловред сначала извлекает базовый адрес загруженного ядра и адреса конкретных целевых функций, подлежащих перезаписи. Для этого его авторы использовали недокументированную Win32-функцию NtQuerySystemInformation.

Получение базового адреса ядра

Получение базового адреса ядра

Если передать функции флаг SystemModuleInformation, она вернет список загруженных модулей и драйверов в текущей системе. Процесс ядра Windows называется ntoskrnl.exe. Его базовый адрес меняется при каждом запуске, поскольку используется KASLR (Kernel Address Space Layout Randomization).

Чтобы выполнять операции ReadWrite с помощью функции MmMapIoSpace, система сначала должна определить физический адрес, используемый ядром. Для этого используется техника SuperFetch, реализованная в проекте с открытым исходным кодом под названием superfetch (доступен на GitHub). Этот проект упрощает преобразование виртуальных адресов в физические с помощью библиотеки C++, представленной в виде набора заголовочных файлов.

Вычисление физического адреса

Вычисление физического адреса

Библиотека superfetch на C++ в своей работе полагается на функцию NtQuerySystemInformation, в частности на запрос SystemSuperfetchInformation. Он возвращает все текущие диапазоны памяти и их страницы. Располагая этими сведениями, библиотека superfetch может преобразовать любой виртуальный адрес ядра в соответствующий физический адрес.

Вызов функций ядра

Выяснив физический базовый адрес, зловред должен выбрать функцию ядра, которую можно опосредованно выполнить через системный вызов из пользовательского режима. Злоумышленники выбрали для этой цели редко используемую функцию NtAddAtom, легко вызываемую через ntdll.dll .

Определение адреса NtAddAtom

Определение адреса NtAddAtom

Загрузив ntoskrnl.exe  с помощью функции LoadLibrary , зловред, помимо прочего, может определить смещение функции NtAddAtom  и, соответственно, ее адрес в ядре, суммировав текущее значение базового адреса и смещение. Физический адрес определяется тем же способом, что и базовый адрес ядра. После загрузки драйвера и определения физических адресов зловред может использовать уязвимые коды IOCTL для чтения физической памяти, содержащей функцию NtAddAtom , и записи в нее.

Внедрение кода в ядро через уязвимый драйвер

Внедрение кода в ядро через уязвимый драйвер

Для вызова функции ядра AV Killer записывает в него небольшой фрагмент шелл-кода, который передает управление на целевой адрес в ядре, соответствующий нужной функции. По завершении работы функции зловред восстанавливает исходный код ядра, чтобы предотвратить сбой системы.

Схема внедрения кода в ядро

Схема внедрения кода в ядро

Основная процедура завершения процессов

Собрав всю необходимую информацию, AV Killer переходит в цикл поиска целевых процессов с использованием API-вызовов Process32FirstW() и Process32NextW. Как упоминалось ранее, список целевого защитного ПО, включая, в частности, процесс MsMpEng.exe (Защитник Windows), жестко задан в самом зловреде.

Обнаружение совпадения с MsMpEng.exe

Обнаружение совпадения с MsMpEng.exe

AV Killer сверяет все запущенные процессы с заданным списком и в случае совпадения завершает соответствующий процесс, вызывая через уязвимый драйвер функции ядра PsLookupProcessById и PsTerminateProcess.

В случае успешного завершения процесса зловред выводит подтверждающее сообщение с именем этого процесса на консоль, как показано на рисунке ниже. Мы полагаем, что эти сообщения использовались для отладки зловреда.

Подтверждение завершения процесса MsMpEng.exe

Подтверждение завершения процесса MsMpEng.exe

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

Попытка перезапуска Защитника и повторное завершение его процессов

Попытка перезапуска Защитника и повторное завершение его процессов

Правила YARA

На основе анализа образца мы создали следующее правило YARA для обнаружения угрозы в реальном времени. В этом правиле учитываются тип файла, релевантные строки и импортируемые функции библиотек.

Жертвы

По данным нашей телеметрии и информации из открытых потоков Threat Intelligence, злоумышленники используют AV Killer как минимум с октября 2024 года. Большинство пострадавших находятся в России, Беларуси, Казахстане, Украине и Бразилии.

Атрибуция

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

Выводы и рекомендации

Из этого инцидента можно извлечь несколько важных уроков. Во-первых, необходимо внедрять практики усиления безопасности, чтобы защитить серверы от атак методом подбора пароля и ограничить доступ к инфраструктуре извне через протоколы удаленного доступа. Если бы атакованная компания ограничила доступа через RDP и применяла надежные парольные политики и многофакторную аутентификацию, первоначального проникновения злоумышленников можно было избежать. Что особенно важно, этот инцидент подчеркивает необходимость многоуровневой безопасности. Атакующим удалось отключить системную защиту с помощью AV Killer, что дало им возможность свободного горизонтального перемещения внутри сети. Чтобы снизить риск подобных угроз, системным администраторам следует внедрить:

  • Список разрешенных приложений и строгое следование принципу минимально требуемых привилегий.
  • Сегментация и изоляция сети для сдерживания взломов и ограничения горизонтального перемещения.
  • Многофакторная аутентификация (MFA) во всех каналах удаленного доступа.
  • Регулярное управление установкой исправлений и автоматизированный поиск уязвимостей.
  • Системы обнаружения и предотвращения вторжений (IDS/IPS) для выявления аномального поведения.
  • Инструменты для обнаружения и реагирования на рабочих местах (EDR) для мониторинга систем в режиме реального времени и устранения последствий.
  • Комплексный подход к ведению логов, мониторингу и системе оповещений для оперативного обнаружения инцидентов.
  • Периодическое проведение оценок безопасности и тестирования на проникновение для оценки эффективности мер контроля.

В последнее время мы наблюдаем рост количества атак с применением различных инструментов типа AV Killer. Поставщикам защитных решений следует внедрить механизмы самозащиты, предотвращающие угрозы подобного типа. Сюда относятся: защита файлов приложений от несанкционированных изменений, мониторинг памяти процессов и регулярное обновление правил детектирования на пользовательских устройствах.

Тактики, техники и процедуры

Ниже приведены тактики, техники и процедуры, основанные на нашем анализе AV Killer.

Тактика Метод ID
Discovery Process Discovery T1057
Defense Evasion Impair Defenses: Disable or Modify Tools T1562.001
Defense Evasion Impair Defenses: Indicator Blocking T1562.006
Privilege Escalation Create or Modify System Process: Windows Service T1543.003
Impact Service Stop T1489

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

Уязвимый драйвер ThrottleBlood.sys
82ed942a52cdcf120a8919730e00ba37619661a3
Зловред из рассматриваемого инцидента
f02daf614109f39babdcb6f8841dd6981e929d70 (haz8.exe)
c0979ec20b87084317d1bfa50405f7149c3b5c5f (All.exe)
Другие разновидности AV Killer
eff7919d5de737d9a64f7528e86e3666051a49aa
0a15be464a603b1eebc61744dc60510ce169e135
d5a050c73346f01fc9ad767d345ed36c221baac2
987834891cea821bcd3ce1f6d3e549282d38b8d3
86a2a93a31e0151888c52dbbc8e33a7a3f4357db
dcaed7526cda644a23da542d01017d48d97c9533

Разрушительный драйвер: как злоумышленники отключают антивирусы с помощью легитимного драйвера

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Отчеты

ToddyCat — ваш скрытый почтовый ассистент. Часть 1

Эксперты «Лаборатории Касперского» разбирают атаки APT ToddyCat через корпоративную электронную почту. Изучаем новую версию TomBerBil, инструменты TCSectorCopy и XstReader, а также способы кражи токенов доступа из Outlook.

Криптоафера группы BlueNoroff: «призрачные» инвестиции и фиктивные рабочие предложения

Эксперты команды GReAT проанализировали кампании GhostCall и GhostHire APT-группы BlueNoroff: несколько цепочек вредоносного ПО для macOS, поддельные клиенты Zoom и Microsoft Teams, а также изображения, улучшенные с помощью ChatGPT.

Mem3nt0 mori – Hacking Team снова с нами!

Исследователи «Лаборатории Касперского» впервые обнаружили шпионское ПО Dante, разработанное Memento Labs (бывшей Hacking Team) в дикой природе и нашли его связь с APT ForumTroll.