T1574.013: KernelCallbackTable
Злоумышленники могут изменить таблицу KernelCallbackTable
процесса, чтобы перехватить поток его исполнения и запустить свою полезную нагрузку. Таблица KernelCallbackTable
располагается в блоке операционного окружения процесса (PEB) и инициализируется массивом графических функций, доступных процессу графического интерфейса после загрузки user32.dll
.
Злоумышленник может перехватить поток исполнения процесса, заменив функцию обратного вызова в таблице KernelCallbackTable
полезной нагрузкой. Для изменения функции обратного вызова могут применяться разные методы, включая элементы техник Отраженная загрузка кода и Внедрение кода в процессы.
Указатель на адрес KernelCallbackTable
в памяти можно получить, определив местоположение PEB (например, с помощью вызова функции NtQueryInformationProcess()
нативного API). После получения указателя можно дублировать KernelCallbackTable
и задать для функции в таблице (например, fnCOPYDATA
) адрес полезной нагрузки (например, через вызов WriteProcessMemory()
). Затем PEB обновляется и получает новый адрес таблицы. При вызове подмененной функции будет активирована полезная нагрузка.
Подмененная функция обычно вызывается с помощью сообщения Windows. После перехвата процесса и выполнения вредоносного кода злоумышленники могут восстановить KernelCallbackTable
в исходное состояние с помощью дальнейшего кода в полезной нагрузке. Перехват потока исполнения с помощью KernelCallbackTable
дает возможность избежать обнаружения защитными решениями, поскольку выполнение замаскировано под легитимный процесс.
Какие продукты Positive Technologies покрывают технику
Описание методов обнаружения техники пока недоступно
Способы обнаружения
ID | DS0009 | Источник и компонент данных | Процесс: Вызовы API ОС | Описание | Отслеживание вызовов Windows API, связанных с разными типами внедрения кода, сопряжено с генерацией больших объемов данных. Для эффективной защиты нужно осуществлять сбор данных только при определенных условиях, чтобы выявлять известные вредоносные последовательности вызовов. В противном случае будет трудно выделить вредоносные вызовы API среди множества легитимных. Например, для реализации этой техники могут использоваться такие функции API Windows, как |
---|
Меры противодействия
ID | M1040 | Название | Предотвращение некорректного поведения | Описание | В некоторых решениях для обеспечения безопасности конечных точек можно настроить блокирование определенных действий, связанных с внедрением кода в процессы и подменой данных в памяти, на основе распространенных последовательностей индикаторов (таких как выполнение определенных функций API). |
---|