Kernel Pool Forensics: обнаружение DKOM и скрытых модулей в ядре Windows — 28 сентября 2026 г. в 08:12:00.000
Kernel Pool Forensics: обнаружение DKOM и скрытых модулей в ядре Windows Техника DKOM (Direct Kernel Object Manipulation, T1014) позволяет руткитам скрывать присутствие в Ring 0 путем исключения элементов из двусвязных списков ядра без вызова документированных API деинициализации. При скрытии драйвера вредоносный код удаляет запись LDR_DATA_TABLE_ENTRY из циклического списка PsLoadedModuleList (nt!PsLoadedModuleList), модифицируя указатели Flink и Blink. Аналогично скрытие потоков или процессов обходит ActiveProcessLinks в структуре EPROCESS. Поскольку стандартные системные утилиты и EDR-сенсоры верхнего уровня полагаются на обход активных структур списка, модуль исчезает из выдачи EnumDeviceDrivers и NtQuerySystemInformation. // Модификация указателей в LDR_DATA_TABLE_ENTRY (DKOM) Entry->InLoadOrderLinks.Blink->Flink = Entry->InLoadOrderLinks.Flink; Entry->InLoadOrderLinks.Flink->Blink = Entry->InLoadOrderLinks.Blink; Для выявления таких аномалий в дампах памяти применяется сканирование пулов памяти (NonPagedPool / PagedPool) по пуловым тегам (Pool Tags) и сигнатурам структур без привязки к активным спискам. В старых версиях Windows валидация опиралась на 4-байтные теги заголовков _POOL_HEADER. Начиная с Windows 10 (версии 1903+) и в Windows 11 за счет Segment Heap и Pool Quota структура _POOL_HEADER для пулов больших страниц упразднена, что требует поиска по паттернам самих объектов — в частности, сигнатурам структур _DRIVER_OBJECT (тип объекта IoDriverObjectType) и таблицам MajorFunction. Для Blue Team сверяйте результаты сканирования объектов в Volatility/Rekall (плагины windows.driverscan, windows.modscan) со списком windows.modules. Несовпадение адреса базы драйвера в пуле со связным списком PsLoadedModuleList однозначно указывает на раслинковку. Дополнительные векторы верификации: анализ целостности цепочек DriverObject->DriverInit, перехваты в MajorFunction[], проверка IRP-хуков и сопоставление страниц памяти исполняемого пула с диапазонами легитимно загруженных PE-образов (VAD/ System PTEs). @poxek | @poxek_ai | MAX