Уроки Разработка вирусов-35.Обход EDRs.Последняя тема цикла


X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 094
Репутация
8 211
1696774647348.png


Эта статья будет последняя в этом цикле.

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

Далее ещё планирую оформить это в pdf книги.

Надеюсь эти статьи кому-то покажутся интересным и сразу извиняюсь за их качества, хотя вероятно направления какое-то они могут дать. Dmeh-Smeh-Smeh!!! :sueta:(bug)bug!!!

Введение

Endpoint Detection and Response (EDR) — это решение безопасности, которое обнаруживает и реагирует на угрозы вроде вымогательского ПО и вредоносного программного обеспечения. Его работа основана на постоянном мониторинге конечных точек в поисках подозрительной активности путем сбора данных о таких событиях, как системные журналы, сетевой трафик, межпроцессное взаимодействие (IPC), вызовы RPC, попытки аутентификации и активность пользователя.

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

Кроме того, EDR будут запускать программы в изолированных средах, а затем продолжат мониторить их на предмет вредоносного поведения.

EDR следует использовать как часть большей стратегии кибербезопасности и вместе с другими решениями, такими как файрволы, системы обнаружения вторжений (IDS), системы предотвращения вторжений (IPS) и решения для управления информацией и событиями безопасности (SIEM). Эксперты по кибербезопасности также используют журналы EDR для поиска угроз и IoC, которые могли бы быть упущены решением.

Как работают EDR

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

Собранные данные затем анализируются и сравниваются с сигнатурами и вредоносным поведением. Обнаружив вредоносное или подозрительное поведение, EDR будет регистрировать это в панели безопасности. Настройки EDR очень настраиваемы, и в зависимости от их настроек он может либо предпринимать действие самостоятельно, либо просто предоставлять предупреждение. Ниже представлено изображение из одной из статей Microsoft, показывающее панель безопасности для Microsoft Defender For Endpoint с несколькими оповещениями.

1696774968794.png


Обнаружение по сигнатурами

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

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

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

Перехват в пользовательском режиме (Userland Hooking)

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

1696775168256.png


Отслеживание событий для Windows (ETW)

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

Следующее изображение взято из статьи Microsoft "Инструментирование вашего кода с помощью ETW", на котором показана архитектура ETW.

1696775249531.png


Отслеживание событий для Windows (ETW)

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

EDR могут использовать этот встроенный механизм для дальнейшего расширения своих возможностей по сбору информации о конкретной конечной точке. С другой стороны, такие инструменты, как Sysmon и Procmon, также используют ETW.

Интерфейс сканирования против вредоносного ПО (AMSI)

AMSI или Интерфейс сканирования против вредоносного ПО - это еще один механизм безопасности, встроенный в операционную систему Windows, начиная с Windows 10. Он позволяет стороннему программному обеспечению интегрироваться с ним и сканировать и обнаруживать вредоносные приложения.

Следующее изображение взято из статьи Microsoft "Как интерфейс сканирования против вредоносного ПО (AMSI) помогает вам защищаться от вредоносного ПО", на котором визуализирована архитектура AMSI.

1696775378242.png


С помощью AMSI программное обеспечение безопасности способно анализировать скрипты, код и сборки .NET, которые выполняются и динамически внедряются, такие как написанные на JavaScript, VBScript, PowerShell или других языках сценариев. Кроме того, AMSI может сканировать сборки .NET, которые являются программами, созданными с использованием фреймворка Microsoft .NET и написанными на C# и VB.NET.

AMSI используется через группу API, которые Microsoft классифицирует следующим образом:

- перечисления, используемые элементами программирования AMSI.

- функции, которые приложение может вызвать для запроса сканирования. На изображении ниже показаны доступные функции сканирования AMSI.

1696775510447.png


Интерфейсы интерфейса сканирования против вредоносного ПО - это COM-интерфейсы, составляющие API AMSI.

Основная реализация API

AMSI предоставляется через amsi.dll, который является основной DLL, используемой AMSI для выполнения своих операций (ссылаясь на вышеупомянутые функции). Подсистема безопасности операционной системы и сторонние продукты безопасности, интегрированные с AMSI, - это еще два набора DLL, используемых AMSI.

Обнаружение в памяти

Обнаружения в основе памяти относятся к IoC и сигнатурам, которые создаются после выполнения вашей полезной нагрузки.
Эти IoC могут быть выделениями кучи, трамплинами при подключении API, стеками потоков и секциями памяти RWX.

Детект происходит после выполнения, когда выполняется полезная нагрузка, где можно вносить изменения в ее расположение в памяти.
Обнаружение в памяти - это продвинутая концепция и один из самых эффективных способов обнаружения выполнения вредоносного кода.

Обратные вызовы ядра и драйверы Minifilter

Обратные вызовы ядра - это механизм, используемый в операционной системе Windows, который позволяет коду в режиме ядра регистрировать функции, которые будут вызываться ОС в определенные моменты или когда происходит событие. Некоторые примеры событий: создание файла, изменение ключа реестра и загрузка DLL.

