Мы неоднократно хвалили Microsoft в тех постах своего корпоративного блога, которые были посвящены новым функциям безопасности Windows 10 & 8.1. Windows 10 постоянно обзаводится новыми функциями безопасности для противодействия эксплуатации как RCE, так и LPE уязвимостей. Эти функции доступны приложениям через API kernel32!SetProcessMitigationPolicy. В нашем прошлом посте мы рассказывали о модернизированной функции Kernel ASLR, которая стала распространяться не только на загружаемые образы режима ядра, но также на такие критические структуры данных как список рабочего набора (WSL), каталог и таблицы страниц, база данных PFN, гиперпространство и т. д. Данную функцию получили все пользователи большого юбилейного обновления для Windows 10. Мы также более детально останавливались на подсистеме Linux в Windows 10. На сей раз речь пойдет о возможной реализации защитной меры Control Flow Guard (CFG) в режиме ядра.

Известный гуру внутреннего устройства Windows 10 Alex Ionescu обмолвился в своем твиттере, что новая сборка Windows 10 Insider Preview содержит в своем составе ядро с внутренней функцией ntoskrnl!MiInitializeKernelCfg. Название функции указывает на возможную реализацию CFG в режиме ядра. Правда, пока, никаких других подтверждений этой гипотезы не представлено.

Защитной мерой CFG снабжены многие системные исполняемые файлы на Windows 8.1 & 10. Например, такие системные процессы как Svchost, Services, Winlogon, Explorer снабжены поддержкой CFG. Сама CFG требует поддержки как со стороны загрузчика исполняемых образов Windows, так и со стороны исполняемого файла. У последнего для данных CFG отводится отдельная директория в PE-заголовке.


Рис. Диспетчер сервисов на Windows 8.1+ имеет встроенную поддержку CFG.

Если речь идет действительно о реализации CFG в режиме ядра, в новых сборках Windows могут появиться системные драйверы с поддержкой CFG. Новая функция безопасности поможет Windows справиться с LPE-эксплойтами, которые могут использовать различные методы эксплуатации для перехвата управления кода у работающего драйвера.
Поделиться с друзьями
-->

Комментарии (2)


  1. izzholtik
    19.09.2016 15:33
    +2

    А в чём суть этой технологии?


    1. dartraiden
      19.09.2016 16:13
      +2

      Работа данного механизма заключается в валидации неявных вызовов (indirect calls), предотвращающей перехват потока исполнения злоумышленником (например, посредством перезаписи таблицы виртуальных функций).

      https://habrahabr.ru/company/dsec/blog/305960/