T1055.013: Process Doppelgänging

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

Транзакционная система NTFS (TxF) впервые появилась в Windows Vista как технология, позволяющая безопасно осуществлять операции с файлами . В целях обеспечения целостности данных TxF позволяет осуществлять запись в файл в любой момент времени только по одному дескриптору. Пока транзакция записи в текущий дескриптор не будет прервана, все остальные дескрипторы изолируются и могут только считывать версию файла, существовавшую на момент открытия записи в этот дескриптор . Во избежание повреждения данных TxF осуществляет автоматический откат, если система или приложение дает сбой во время транзакции записи .

Хотя API TxF упразднен, он все еще поддерживается в Windows 10 .

Злоумышленники могут использовать TxF для реализации бесфайловой версии внедрения кода в процессы. Как и в случае с внедрением в пустой процесс, Doppelgänging заменяет память легитимного процесса, обеспечивая завуалированное выполнение вредоносного кода, способное избежать обнаружения средствами защиты. Использование TxF для реализации техники Doppelgänging также позволяет избежать применения часто отслеживаемых функций API, таких как NtUnmapViewOfSection, VirtualProtectEx и SetThreadContext .

Doppelgänging реализуется в 4 этапа:

  • Транзакция — создание TxF-транзакции с легитимным исполняемым файлом и последующая его перезапись вредоносным кодом. Эти изменения являются изолированными и видны только в контексте транзакции.
  • Загрузка — создание общей области в памяти и загрузка вредоносного исполняемого файла.
  • Откат — отмена изменений в исходном исполняемом файле, в результате которой вредоносный код полностью удаляется из файловой системы.
  • Запуск — создание процесса из зараженной области памяти и инициация выполнения.

Подобное поведение, скорее всего, не приведет к повышению привилегий, поскольку процесс, в который осуществлялось внедрение, был порожден внедряющим процессом (и, как следствие, наследует его контекст безопасности). Тем не менее выполнение посредством Doppelgänging дает возможность избежать обнаружения защитными решениями, поскольку маскируется под легитимный процесс.

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

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

mitre_attck_defense_evasion: PT-CR-2222: Proccess_Tampering: Процесс создал поток в адресном пространстве процесса. Злоумышленники внедряют код в процессы, чтобы обойти основанную на процессах защиту или повысить привилегии

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

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

Отслеживайте и анализируйте вызовы CreateTransaction, CreateFileTransacted, RollbackTransaction и других редко используемых функций, свидетельствующие о файловых транзакциях (TxF). Техника Doppelgänging полагается на устаревшие и недокументированные методы загрузки процессов Windows через вызовы NtCreateProcessEx и NtCreateThreadEx, а также на вызовы API, позволяющие изменять содержимое памяти в другом процессе, например WriteProcessMemory .

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

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

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

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

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