четверг, 26 апреля 2012 г.

Privilege escalation protections in Windows 8

Грядущий выход windows 8 принесет несколько новинок в плане безопасности, о двух из которых, относящихся к защите от повышения привилегий и будет сегодняшняя заметка.

Первая из них закрывает целый класс атак(kernel-mode NULL dereference), связанных с повышением привилегий.

Сценарий атаки следующий: 

1) находится уязвимость, позволяющая записать ноль по любому адресу в ядре
2) в юзермоде выделяется память по нулевому адресу (флаг MEM_TOP_DOWN)
3) перезаписывается указатель в HAL_DISPATCH
4) вызывается NtQueryIntervalProfile которая в приводит к вызову ф-ции из HAL_DISPATCH и соответственно к вызову кода в нулевой странице

Таких уязвимостей было открыто довольно много и Microsoft в windows 8 решила закрыть саму возможность реализации атаки, запретив выделять нижние 64кб юзерской памяти.

И второе нововведение - поддержка SMEP.

Supervisor Mode Execution Protection (SMEP) - это технология, призванная предотвратить выполнение кода в ядре из тех страниц, которые помечены как юзерские.

То есть, каждая страничка в системе будет помечена определенным битом, который либо будет давать ей право исполняться в ядре, либо нет.
Реакцией на попытку выполнения странички недопустимой для исполнения в ядре будет fault.

Аппаратная поддержка SMEP появилась в процессорах на базе архитектуры Ivy-Bridge, которые были презентованы буквально на днях.

Не знаю, насколько эти новинки будут эффективными, и как скоро появятся публикации по их обходу, но общая тенденция развития windows в плане безопасности безусловно радует.

2 комментария:

  1. 1) Защита от NULL page allocation на x32 системах скорее всего будет работать не для всех процессов, т.к. нулевая страница нужна для работы, например, NTVDM.

    2) Защита от исполнения ядерного кода из страниц памяти пользовательского режима вообще совершенно бесполезная хрень, т.к. обходится элементарной ROP-цепочкой.

    ОтветитьУдалить
  2. 1) ну не будет она работать для ntvdm, а для 99% аппликух будет, полезность очевидна
    2) не согласен, что бесполезная хрень, а насчет rop соглашусь

    ОтветитьУдалить