T1055: Внедрение кода в процессы

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

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

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

Какие продукты Positive Technologies покрывают технику

Экспертиза MaxPatrol SIEM

mitre_attck_execution: PT-CR-1908: Execute_Over_WER_Service: Злоумышленники могут воспользоваться уязвимостью службы WER, которая позволяет подменить исполняемый файл и запустить файл злоумышленников с системными привилегиями mitre_attck_defense_evasion: PT-CR-1207: DirtyVanity_Process_Injection: Обнаружена попытка обойти EDR с помощью утилиты Dirty Vanity mitre_attck_defense_evasion: PT-CR-780: Process_Herpaderping_Injection: Использование техники Process Herpaderping, применяемой для обхода антивирусных и защитных механизмов путем изменения содержимого файла после его отображения в памяти, но до инициации первого потока mitre_attck_cred_access: PT-CR-767: Failed_LSASS_Injection: Обнаружена перезагрузка системы из-за процесса lsass.exe hacking_tools: PT-CR-349: Cobalt_Strike_Assembly: Возможное использование программного обеспечения Cobalt Strike hacking_tools: PT-CR-751: Cobalt_Strike_Process_Injection: Внедрение в процесс от имени процесса rundll32.exe hacking_tools: PT-CR-1355: Sliver_GetSystem: Удаленное выполнение команды Sliver GetSystem из С2 фреймворка Sliver

Подтехники

Требуется эксперт. Техника обнаруживается только в связке «Продукт PT + эксперт»

Способы обнаружения

IDDS0009Источник и компонент данныхПроцесс: Обращение к процессуОписание

Отслеживайте просматриваемые процессы, которые могут внедрять вредоносный код в процессы посредством обратных вызовов (callback) локальной памяти потока (TLS) с целью обхода защиты, действующей на уровне процессов, а также для повышения уровня привилегий.

IDDS0022Источник и компонент данныхФайл: Метаданные файлаОписание

Отслеживайте контекстные данные файла: имя, содержимое (подпись, заголовки, данные или встроенные объекты), пользователя/владельца, разрешения и т. д.

IDDS0009Источник и компонент данныхПроцесс: Изменения в процессеОписание

Отслеживайте изменения в процессах, которые могут использоваться для внедрения вредоносного кода в процессы посредством обратных вызовов (callback) локальной памяти потока (TLS) с целью обхода защиты, действующей на уровне процессов, а также для повышения уровня привилегий.

IDDS0022Источник и компонент данныхФайл: Изменение файлаОписание

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

IDDS0009Источник и компонент данныхПроцесс: Метаданные процессаОписание

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

IDDS0009Источник и компонент данныхПроцесс: Вызовы API ОСОписание

Отслеживание вызовов Windows API, связанных с разными типами внедрения кода, сопряжено с генерацией больших объемов данных. Для эффективной защиты нужно осуществлять сбор данных только при определенных условиях, чтобы выявлять известные вредоносные последовательности вызовов. В противном случае будет трудно выделить вредоносные вызовы API среди множества легитимных. Для этой техники могут использоваться такие вызовы API Windows, как CreateRemoteThread, SuspendThread/SetThreadContext/ResumeThreadа также вызовы функций, позволяющих изменять содержимое памяти другого процесса, например, VirtualAllocEx/WriteProcessMemory.

IDDS0011Источник и компонент данныхМодуль: Загрузка модуляОписание

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

Меры противодействия

IDM1026НазваниеУправление привилегированными учетными записямиОписание

Используйте Yama (например: /proc/sys/kernel/yama/ptrace_scope) для защиты от внедрения кода в процессы на основе ptrace, ограничивая использование ptrace только привилегированными пользователями. Другие средства защиты включают установку модулей ядра безопасности, обеспечивающих расширенный контроль доступа и ограничения процессов, таких как SELinux, grsecurity и AppArmor.

IDM1040НазваниеПредотвращение некорректного поведенияОписание

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