Новый EMET 3.0 – поддержка Windows 8 / Windows Server 2012 и не только

EMET 3.0 - дальнейшее улучшение и новые MandatoryASLR с BottomUpASLR

Привет.

В мае 2012 Microsoft наконец-то сделал новую версию своего hardening tool, являщегося абсолютно необходимым для установки на всех серверных (да и домашних) ОС семейства Microsoft. Нововведений относительно немного, но они стоят рассмотрения.

Что внутри

Первым делом – ознакомьтесь с моей статьёй про EMET 2.1. Весь функционал – DEP, SEHOP, ASLR, NullPage, HeapSpray, EAF, MandatoryASLR, BottomUpASLR – остался тем же, основные добавления в версии 3.0 – улучшения управляемости, совместимости и удобства работы.

Оглавление

  • Переименование – много разных ASLR; ASLR, MandatoryASLR и BottomUpASLR
  • Официальная поддержка
  • Централизованное развёртывание
  • Упрощение конфигурации EMET: профили
  • Обновление с предыдущих версий
  • EMET Notifier
  • Расширенный синтаксис EMET_conf

Переименование – много разных ASLR

Наверняка Вы уже заметили по перечню, что есть ASLR, MandatoryASLR и BottomUpASLR.

Давайте упорядочим оные, опираясь на принятую в EMET терминологию.

ASLR

Когда этот термин идёт без дополнительных, то он обозначает режим работы данной технологии для всего, кроме компонентов ОС – компонентов и сервисов, например. Для них она вообще всегда включена, тут через EMET Вы ничего не сделаете.

Выбирая ASLR в режиме Disabled, Вы укажете системе, что надо включать ASLR только для компонентов ОС – для тех программ, которые разработаны с учётом этой технологии и поддерживают её, ASLR включаться не будет. Т.е. даже если программа запросит ASLR – её просьбу проигнорируют.

Вариант Opt In является стандартным – тогда, помимо компонентов ОС, ASLR будет применяться и к тем модулям, которые покажут поддержку данной технологии (например, скомпилированные Visual Studio 2010 с ключом /DYNAMICBASE), плюс явно выбранным в EMET модулям.

Вариант Always On для ASLR стандартно не доступен, но его можно включить так же, как в предыдущей версии – зайти в ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EMET и выставить параметр EnableUnsafeSettings в единицу. В этом случае ASLR будет включён для всех исполняемых модулей вообще, что достаточно опасно на практике – я, например, сталкивался с ситуацией, что обновление драйверов устройства приносило с собой BSoD, так как новая версия некорректно поддерживала ASLR. Тут каждый решит для себя – если речь про виртуальную машину на базе Hyper-V, то я бы рекомендовал включать режим Always On, так как там ситуация с драйверами оборудования получше, и напороться на бета-драйвера, в которых ещё недоделана поддержка ASLR, практически невозможно, а вот полезный эффект от 100% ASLR всё ж явный.

MandatoryASLR

Данный термин обозначает следующее – даже если приложение никак не запрашивает ASLR, то, добавив его в список защищаемых EMET’ом приложений, Вы можете выбрать данный пункт и операционная система будет “форсированно” перемешивать при выделении блоки памяти, нужные для работы приложения. Это может привести к тому, что приложение завершится аварийно, поэтому надо рассматривать каждый конкретный случай отдельно, общего совета здесь нет.

BottomUpASLR

Так официально называют BUR, появившийся в EMET 2.1, информация про него есть в предыдущей версии статьи про EMET 2.1.

Официальная поддержка

Все предыдущие версии EMET официально не поддерживались фирмой Microsoft. Примерно как, допустим, утилиты из Resource Kit’ов для Windows Server 2003 / 2000 – они вроде как есть, но если Вы ими что-то натворите, то все последствия являются Вашими личными проблемами. Теперь EMET 3.0 является поддерживаемым решением, поэтому наличие его на серверах можно считать обязательным.

Поддержка Windows 8 / Windows Server 2012

