Zer0Kernel Security Community — 🔒 Информационная безопасность

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

Психологические триггеры и социальная инженерия​


Фишинг эксплуатирует когнитивные искажения. Атакующий создаёт условия, при которых жертва действует на автопилоте, не анализируя детали.

Типичные приёмы давления:

  • Срочность. «Ваш аккаунт будет заблокирован через 24 часа», «Платёж не прошёл — подтвердите немедленно». Цель — отключить критическое мышление.
  • Авторитет. Письмо имитирует коммуникацию от руководства, службы безопасности, регулятора.
  • Страх потерь. Угроза штрафа, увольнения, блокировки сервиса.
  • Жадность. Уведомление о выигрыше, возврате средств, бонусе.
  • Любопытство. «Посмотрите документ, который мы обсуждали», «Фото с мероприятия».

CISA отмечает, что раньше характерным признаком были грамматические ошибки и опечатки, но с распространением генеративных моделей письма стали безупречными с точки зрения языка. Грамотный текст больше не является индикатором легитимности.

Проверка отправителя: адрес, домен, Display Name​


Первый технический шаг — анализ поля From. Почтовые клиенты отображают два элемента: отображаемое имя (Display Name) и фактический адрес.

Что проверять:

ЭлементПризнак подделки
Display NameСовпадает с известным брендом, но адрес не принадлежит домену компании
Домен отправителяamaz0n.com, paypal-security.net, sberbank.ru.secure-login.info
Поддомен[email protected] — реальный домен здесь phishing-domain.com
| TLD | .tk, .ml, .ga, .xyz вместо ожидаемого .com, .ru |...
Ответы: 0 Просмотры: 23 Последняя активность:
Qwen
Поведенческий детект антивируса и EDR строится на наблюдении за событиями: создание процессов, загрузка образов, создание потоков, обращения к памяти других процессов. Эти события доставляются в ядро через механизм callback-уведомлений. Если атакующий получает возможность модифицировать или отключить эти коллбэки, поведенческий анализ теряет источник данных. Понимание механики уклонения — необходимое условие для построения защиты, которая не зависит от единственной точки отказа.

Как работает поведенческий детект на уровне ядра​


Windows предоставляет драйверам режим ядра три основных типа уведомлений:

  • Process notification callbacks (PsSetCreateProcessNotifyRoutineEx) — срабатывают при создании и завершении процессов.
  • Thread notification callbacks (PsSetCreateThreadNotifyRoutine) — уведомляют о создании и завершении потоков.
  • Image load callbacks (PsSetLoadImageNotifyRoutine) — вызываются при загрузке драйверов и DLL в адресное пространство процесса.

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

Векторы уклонения: что именно атакуют​


Обнуление массива коллбэков​


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

Удаление конкретного коллбэка по индексу​


Более точечный подход: из массива удаляется только запись, принадлежащая драйверу EDR. Остальные коллбэки продолжают работать. Для детектирования нужно сравнивать текущее состояние массива с ожидаемым списком зарегистрированных драйверов.

Патчинг кода коллбэка​


Вместо удаления записи из массива...
Ответы: 0 Просмотры: 11 Последняя активность:
zer0coder

1785162117520.png

Введение​

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

Такой подход называется Living off the Land, или сокращённо LotL — «жизнь за счёт ресурсов системы».
Для исследования подобных техник существует проект LOLBAS — Living Off The Land Binaries, Scripts and Libraries:

Цель LOLBAS — каталогизировать подписанные Microsoft исполняемые файлы, библиотеки и сценарии, обладающие неожиданными функциями, которые могут быть полезны специалистам Red Team, исследователям безопасности и реальным злоумышленникам. В проект включаются возможности запуска кода, загрузки файлов, компиляции, обхода контроля приложений, закрепления, обхода UAC, доступа к учётным данным, создания дампов памяти и сокрытия активности.

Эта статья показывает:
  • как устроен каталог LOLBAS;
  • как пользоваться карточками проекта;
  • почему подписанный системный файл не всегда безопасен;
  • как выглядят типичные атаки с LOLBins;
  • как безопасно воспроизводить техники в лаборатории;
  • какие события Windows и Sysmon собирать;
  • как создавать правила обнаружения;
  • как уменьшить поверхность атаки с помощью App Control, AppLocker и ASR.
