PT Sandbox

Песочница для экспертной защиты от сложного вредоносного ПО и угроз нулевого дня

T1574.013: KernelCallbackTable

Злоумышленники могут изменить таблицу KernelCallbackTable процесса, чтобы перехватить поток его исполнения и запустить свою полезную нагрузку. Таблица KernelCallbackTable располагается в блоке операционного окружения процесса (PEB) и инициализируется массивом графических функций, доступных процессу графического интерфейса после загрузки user32.dll.

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

Указатель на адрес KernelCallbackTable в памяти можно получить, определив местоположение PEB (например, с помощью вызова функции NtQueryInformationProcess() нативного API). После получения указателя можно дублировать KernelCallbackTable и задать для функции в таблице (например, fnCOPYDATA) адрес полезной нагрузки (например, через вызов WriteProcessMemory()). Затем PEB обновляется и получает новый адрес таблицы. При вызове подмененной функции будет активирована полезная нагрузка.

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

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

Описание методов обнаружения техники пока недоступно

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

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

Monitoring Windows API calls indicative of the various types of code injection may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances. for known bad sequence of calls, since benign use of API functions may be common and difficult to distinguish from malicious behavior. Windows API calls such as WriteProcessMemory() and NtQueryInformationProcess() with the parameter set to ProcessBasicInformation may be used for this technique.

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

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

Some endpoint security solutions can be configured to block some types of behaviors related to process injection/memory tampering based on common sequences of indicators (ex: execution of specific API functions).