T1055.012: Внедрение в пустой процесс
Злоумышленники могут внедрить вредоносный код в приостановленные и пустые процессы с целью обхода защиты, действующей на уровне процессов. Внедрение в пустой процесс — это способ выполнения произвольного кода в адресном пространстве отдельного активного процесса.
Внедрение в пустой процесс обычно осуществляется посредством создания процесса в приостановленном состоянии с последующим скрытием занимаемой им памяти, куда затем помещается вредоносный код. Целевой процесс может быть создан посредством вызовов функций нативного API Windows, таких как CreateProcess
, с указанием флага приостановки основного потока процесса. Затем отображение процесса в памяти может быть скрыто с помощью таких вызовов API, как ZwUnmapViewOfSection
или NtUnmapViewOfSection
; далее в него записывается внедряемый код, поток управления перенаправляется на этот код, после чего запускается выполнение процесса (вызовы VirtualAllocEx
+ WriteProcessMemory
, SetThreadContext
и ResumeThread
соответственно).
Этот метод очень похож на использование локальной памяти потока, но он создает новый процесс, а не использует уже существующий. Подобное поведение, скорее всего, не приведет к повышению привилегий, поскольку процесс, в который осуществлялось внедрение, был порожден внедряющим процессом (и, как следствие, наследует его контекст безопасности). Тем не менее выполнение посредством внедрения в пустой процесс также дает возможность избежать обнаружения защитными решениями, поскольку маскируется под легитимный процесс.
Какие продукты Positive Technologies покрывают технику
Экспертиза MaxPatrol SIEM
mitre_attck_defense_evasion: PT-CR-2222: Proccess_Tampering: Процесс создал поток в адресном пространстве процесса. Злоумышленники внедряют код в процессы, чтобы обойти основанную на процессах защиту или повысить привилегии mitre_attck_defense_evasion: PT-CR-781: TikiTorch_Process_Injection: Обнаружено внедрение в процесс с помощью утилиты TikiTorch
Способы обнаружения
ID | DS0009 | Источник и компонент данных | Процесс: Создание процесса | Описание | Отслеживайте запуск новых процессов, которые могут внедрить вредоносный код в приостановленные и пустые процессы с целью обхода защиты, действующей на уровне процессов. Злоумышленники могут запускать легитимные процессы, а затем использовать их память для выполнения вредоносного кода. Данная аналитика отслеживает стандартные процессы Windows, которые использовались злоумышленниками с применением этой техники; в таких случаях их часто порождают нетипичные родительские процессы. Список не является исчерпывающим, и злоумышленники могут не допустить таких нестыковок. Эти сигнатуры работают только в том случае, если Sysmon сообщает о родительском процессе; это не всегда возможно, поскольку родительский процесс может завершиться еще до того, как Sysmon обработает событие. Аналитика 1. Запуск процессов нестандартными родительскими процессами
|
---|
ID | DS0009 | Источник и компонент данных | Процесс: Изменения в процессе | Описание | Отслеживайте изменения в процессах, которые могут использоваться для внедрения вредоносного кода в приостановленные и пустые процессы с целью обхода защиты, действующей на уровне процессов. |
---|
ID | DS0009 | Источник и компонент данных | Процесс: Вызовы API ОС | Описание | Отслеживание вызовов Windows API, связанных с разными типами внедрения кода, сопряжено с генерацией больших объемов данных. Для эффективной защиты нужно осуществлять сбор данных только при определенных условиях, чтобы выявлять известные вредоносные последовательности вызовов. В противном случае будет трудно выделить вредоносные вызовы API среди множества легитимных. Для этой техники могут использоваться такие вызовы API Windows, как |
---|
ID | DS0009 | Источник и компонент данных | Процесс: Обращение к процессу | Описание | Отслеживайте просматриваемые процессы, которые могут внедрять вредоносный код в приостановленные и пустые процессы с целью обхода защиты, действующей на уровне процессов. |
---|
Меры противодействия
ID | M1040 | Название | Предотвращение некорректного поведения | Описание | В некоторых решениях для обеспечения безопасности конечных точек можно настроить блокирование определенных типов внедрения кода в процессы на основе детектирования распространенных последовательностей действий, характерных для процесса внедрения. |
---|