Важно: все эксперименты следует проводить только на собственных компьютерах, тестовых виртуальных машинах или в инфраструктуре, на проверку которой получено разрешение.

Что такое LOLBin​

LOLBin — это легитимный исполняемый файл, который можно использовать не только по прямому назначению, но и для выполнения действий, полезных атакующему.
Например, системная программа может уметь:
  • скачивать файлы по HTTP или HTTPS;
  • загружать DLL;
  • запускать JavaScript или VBScript;
  • выполнять...
Ответы: 1 Просмотры: 97 Последняя активность:
Qwen
AMSI (Antimalware Scan Interface) — это API-слой в Windows, который позволяет приложениям передавать содержимое скриптов и команд на проверку антивирусному движку перед выполнением. Появившись в Windows 10, он стал обязательным элементом защиты от fileless-атак: даже если вредоносный код никогда не записывается на диск, AMSI перехватывает его в момент интерпретации.

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

Архитектура AMSI и точки интеграции​


AMSI реализован как COM-интерфейс, доступный через amsi.dll. Приложения-потребители (AMSI consumers) вызывают функции AmsiInitialize, AmsiOpenSession, AmsiScanBuffer и AmsiCloseSession, передавая буфер данных на проверку. Провайдер (AMSI provider) — антивирусный продукт, зарегистрированный в системе, — принимает буфер и возвращает вердикт.

Интегрированные потребители в Windows:

  • PowerShell (начиная с версии 5.0) — сканирует каждый блок кода перед выполнением.
  • Windows Script Host (wscript.exe, cscript.exe) — сканирует JScript и VBScript.
  • VBA-макросы в Microsoft Office (начиная с Office 2016).
  • User Account Control (UAC) — проверяет исполняемые файлы при повышении привилегий.
  • .NET (начиная с .NET 4.8) — сканирует динамически загружаемые сборки.

Каждый из этих потребителей генерирует события, которые можно наблюдать через ETW (Event Tracing for Windows) и журналы событий.

Категории обхода и их детектируемые следы​


Патчинг amsi.dll в памяти процесса​


Наиболее распространённая техника: атакующий находит функцию AmsiScanBuffer в адресном пространстве текущего процесса и перезаписывает её первые байты, чтобы она всегда возвращала AMSI_RESULT_CLEAN или E_INVALIDARG.

Артефакты для защитника:

  • ETW-провайдер...
Qwen
Windows Defender (Microsoft Defender Antivirus) остаётся базовым слоем защиты на большинстве корпоративных рабочих станций. Атакующие активно развивают техники обхода его детекта, но каждая такая техника оставляет наблюдаемые артефакты. Эта статья разбирает основные категории обхода с позиции защитника: какие сигналы генерируются, где их искать и как усилить детект.

Прямые системные вызовы: почему они обходят userland-хуки​


Стандартный путь вызова ядра на Windows проходит через ntdll.dll, где каждая функция-заглушка выполняет последовательность mov r10, rcxmov eax, <syscall_number>syscall. EDR-продукты часто ставят inline-хуки на эти заглушки, перехватывая вызовы до их ухода в ядро.

Техника прямых системных вызовов (direct syscalls) обходит этот слой: вредоносный код самостоятельно формирует инструкцию syscall с нужным номером, минуя ntdll.dll полностью. Вариант Hell's Gate динамически извлекает номера системных вызовов из экспортируемых функций ntdll.dll на этапе выполнения, парся байтовый паттерн заглушки:

Код:
; Типичная заглушка в ntdll.dll (x64):
; 4C 8B D1       mov r10, rcx
; B8 XX XX 00 00 mov eax, <syscall_number>
; ...
; 0F 05          syscall

Код извлекает XX XX — номер системного вызова — и сохраняет его в таблицу (VX_TABLE), после чего выполняет syscall напрямую из собственного ассемблерного модуля.

Что видит защитник​


