Исследователь кибербезопасности dis0rder0x00 представил доказательство концепции утилиты Obex, которая реализует простой, но эффективный пользовательский метод блокировки нежелательных модулей безопасности и мониторинга в процессах Windows. Инструмент запускает целевой процесс под контролем отладчика и применяет настраиваемый список блокировки DLL, предотвращая как начальную загрузку, так и динамическое подключение указанных библиотек во время выполнения.
В демонстрации Obex запускает PowerShell, гарантируя, что amsi.dll никогда не загружается в адресное пространство процесса, что подчеркивает практический потенциал обхода внутрипроцессной инспекции. При вызове Obex анализирует аргументы командной строки для идентификации целевого исполняемого файла и дополнительного списка имен DLL для блокировки. Если список не предоставлен, инструмент по умолчанию предотвращает загрузку библиотеки интерфейса антивирусного сканирования в новый процесс.
После этого Obex создает дочерний процесс в состоянии отладки, что позволяет перехватывать уведомления о загрузке модулей непосредственно во время инициализации процесса. Когда API отладки сообщает о предстоящей загрузке модуля - будь то зависимость при запуске или динамический вызов LoadLibrary - Obex сравнивает имя DLL без учета регистра со своим списком блокировки. При совпадении инструмент подавляет запрос на загрузку, в результате чего модуль остается отсутствовать в адресном пространстве процесса. Дочерний процесс продолжает выполнение без заблокированных библиотек, а Obex регистрирует или сообщает о заблокированных событиях для видимости оператора.
Ключевые особенности Obex выделяются своей минималистичностью и гибкостью. Контроль отладки процесса позволяет запускать любой процесс с аргументами под управлением отладчика, обеспечивая ранний перехват загрузки модулей. Настраиваемая блокировка DLL блокирует настраиваемый список DLL по именам, позволяя целевое предотвращение загрузки конкретных модулей безопасности. Двухфазная защита работает как для DLL, загружаемых при инициализации процесса, так и для динамически загружаемых библиотек через функции LoadLibrary.
Инструмент написан на чистом C без внешних зависимостей, что обеспечивает минимальный след и простоту развертывания. Сопоставление без учета регистра улучшает надежность работы с различными соглашениями об именовании. Стандартный список блокировки автоматически блокирует amsi.dll, когда не предоставлен пользовательский список DLL, немедленно демонстрируя возможности обхода систем обнаружения и реагирования. Блокировка в реальном времени перехватывает и предотвращает загрузку модулей во время выполнения процесса. Поддержка проверки предоставляет четкие доказательства блокировки модулей через перечисление модулей процесса.
Obex демонстрирует, что защитные механизмы, полагающиеся исключительно на пользовательские перехватчики или обязательную внутрипроцессную проверку, могут быть селективно ослеплены, когда злоумышленники контролируют параметры запуска процесса. Предотвращая загрузку указанных DLL, противники могут уклоняться от телеметрии и подрывать правила обнаружения, которые зависят от этих модулей.
Защита на уровне ядра, такая как обеспечение целостности загрузки библиотек на более низком уровне или усиление интеграций с интерфейсом антивирусного сканирования, предлагает более устойчивую защиту. Поставщикам систем обнаружения и реагирования также следует проверять поведение, когда основные компоненты отсутствуют, и соответствующим образом повышать уровень оповещений о целостности.
Obex служит своевременным напоминанием, что глубокая эшелонированная защита должна выходить за пределы инструментирования пользовательского режима для надежного поддержания видимости и контроля. Появление таких инструментов подчеркивает важность комплексного подхода к безопасности, сочетающего различные уровни защиты для противодействия постоянно развивающимся методам обхода.