Если ты был на CC’10, то наверняка
посетил и проникся семинаром Алексея Синцова – «Обход
защитных механизмов в ОС Windows». В зависимости от
того, за какой баррикадой находишься ты, тебе могло
стать либо радостно, либо страшно :). Доклад классный,
его можно найти на
party10.cc.org.ru.
Подведем итог: микрософтовцы, в
общем, молодцы – внедрили в Win7 множество разных
механизмов. И в определенных ситуациях можно даже
создать «непробиваемую» систему. Вот только основная
проблема в том, что для использования этих механизмов и
само ПО, и все его модули должны быть собраны с их
поддержкой.
А сторонние производители (даже гранды, например,
Adobe, Mozillа) с этим грешат. В прошлом номере я писал
о том, в каком широко распространенном ПО отсутствует
поддержка DEP, ASLR и т.д.
Что еще хуже – конечному пользователю на это особо не
повлиять. Типа, исходников нет – перекомпилить не
можешь. Но так было до недавнего времени. Возрадуемся!
MS выпустила неофициальную тулзу, а точнее, ее вторую
версию, которая поможет нам подключать необходимые
механизмы (и даже больше) для процессов, вне зависимости
от сборки программы. Имя ей – EMET 2.0,
Enhanced
Mitigation Experience Toolkit.
С помощью нее можно как настроить общие политики и
включить DEP, SEHOP, ASLR для всей системы, так и
выполнить настройки для конкретного приложения. Если
точнее, то она позволяет включить для ПО и его модулей
(вне зависимости от того, с какими опциями они собраны)
следующие возможности: стандартные DEP, ASLR, SEHOP, а
также защиту от heapspay’ев и шеллкодов.
Надо, конечно, понимать, что не все ПО будет
корректно работать. Но в определенных ситуациях это
помогает. Пример есть на сайте MS: 0day-эксплойт для
Acrobat Reader под Win7 с обходом DEP, используя ROP, не
работает, так как не-ASLR-библиотека была
смещена в
памяти EMET’ом.
- Видео по теме там же:
technet.microsoft.com/en-us/security/ff859539.aspx
Программа работает минимум на WinXP c SP3, но
поддержки SEHOP и ASLR тебе это не даст. Так что полную
радость можно получить только на Win7 и Win2008.