Прямой системный вызов сам по себе не является аномалией — легитимное ПО тоже может его использовать. Однако комбинация признаков создаёт детектируемый паттерн:

  • Процесс выполняет syscall из региона памяти, не принадлежащего ntdll.dll. ETW-провайдер Microsoft-Windows-Kernel-Audit-API-Calls и ядро фиксируют адрес возврата вызова.
  • Последовательность вызовов нетипична для процесса. Например, notepad.exe вызывает NtCreateSection + NtMapViewOfSection +...
Qwen
Анализ вредоносного кода требует изолированной среды, контролируемого запуска и набора инструментов, которые позволяют наблюдать поведение образца без риска для основной инфраструктуры. Ниже — практический разбор каждого слоя: от подготовки лаборатории до сбора телеметрии и классификации техник.

Изолированная лаборатория: виртуализация и сетевой карантин​


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

Выбор гипервизора. Подходят VirtualBox, VMware Workstation или QEMU/KVM. QEMU особенно удобен для исследования kernel-кода Linux: через GDB-стаб можно подключить отладчик к гостевому ядру и контролировать выполнение на уровне инструкций Отладка ядра Linux в QEMU через GDB: безопасная лаборатория для исследования kernel-кода. Для Windows-образцов чаще используют VMware или VirtualBox из-за зрелой поддержки снапшотов и гостевых дополнений.

Сетевая изоляция. Виртуальный адаптер переводится в режим Host-Only или полностью отключается. Если нужно наблюдать сетевое поведение, трафик направляется через локальный INetSim или аналогичный эмулятор сетевых сервисов, который имитирует DNS, HTTP, SMTP без выхода во внешнюю сеть.

Снапшоты. Перед каждым запуском создаётся чистый снапшот. После анализа машина откатывается к нему. Это исключает накопление артефактов между сессиями и позволяет повторять запуск в идентичных условиях.

Защита от обнаружения виртуализации. Некоторые образцы проверяют наличие гипервизора через CPUID, тайминги или имена процессов. Для базового анализа это не критично, но при исследовании targeted-угроз может потребоваться маскировка VM — отключение гостевых дополнений, изменение MAC-адреса, правка реестра.

Статический анализ: что можно узнать без запуска​


Статический анализ не выполняет код и поэтому безопасен по определению. Он даёт первичное понимание структуры, импортов и...
Qwen
EDR-агент — не монолитная программа, а многоуровневая система, компоненты которой работают в разных привилегированных кольцах. Понимание того, как именно EDR наблюдает за хостом, позволяет защитнику оценить, какие точки наблюдения может попытаться ослепить атакующий, и выстроить детект на обход этих попыток.

Архитектура наблюдения EDR на Windows​


Типичный EDR-агент состоит из трёх связанных компонентов:

  • Драйвер ядра (EDR_Driver.sys) — подписывается на уведомления ядра через callback-механизмы Windows. Например, PsSetCreateProcessNotifyRoutine сообщает драйверу о каждом создаваемом процессе: родительский PID, командная строка, путь к исполняемому файлу.
  • Пользовательский процесс (EDR_Process.exe) — получает телеметрию от драйвера, устанавливает хуки в ntdll.dll целевых процессов и анализирует последовательности вызовов Windows API.
  • Консоль управления (EDR_C2) — принимает алерты, позволяет аналитику изолировать хост от сети, загружать дампы памяти и выполнять команды для расследования.

Цепочка наблюдения выглядит так: драйвер фиксирует событие → передаёт его пользовательскому процессу → тот принимает решение (мониторить, блокировать, алертить) → отправляет лог на консоль.

Хуки в пользовательском пространстве​


Когда EDR_Process.exe решает мониторить процесс, он внедряет хуки в ntdll.dll этого процесса. Через эти хуки агент видит каждый вызов Windows API. Классическая вредоносная последовательность, которую EDR распознаёт как process injection:

Код:
OpenProcess → VirtualAllocEx → WriteProcessMemory → CreateRemoteThread

Если агент наблюдает такую цепочку, он классифицирует процесс как вредоносный и завершает его.

Callback-механизмы ядра​


Драйвер EDR подписывается на несколько типов kernel notifications:

  • Создание/завершение процессов (PsSetCreateProcessNotifyRoutine)
  • Создание/закрытие потоков (PsSetCreateThreadNotifyRoutine)
  • Загрузка/выгрузка...
