PatchGuard

Опубликовано в PatchGuard

Как следует из названия, PatchGuard создан, чтобы обеспечить защиту от несанкционированной модификации ядра Vista вредоносным кодом.

По определению Microsoft, PatchGuard представляет собой не что иное, как «метод предотвращения расширения драйверов режима ядра или замены других служб ядра, а также редактирования какой-либо части ядра сторонними программами».

PatchGuard

Чтобы понять суть данной технологии защиты, будет полезным разобраться в том, что же такое kernel patching (изменение ядра). Под kernel patching, как это следует из названия, понимается некая техника модификации/замены критических областей данных ядра Windows на другой код или данные, которые могут быть потенциально вредоносными.



PatchGuard

Модификация эта, в свою очередь, возможна посредством использования внутренних системных вызовов или другим способом.

Вообще, модификация и обновление ядра, по сути, не являются чем-то экзотическим и априорно запрещенным для системы, ведь многие производители ПО достаточно часто модифицируют его для своих целей, например, изменяя адрес функции-обработчика системного вызова (указатель функции) в таблице системных вызовов (system service table, SST).

Вдаваясь в технические подробности работы PatchGuard, следует сказать, что благодаря данной технологии в системе запрещена модификация таких компонентов ядра, как:



  • таблицы системных вызовов (system service tables, SST);
  • таблицы глобальных дескрипторов (global descriptor table (GDT));
  • таблицы прерываний (interrupt descriptor table (IDT)).

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

Однако, как оно всегда и бывает, нет ничего невозможного: защита ядра все-таки отключается. Подобное вполне возможно, если в системе работает отладчик ядра. Решение, как мне кажется, не заставит себя долго ждать.