На самом деле общесистемный масштаб имеют лишь некоторые функции EMET, а гораздо больших спектр фич применим к процессам конкретных приложений.
Для приложения можно включить следующие функции:
DEP — реализуется за счет вызова kernel32!SetProcessDEPPolicy в контексте контролируемого процесса
BottomUpASLR — в некотором роде представляет собой ASLR для выделяемых регионов памяти на стеке и в куче (по мере выделения памяти и в старших адресах)
NullPage — защита от эксплуатации MS13-031
MandatoryASLR — принудительно включает ASLR для динамически загружаемых библиотек процесса. Реализуется за счет перехвата функции ntdll!NtMapViewOfSection
HeapSpray — позволяет фиксировать попытки операций выделения большого количества участков памяти с размещением там кода эксплойта
LoadLib — отслеживание операций LoadLibrary с целью предотвращения загрузки библиотеки в память по пути UNC
MemProt — запрет изменения статуса страниц стека на executable
Caller — контроль за тем, чтобы функция была вызвана с помощью call, а не ret, что широко применяется в эксплойтах
SimExecFlow — позволяет обнаруживать ROP-гаджеты после вызова контролируемой EMET функции
StackPivot — позволяет обнаруживать ситуации перемещения регистра стека ESP на нужный для эксплойта адрес
SEHOP — отслеживает попытки эксплуатирования обработчиков SEH
EAF (Export Address Table Access Filtering) — запрещает какие-либо операции обращения к странице памяти, на которой расположена таблица экспорта модуля, кроме доступа легитимного кода
Все эти функции можно настроить в окне Mitigations графического интерфейса. Кроме того, в окне Application Configuration есть еще три дополнительных функции:
Deep Hooks — для защиты критических API EMET будет перехватывать не только сами функции, но и те функции (другие API), которые из них будут вызываться
Anti Detours — блокирует действия эксплойтов, которые пропускают первые байты API (обычно пролог) и передают управление на инструкции, следующие за ними
Banned Functions — запрещает вызов API-функций из специального списка
Каждое отдельно взятое приложение может быть несовместимо с некоторыми защитами EMET, поэтому перед его включением требуется тестирование (или гуглинг данных от тех, кто уже протестировал). Однако в административных шаблонах EMET поставляются уже готовые проверенные политики для ряда приложений.
Включаются они следующими групповыми политиками:
– Computer ConfigurationPoliciesAdministrative TemplatesWindows ComponentsEMETDefault Protections for Internet Explorer
– Computer ConfigurationPoliciesAdministrative TemplatesWindows ComponentsEMETDefault Protections for Recommended Software (включает Adobe Reader, Adobe Acrobat, Java, Microsoft Office, блокнот)
– Computer ConfigurationPoliciesAdministrative TemplatesWindows ComponentsEMETDefault Protections for Popular Software (включает Media Pleer, Skype, Lync, Windows Live, Google Talk, Chrome, Firefox, Thunderbird, Adobe Photoshop, Winamp, Opera, WinRAR, WinZip, VLC, 7-Zip, Safari, iTunes и еще немного)
Источник : https://t.me/informhardening