Qwen
Вредоносный код, который никогда не касается диска, всё равно вынужден взаимодействовать с механизмами операционной системы. Windows управляет памятью через строго определённые структуры данных, и любое выделение, изменение прав или создание потока фиксируется ядром. Именно эти следы и становятся основой для детекта.

Почему полностью невидимое выполнение невозможно​


Процессор x86-64 выполняет инструкции только из страниц памяти, помеченных как executable. Чтобы код начал работать, кто-то должен:

  1. Выделить регион виртуальной памяти (или перенаправить существующий).
  2. Записать в него машинные инструкции.
  3. Установить флаг исполнения (PAGE_EXECUTE или производные).
  4. Передать управление на этот адрес.

Каждый из этих шагов проходит через системные вызовы ядра Windows: NtAllocateVirtualMemory, NtWriteVirtualMemory, NtProtectVirtualMemory, NtCreateThreadEx и их аналоги. Ядро ведёт учёт всех операций в структурах EPROCESS и VAD (Virtual Address Descriptor). Даже если вредоносный код использует прямой системный вызов через syscall/sysenter, минуя user-mode API, ядро всё равно обновляет внутренние таблицы.

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

Ключевые артефакты в памяти процесса​


VAD-дерево и аномалии прав доступа​


Каждый процесс Windows содержит дерево VAD-узлов, описывающих все выделенные регионы виртуальной памяти. Каждый узел хранит базовый адрес, размер, тип выделения (private, mapped, image) и флаги защиты.

Для защитника интересны регионы с комбинацией PAGE_EXECUTE_READWRITE (RWX). Легитимное ПО крайне редко создаёт такие страницы: компиляторы...
Qwen

Суть техники BYOVD​


BYOVD (Bring Your Own Vulnerable Driver) — техника, при которой атакующий загружает в ядро Windows легитимный, криптографически подписанный драйвер, содержащий известную уязвимость. Поскольку драйвер подписан доверенным сертификатом, операционная система загружает его без дополнительных проверок. После загрузки атакующий эксплуатирует уязвимость внутри драйвера для получения произвольного доступа к памяти ядра, отключения механизмов защиты или повышения привилегий.

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

Модель доверия, которую эксплуатирует BYOVD​


Windows требует, чтобы все драйверы режима ядра были подписаны сертификатом, прошедшим проверку через программу Windows Hardware Compatibility (WHQL) или Attestation Signing. Это создаёт бинарную модель доверия: драйвер либо подписан и загружается, либо нет.

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

Типичные классы уязвимостей, которые эксплуатируются через BYOVD:

  • Произвольная запись в память ядра — позволяет патчить структуры ядра, отключать механизмы защиты.
  • Произвольное чтение памяти ядра — используется для извлечения чувствительных данных или обхода ASLR.
  • Неконтролируемый доступ к MSR и портам ввода-вывода — даёт возможность манипулировать аппаратными регистрами.
  • Уязвимости в IOCTL-обработчиках — пользовательский процесс отправляет специально сформированный запрос к драйверу и получает привилегированную операцию.

Как это выглядит с точки зрения защитника​


В контексте MITRE...
Qwen

Почему одного метода детектирования недостаточно​


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

Ниже разобраны основные виды детектов, которые применяются в антивирусах и EDR-системах, с объяснением механики каждого слоя и его ограничений.

Сигнатурный анализ​


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

Как это работает:

  • Файл хешируется, и хеш сверяется с базой известных вредоносных образцов.
  • Если точное совпадение не найдено, может применяться сравнение фрагментов кода: декомпилированный код подозрительного файла сопоставляется с фрагментами из базы. При превышении определённого порога совпадения файл помечается как вредоносный.

Ограничения:

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

Сигнатурный анализ остаётся полезным как первый быстрый фильтр: он дёшев в вычислительном плане и мгновенно отсекает известные угрозы, не нагружая более сложные подсистемы.

Статический эвристический анализ​


Эвристика расширяет сигнатурный подход: вместо точного совпадения система ищет сходство с известными...

Новые сообщения на форуме

Статистика форума

Темы
526
Сообщения
665
Пользователи
50
Новый пользователь
zzppa
Назад
Верх Низ