Новый EMET работает на новых ОС от Microsoft. Функционально в плане механизмов защиты ничего нового там не добавляется, но в отличии от EMET 2.1 он корректно управляет уже имеющимися возможностями.

Централизованное развёртывание

Теперь EMET можно разворачивать через групповые политики и SCCM. Это делает очень удобным включение его в обязательный комплект ПО для серверов. Для работы с групповыми политиками в каталоге, куда установился EMET, есть подкаталог Deployment\Group Policy Files, там есть файл EMET.admx и языковый модуль к нему EMET.adml. Скопируйте admx-файл в %WINDIR%\PolicyDefinitions, а adml – в %WINDIR%\PolicyDefinitions\en-us, и при открытии оснастки по управлению групповой политикой в разделе Computer Configuration\Administrative Templates\Windows Components увидите новый раздел с предсказуемым названием EMET.

Упрощение конфигурации EMET: профили

Теперь настраивать EMET ещё проще, т.к. создан механизм хранения настроек в xml-файлах профилей, лежащих в подкаталоге Deployment\Protection Profiles. Формат файла достаточно прост, можно открыть любой из них (например, All.xml) Блокнотом и убедиться, что особо расписывать там нечего, да и внутри документирован он более чем достойно. Из интересного стоит отметить нововведение в синтаксисе – теперь можно указывать не полный URL защищаемого приложения (вида C:\Windows\System32\arp.exe), а использовать wildcard – вида *\arp.exe, чтобы указать, что где бы не находился указанный файл, в момент запуска к нему надо применить все указанные настройки.

Обновление с предыдущих версий

EMET 3.0 ставится на EMET 2.1 без вопросов, все настройки сохраняются. С EMET 2.0 та же ситуация, багов не заметно. Также проверено, устанавливающийся через group policy EMET нормально заменяет собой ранее установленный вручную, и не имеет каких-либо проблем.

EMET Notifier

Теперь при логине пользователя запускается полезное приложение – EMET Notifier (можно запустить и вручную, файл называется EMET_notifier.exe и располагается в том же каталоге, куда установился EMET 3.0). Оно будет в режиме реального времени информировать о ситуациях нарушения одной из защитных мер, известных EMET, и уведомлять что такое-то приложение было остановлено по такой-то причине. Крайне полезная штука, так как раньше чтобы понять почему именно такое-то приложение было остановлено, необходимо было предпринять много различных неочевидных действий. Т.е. теперь вариант “добавил приложение в EMET -> запустил, попробовал выполнять различные действия -> упало, надо выяснить, почему именно” стал крайне несложным.

Расширенный синтаксис EMET_conf

Файл EMET_conf.exe был и раньше, но теперь у него больше интересного. Например, при помощи его можно форсированно переприменить настройки EMET. Для этого есть секретный ключ –refresh – он не указан в выводе команды EMET_conf /?, но если выполнить EMET_conf –refresh, то EMET форсированно применит настройки, которые в данный момент указаны для данной системы. Это удобно, потому что иногда возникает ситуация – через групповые политики настройки изменены, изменение уже “разошлось” по сети, а на целевой системе EMET уже запущен и выполняет те правила, которые ему указаны при загрузке. Применение этого ключа позволит, не перезагружая систему, применить новые настройки.

Откуда загружать?

http://www.microsoft.com/en-us/download/details.aspx?id=29851

Выводы

Хороший инструмент для предотвращения работы эксплойтов и злонамеренного ПО стал ещё лучше, проще в применении и теперь с гарантией является “must have” для любой ОС, включая самые новые Windows 8 и Windows Server 2012. Если ещё не установили его – устанавливайте смело.

Возможно, вам будет также интересно почитать другие статьи про EMET на нашей Knowledge Base

Ruslan V. Karmanov

Зайдите на сайт под своей учётной записью, чтобы видеть комментарии под техническими статьями. Если учётной записи ещё нет - зарегистрируйтесь, это бесплатно.