Когда происходит событие, ОС вызывает зарегистрированную функцию обратного вызова и уведомляет код в режиме ядра о том, что это произошло. Этот "код в режиме ядра" может быть драйвером устройства, созданным продуктами безопасности, в данном случае - это EDR.

Стоит отметить, что плохо написанные или неправильно настроенные обратные вызовы могут вызвать нестабильность системы, проблемы с производительностью или даже уязвимости безопасности, поэтому этот метод не используется всеми производителями EDR.

Некоторые примеры обратных вызовов перечислены ниже.

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

PspLoadImageNotifyRoutine - регистрирует обратный вызов, предоставленный драйвером, который будет вызываться каждый раз, когда образ(DLL или EXE) загружается (или отображается) в памяти.

CmRegisterCallbackEx - регистрирует обратный вызов, предоставленный драйвером, который будет вызываться каждый раз, когда поток работает с реестром. Для перехвата, изучения и потенциальной блокировки событий ввода-вывода Microsoft рекомендует поставщикам безопасности использовать драйверы minifilter.

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

Кроме того, обратные вызовы ядра могут быть зарегистрированы компонентом Minifilter EDR для получения неизмененных данных напрямую из ядра, а не из ресурсов пользовательского пространства, так как они могут быть подделаны и изменены.

Пример того, как EDR может использовать драйверы minifilter и обратные вызовы ядра, - вызов PspCreateProcessNotifyRoutine для активации EDR для загрузки его DLL в режиме пользователя в созданные процессы, в котором он может выполнять перехват системного вызова, а затем использовать функциональность драйвера minifilter для мониторинга запросов файловой системы ввода-вывода этим вновь созданным процессом.

Сетевые IoC

Процессы, устанавливающие сетевые соединения, вызывают большее подозрение из-за возможности соединения с сервером C&C, контролируемым атакующим. Соединения с сетью будут отслеживаться EDR, и будет сгенерировано предупреждение, когда процесс, который обычно не использует сетевое соединение, начнет это делать. Например, если была выполнена инъекция в процесс notepad.exe, и он начал соединяться с интернетом, это считается высоко подозрительным. Кроме того, анализируются аспекты сетевого соединения, такие как целевой IP-адрес, доменное имя, номер порта и сетевой трафик.

Обход EDR

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

Важно помнить, что некоторые техники обхода EDR позволяют загрузчику избежать обнаружения, но не используемой в нем полезный нагрузка C&C. Это может быть связано с несколькими причинами:

Аномалии сети C&C хорошо известны и подписаны EDR. Загрузчик использует прямые/косвенные системные вызовы и успешно избежал обнаружения, но полезная нагрузка C&C этого не делает и по-прежнему использует подключенные функции.

Полезная нагрузка C&C выполнила детектируемую команду, либо намеренно, либо ненамеренно. Такие команды привлекут внимание EDR, и ваша реализация будет обнаружена (например, запустите cmd.exe и выполните команду whoami).

C&C использует узнаваемые именованные дескрипторы IPC или открывает конкретные (напомним, что IPC - это мьютексы, семафоры, сокеты). Например, выполнение команды "load powershell" с использованием Meterpreter приводит к следующему.

1696776241983.png


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

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 094
Репутация
8 211
 
Автор темы Похожие темы Форум Ответы Дата
X-Shar Введение в разработку вредоносных программ 6
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 2
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 5
X-Shar Введение в разработку вредоносных программ 1
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 2
X-Shar Введение в разработку вредоносных программ 2
X-Shar Введение в разработку вредоносных программ 0
X-Shar Введение в разработку вредоносных программ 3
X-Shar Введение в разработку вредоносных программ 2
X-Shar Введение в разработку вредоносных программ 0
Похожие темы
Уроки Разработка вирусов-34.Обход Windows defender
Уроки Разработка вирусов-33.Уменьшение вероятности детекта зверька
Уроки Разработка вирусов-32.Открываем врата ада
Уроки Разработка вирусов-31.Обход виртуальных машин
Уроки Разработка вирусов-30.Черпаем силы в антиотладке
Уроки Разработка вирусов-29. Предельная техника-2. Практика. Реализуем техники инъекции через сисколы
Уроки Разработка вирусов-28. Предельная техника. Разборка с сисколами
Уроки Разработка вирусов-27.Кунгфу-2.Изучаем API Hooking
Уроки Разработка вирусов-26. Изучаем кунгфу-1. Скрытие таблицы импорта
Уроки Разработка вирусов-25. Скрытие строк
Уроки Разработка вирусов-24. Изучаем технику Spoofing
Уроки Разработка вирусов-23. Контроль выполнения полезной нагрузки
Уроки Разработка вирусов-22.Изучаем технику Stomping Injection
Уроки Разработка вирусов-21.Инъекция отображаемой памяти
Уроки Разработка вирусов-20.Вызов кода через функции обратного вызова
Уроки Разработка вирусов-19.Изучаем технику APC Injection
Уроки Разработка малвари-18.Определение PID нужного процесса, или перечисления процессов
Уроки Разработка вирусов-17.Изучаем технику Thread Hijacking
Уроки Разработка вирусов-16.Разборка с цифровой подписью зверька
Уроки Разработка вирусов-15. Прячем Payload в реестре
Верх Низ