Aslr windows 10 что это

Обновлено: 08.07.2024

С выхода Windows 2000 прошло больше двадцати лет, и все десять лет, что официально Microsoft поддерживала ее расширенную версию, разработчики только тем и занимались, что выпускали очередные заплатки. Если вы до сих пор где-то ее используете, все обновления можно просмотреть через systeminfo в командной строке. Пройти мимо очередного сервис-пака было опасно – никто знал, во что могут вылиться незакрытые гештальты проблемы с безопасностью.

Чтобы хоть немного подняться в глазах простых сисадминов, Microsoft выводит на рынок новую ОС, которая… оказывается практически полным клоном Win2000 и, конечно, повторяет ее судьбу. И вместо того, чтобы чистосердечно раскаяться, разработчики в очередной раз переводят стрелки на грозных хакеров. Хотя на самом деле хакеры не мешали, а наоборот, помогали создавать что-то более стабильное и безопасное.

Тем временем в Microsoft продолжили искать обходные механизмы. Одним из них должен быть стать DEP (Data Execution Prevention). Он появился в XP, но так и не оправдал надежд. Следующая попытка была сделана уже в Win7, где реализовали функцию ASLR (Address Space Layout Randomization). На нее возлагали много надежд, но скоро стало понятно: ASLR так же уязвима, как и предыдущие решения.

Несмотря на явные огрехи в реализации DEP и ASLR, я предлагаю рассмотреть их поближе, чтобы узнать плюсы с минусами и, конечно, способы программного обхода. Начну с теории – так будет понятно, в чем заключается их основная идея.

Защиту от исполнения данных можно реализовать двумя способами: программным и аппаратным. Первый, он же software-enforced, подходит только для 32-битных версий Windows, у второго (hardware-enforced) область применения чуть шире: все та же 32-битная ось, но уже 64-битные чипы. Подобное разделение легко объяснить: DEP прямо соотносится с 63-м битом в записях виртуальных страниц PTE (Page Table Entry), которого нет в 32-битных ОС. Поэтому для последних доступен только один вариант – с эмуляцией и подключением ядра Ntkrnlpa.exe.

Допустим, основное (Ntoskrnl.exe) и альтернативное ядра находятся в папке \windows\system32. Если в boot.ini установить флаг /РАЕ (Physical Address Extension), то ось будет грузиться с альтернативного ядра, пока основное будет простаивать. РАЕ помогает сделать так, чтобы у обычного процессора на 32 бита было в распоряжении не 4 Гб адресного пространства, а 64 Гб.

Так выглядит трансляция адреса на разных ядрах 32-битной ОС​

На левом скрине у нас PDT (каталог виртуальных страниц), на который указывает регистр управления CR3 текущего процесса. В каталоге находятся ровно 1024 (или 10 бит) записей Entry, каждая – по 32 бита. На каждую запись приходится одна из 1024 таблиц PT, в которой, в свою очередь, тоже 1024 записи PTE. И, наконец, PTE указывают на одну из 1024 страниц виртуальной памяти по 4 Кб. Итого суммарно мы получаем 4 ГБ памяти (результат умножения 1024 на 1024 на 4096).

На правом скрине видно, что в ядре РАЕ с 32 до 52 бит выросла разрядность записей Entry, но их количество сократилось вдвое: было 1024, стало 512, то есть теперь у нас девять бит вместо десяти. Благодаря тому, что в записях теперь есть дополнительные разряды, можно создавать в два раза больше таблиц PT и каталогов PDT. У любой страницы по-прежнему 4 Кб, но количество страниц просто гигантское. Также возможны иные режимы, когда вместо 4-килобайтных страниц мы получаем 2- и даже 4-мегабайтные.

32-битные записи PTE заполнены информацией по максимуму, и свободных битов в них нет. Но если разрядность повысить до 64 бит (а мы помним, что полезных там только 52 бита), появляется 12 свободных бит. Их можно закодировать под что-то полезное.

Что мы здесь видим: в РАЕ-режиме длина записи увеличилась вдвое. Это позволило нам поместить в старший (63-й) бит защиту от исполнения NX. Если записать туда единицу, то мы защитим от исполнения страницу, у которой базовый адрес хранится в записи PTE таблицы РТ (и это та самая запись, значение бита которой мы меняем). Максимум, что будет доступно для этой страницы – запись или перезапись (write/rewrite). В ntoskrnl.exe ядро non-PAE таким битом не располагает, поэтому и DEP для него не доступен, как и для всего 32-битного семейства Windows XP без РАЕ.

На 64-битных осях все иначе. Так как им не нужно ядро РАЕ, то оно не входит в состав операционной системы, а сама она функционирует в режиме AWE (Address Windowing Extensions). На схеме ниже показано, как в этом случае происходит трансляция виртуального адреса.

Механизм трансляции адреса в 64-битном режиме

Ядро выставляет DEP-защиту в момент запуска программы. Сама операционная система конфигурирует DEP (всего доступно четыре варианта), и это напрямую определяет, можно или нет обойти защиту программным способом.

Первая конфигурация: AlwaysOff = 0

Аппаратный DEP деактивирован для всех элементов ОС, а сама она работает на базовом ядре Ntoskrnl.exe без РАЕ.

Вторая конфигурация: AlwaysOn = 1

Аппаратный DEP активирован для всех. Даже если вы хотите, чтобы он не работал для отдельных программ, ничего не получится – отключать его точечно нельзя. Другими словами, абсолютно все процессы запускаются с включенным DEP.

Третья конфигурация: OptInt = 2

DEP на аппаратном уровне распространяется только на компоненты ОС. Эта модель по умолчанию используется на клиентских версиях Windows. Если нужно отключить DEP для отдельных приложений/процессов, это можно сделать программным способом.

Четвертая конфигурация: OptOut = 3

Стандартный режим для серверных версий Windows. DEP активирован для всех процессов, в том числе запущенных пользователем системы, и его можно отключить для избранных программ.

Не рекомендую относиться к DEP как к надежному средству защиты. Судя по конфигурациям, им легко управлять на программном уровне. А если вспомнить про VirtualProtect(Ex), с которой можно «поиграть» атрибутами страниц виртуальной памяти, механизм защиты выглядит еще более хрупким. Единственное, что достойно внимания, – это вторая конфигурация. С ней попытки сломить защиту закончатся фейлом. Минус в том, что работает это только на серверных системах, а на клиентских даже при такой конфигурации DEP может легко отключить вполне безобидное приложение вроде архиватора (легального, между прочим!).

Эти функции собраны в библиотеке kernel32.dll, и их можно использовать с правами администратора.

1. GetSystemDEPPolicy() – вызывает параметры системной политики DEP. У этой функции нет дополнительных аргументов, и все, на что она способна, – это вернуть порядковый номер выбранной DEP конфигурации. Сама конфигурация выбирается на этапе загрузки операционной системы, а для ее изменения придется обратиться к boot.ini. Чтобы активировать DEP на глобальном уровне, нужен бит (11) MSR-регистра 0xC0000080, который называется IA32_EFER.NXE.

2. GetProcessDEPPolicy() – делает запрос параметра DEP для выбранного процесса. Если операция успешная, функция возвращает TRUE, в противном случае – FALSE=0.

3. SetProcessDEPPolicy() – задает параметры DEP для выбранного процесса. Доступен всего один аргумент – флаг предыдущей функции Get(). Результат работы функции зависит от общесистемной политики DEP (два варианта: OptInt или OptOut). Работать с DEP можно только тогда, когда GetProcessDEPPolicy() периодически возвращает FALSE.

Ниже привожу код утилиты, которая будет вызывать перечисленные функции. Для вывода строк рекомендую использовать «таблицы переходов», чтобы избежать ненужных проверок в цикле CASE.

Мы уже неоднократно упоминали ASLR, по справедливому замечанию MS, эта технология позволяет сделать разработку эксплойтов гораздо более дорогостоящим мероприятием, поскольку кроме эксплуатации самой уязвимости в ПО злоумышленнику нужно опереться на те или иные предсказуемые адреса в памяти в момент эксплуатации, которых ASLR его лишает. Как мы видим, в последнее время, в том числе, и с выпуском новейших Windows 8/8.1 MS решили более серьезно подойти к развертыванию данной особенности в системе. Если в узком смысле ASLR понимается как просто перемещение образа по непредсказуемым адресам с каждой перезагрузкой, то в более общем смысле эта возможность на уровне системы должна лишить атакующих любой возможности зацепится за те или иные адреса функций системных библиотек и иных системных объектов (ASLR bypass mitigation / Address Space Information Disclosure Hardening) в тех нескольких десятках байт шелл-кода, который может быть исполнен минуя DEP (ROP).

Microsoft использует по отношению к ASLR схожий c DEP подход, т. е. разрешать его использование по мере необходимости, если приложение скомпилировано с поддержкой. Такая практика применяется в виду очевидных проблем совместимости, которые могут возникнуть при работе программ с технологиями, на которые они могут реагировать неадекватно. Но в случае с ASLR эта ситуация работает с большими ограничениями. Например, на современных выпусках Windows 8/8.1 DEP включен всегда для приложений вне зависимости от того, скомпилированы они с его поддержкой или нет (по крайней мере на 64-битном процессоре и вне зависимости от разрядности ОС и параметра загрузчика). С ASLR ситуация иная, даже работая на Windows 8/8.1 он опирается на правила его поддержки самим приложением и не включает рандомизацию образа, если в заголовке нет этого флага.

Атакующие могут использовать «преимущества» системной библиотеки, которая не скомпилирована с поддержкой ASLR, для своих целей, например, для реализации стабильной цепочки ROP, которая будет работать во всех поддерживаемых ОС. Как показывает практика последних лет, такая возможность использовалась не один раз при организации таргетированных атак. Ниже указаны такие эксплуатируемые in-the-wild уязвимости типа RCE (drive-by download).


Как видно, библиотека MS Office (hxds.dll) не поддерживает ASLR (Office 2007-2010) и атакующие смогли воспользоваться ее не меняющимся адресом загрузки для успешной эксплуатации уязвимости. В рамках декабрьского patch tuesday компания закрыла эту оплошность (которая называется Security Feature Bypass) с помощью MS13-106, обеспечивая пользователей Windows, которые работают с этой версией Office, должным уровнем защиты.


Одной из основных возможностей по поддержке ASLR, которую MS внесла с Windows 8, является функция принудительного ASLR (Force ASLR). Эта функция чем-то напоминает параметр OptIn политики DEP для всей системы. Теперь используя раздел реестра Image File Execution Options (IFEO) HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options и параметр MitigationOptions пользователь может вручную включать ASLR для исполняемых PE файлов. Ниже в таблице приводится поведение ОС при загрузке в память исполняемого файла с ForceASLR и без него.


Подобная функция доступна и для пользователей Windows 7 при установке опционального обновления KB2639308.

Для того чтобы сделать Internet Explorer (10+) более безопасным, компания ввела поддержку функции принудительного применения ASLR (на Windows 8+ и для Windows 7 с установленным KB2639308) для всех библиотек, загружаемых в адресное пространство процесса браузера (ForceASLR). Таким образом, если какая-то из библиотек или плагинов изначально скомпилирована без поддержки этой функции, она будет применена к ней в принудительном порядке.


Атакующие используют преимущества Windows, которая применяет некоторую оптимизацию при работе с виртуальной памятью через последовательное выделение смежных регионов нужного размера для клиентов (процессов) через VirtualAlloc. Приложение может запросить способ выделения блока виртуальной памяти как снизу-вверх (по умолчанию), сверху-вниз (MEM_TOP_DOWN) или по фиксированному адресу (указанный функции адрес). По умолчанию Windows использует метод выделения снизу-вверх, т. е. от младших адресов к старшим она будет искать блок необходимого размера для того, чтобы отдать его приложению.

Начиная с Windows 8 на выделение виртуальной памяти может воздействовать ASLR. Такая политика до Windows 8 уже применялась для выделения блоков памяти на куче, при резервировании блоков для стеков потоков, а также TEB и PEB. Последние две структуры являются очень полезными для атакующих поскольку потенциально содержат определенное количество указателей на различные системные функции, раскрывая таким образом расположение библиотек в памяти. В Windows 8 VirtualAlloc также различает опции выделения сверху-вниз и снизу-вверх, но теперь базовый адрес начала этих выделений фиксируется ASLR при каждой загрузке ОС, т. е. не может быть предсказуем. Очевидно, что в адресном пространстве невозможно выделять память совсем хаотично ввиду быстрой фрагментации, поэтому через ASLR фиксируется именно базовый адрес начала выделения блоков для процессов. Согласно MS для процесса такая опция включается только в случае соответствующей поддержки ASLR его исполняемым файлом (/DYNAMICBASE).

High Entropy ASLR

ASLR потенциально может работать эффективнее в 64-битном адресном пространстве, поскольку там существует гораздо большая возможность по произвольному размещению памяти в таком большом адресном пространстве. Очевидно и само его использование уже является усложняющим фактором для heap spray. См. Internet Explorer EPM для Windows 7 x64. В то же время ОС до Windows 8 не используют ASLR на x64 самым полноценным образом. Главным образом это касается возможности энтропии (т. е. степени произвольности/предсказуемости выбора адреса) и сколько бит адреса будут использоваться для вычисления произвольности этого размещения. В Windows 8 такая возможность получила название High Entropy Randomization.


Windows 8+ содержит возможности, реализующие High Entropy Randomization и эта технология распространяется как на выделяемые процессом блоки виртуальной памяти, так на и загружаемые исполняемые файлы. Для 64-битных приложений, скомпонованных с флагом /LARGEADDRESSAWARE, Windows 8 выделяет для использования 8 TB виртуальной памяти (128 TB в Windows 8.1). Для сравнения, у 32-битных приложений размер пользовательской части адресного пространства ограничивается 2 GB. В таком случае возможность High Entropy Randomization позволяет применять ASLR для базового адреса отсчета выделений памяти типа снизу-вверх, используя 24 бита адреса для получения энтропии и для выделений типа сверху-вниз 17 бит адреса для энтропии. Для использования такого уровня ASLR и при использовании выделений снизу-вверх (по умолчанию) 64-битное приложение должно быть скомпилировано с флагами /HIGHENTROPYVA и /DYNAMICBASE.


Следует отметить, что сам /HIGHENTROPYVA используется как режим ограничения OptIn использования HEASLR в ОС. То есть VirtualAlloc в своем обычном поведении (выделения блоков снизу-вверх) на Windows 8 не будет использовать усиленный ASLR для приложений, которые скомпилированы без этого флага. Такое ограничение связано с вопросами совместимости и возможным непредсказуемым поведением этих приложений в данной ситуации. Как указано выше, возможность High Entropy Randomization применима и к 64-битным исполняемым файлам.

Браузер Internet Explorer 10+ использует режим High Entropy ASLR (x64). Ниже показано свойство его запущенного процесса на Windows 8. Отметим, что все системные исполняемые файлы, которые Microsoft поставляет в Windows 8, используют HEASLR.


ASLR bypass mitigations (aka Address Space Information Disclosure Hardening)

С выпуском Windows 8 компания постаралась пойти по стратегии сокрытия различных адресов системных функций и объектов. Некоторые из этих возможностей доставлялись как обновления и для Windows 7. Присутствие подобной информации по предсказуемым для атакующих адресам сильно снижает возможности существующих технологий DEP&ASLR и повышает возможность успеха атакующих к эксплуатации.

Одним из ярких примеров является обновление MS13-031, которое вводит ограничение на выделение памяти по нулевой странице (Windows 7+). Размещение кода на этой странице с последующей эксплуатацией уязвимости в драйвере используется атакующими как LPE, т. е. поднятие своих привилегий до системных и исполнение своего кода в режиме ядра. Ядро использует поле EPROCESS!LowVaAccessible для регулирования подобных ситуаций, а именно, для обнаружения минимального адреса, с которого можно резервировать регионы виртуальной памяти.

Другим примером является обновление MS13-063 для Windows Vista+ (Windows 8 по умолчанию). Это обновление убирает из UserSharedData (KUSER_SHARED_DATA) указатель на ntdll!LdrHotPatchRoutine, который использовался для быстрой загрузки необходимой атакующим библиотеки в память. UserSharedData очень полезна для атакующих, поскольку доступна по одному и тому же адресу во всех процессах, а также используется в режиме ядра.

В Windows 8.1 появилась возможность скрывать информацию об адресах объектов ядра для недоверенных приложений (чей Integrity Level < Medium). Более подробно об этой фукнции мы писали здесь. Важные функции ntoskrnl возвращают статус ошибки на запрос получения информации об адресах различных объектов ядра.

P. S. Вы можете воспользоваться бесплатным инструментом BinScope от Microsoft для проверки модулей ваших программ на поддержку ASLR (iTunes взят в качестве примера).

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

В защиту эксплойтов включены многие функции из набор средств (EMET).

Каждое смягчение можно включить отдельно, используя любой из этих методов:

Защита от эксплойта настраивается по умолчанию в Windows 10 и Windows 11. Вы можете настроить каждое смягчение, чтобы включить, отключить или значение по умолчанию. Некоторые меры по смягчению последствий имеют больше возможностей. Эти параметры можно экспортировать в качестве XML-файла и развертывать на других устройствах.

Вы также можете настроить смягчение последствий в режим аудита. Режим аудита позволяет проверить, как будут работать меры по смягчению последствий (и обзор событий), не влияя на нормальное использование устройства.

Безопасность Windows приложение

Откройте приложение Безопасность Windows, выбрав значок щита в панели задач или меню безопасности.

Выберите плитку управления & браузера (или значок приложения в левой панели меню), а затем выберите параметры защиты exploit.

Перейдите к настройкам программы и выберите приложение, к которое необходимо применить меры по смягчению последствий.

  • Если приложение, которое нужно настроить, уже перечислены, выберите его и выберите Изменить.
  • Если приложение не включено в список, в верхней части списка выберите программу Добавить для настройки, а затем выберите, как вы хотите добавить приложение.
  • Используйте Add по имени программы, чтобы смягчение было применено к любому запущенного процесса с этим именем. Укажите файл с его расширением. Вы можете ввести полный путь, чтобы ограничить смягчение только приложение с этим именем в этом расположении.
  • Используйте выберите точный путь к файлу, чтобы использовать стандартное окно Windows выбора файлов Explorer для поиска и выбора нужного файла.

После выбора приложения вы увидите список всех смягчающих последствий, которые можно применить. Выбор аудита будет применяться только в режиме аудита. Вы уведомлены о необходимости перезапуска процесса или приложения или о необходимости перезапуска Windows.

Повторите действия 3-4 для всех приложений и смягчения последствий, которые необходимо настроить.

В разделе Параметры системы найдите решение, необходимое для настройки, а затем укажите один из следующих параметров. Приложения, которые не настроены отдельно в разделе Параметры программы, используют параметры, настроенные здесь.

  • По умолчанию: смягчение включено для приложений, которые не имеют этого набора смягчения в разделе параметры программы для определенных приложений.
  • Отключение по умолчанию: смягчение отключено для приложений, у них нет этого набора смягчения в разделе параметры программы для определенных приложений.
  • Использование по умолчанию: смягчение включено или отключено в зависимости от конфигурации по умолчанию, настроенной установкой Windows 10 или Windows 11; значение по умолчанию (включено или отключено) всегда указывается рядом со меткой Use default для каждого смягчения.

Повторите шаг 6 для всех системных смягчений, которые необходимо настроить. Выберите Применить, когда вы закончили настройку конфигурации.

Если вы добавите приложение в раздел Параметры программы и настроите там отдельные параметры смягчения, они будут соблюдаться выше конфигурации для тех же смягчений, указанных в разделе Параметры системы. В следующей матрице и примерах показано, как работают по умолчанию:

Включено в параметрах программы Включено в параметрах System Поведение
Да Нет Как определено в параметрах программы
Да Да Как определено в параметрах программы
Нет Да Как определено в параметрах System
Нет Да По умолчанию, как определено в параметре Использование по умолчанию

Пример 1. Mikael настраивает предотвращение выполнения данных в разделе параметры системы, отключенной по умолчанию

Микаэль добавляет приложение test.exe в раздел Параметры программы. В параметрах для этого приложения в статье Предотвращение выполнения данных (DEP) Mikael включает параметр параметры системы Override и задает переключатель На. В разделе Параметры программы не указаны другие приложения.

В результате deP включен только для test.exe. Все другие приложения не будут применяться к DEP.

Пример 2. Josie настраивает предотвращение выполнения данных в параметрах системы, отключенных по умолчанию

Джози добавляет приложение test.exe в раздел Параметры программы. В параметрах для этого приложения в статье Предотвращение выполнения данных (DEP) Josie включает параметр параметры системы Override и задает переключатель На.

Джози также добавляет приложениеmiles.exe в раздел Параметры программы и настраивает службу управления потоком (CFG) в On. Josie не включает параметры системы Override для DEP или любые другие меры по смягчению последствий для этого приложения.

В результате deP включен для test.exe. DEP не будет включен для любого другого приложения, включая miles.exe. CFG будет включен для miles.exe.

Откройте приложение Безопасность Windows, выбрав значок щита в панели задач или нажав меню пусков для Безопасность Windows.

Выберите плитку управления & браузера (или значок приложения в левой панели меню), а затем выберите защиту exploit.

Перейдите к настройкам программы и выберите приложение, к которое необходимо применить меры по смягчению последствий.

  • Если приложение, которое нужно настроить, уже перечислены, выберите его и выберите Изменить.
  • Если приложение не включено в список, в верхней части списка выберите программу Добавить для настройки, а затем выберите, как вы хотите добавить приложение.
    • Используйте Add по имени программы, чтобы смягчение было применено к любому запущенного процесса с этим именем. Укажите файл с расширением. Вы можете ввести полный путь, чтобы ограничить смягчение только приложение с этим именем в этом расположении.
    • Используйте выберите точный путь к файлу, чтобы использовать стандартное окно Windows выбора файлов Explorer для поиска и выбора нужного файла.

    После выбора приложения вы увидите список всех смягчающих последствий, которые можно применить. Выбор аудита будет применяться только в режиме аудита. Вы будете уведомлены о необходимости перезапустить процесс или приложение или перезапустить Windows.

    Повторите действия 3-4 для всех приложений и смягчения последствий, которые необходимо настроить. Выберите Применить, когда вы закончили настройку конфигурации.

    Intune

    Вопишитесь на портал Azure и откройте Intune.

    Перейдите к профилям > конфигурации устройств > Создайте профиль.

    Назови профиль, выберите Windows 10 и более поздний и конечную точки защиты.

    Создание профиля защиты конечной точки.

    Выберите Настройка Защитник Windows защита от > эксплойтов > guard.

    Upload XML-файл с настройками защиты от эксплойтов:

    Включить защиту сети в Intune.

    Выберите ОК, чтобы сохранить каждое открытое лезвие, а затем выберите Создать.

    Выберите вкладку Назначения профилей, назначьте политику всем пользователям & всем устройствам, а затем выберите Сохранить.

    Используйте поставщик услуг конфигурации ./Vendor/MSFT/Policy/Config/ExploitGuard/ExploitProtectionSettings (CSP), чтобы включить или отключить смягчение последствий защиты от эксплуатации или использовать режим аудита.

    Microsoft Endpoint Manager​​

    В Microsoft Endpoint Manager перейдите к уменьшению поверхности Endpoint Security > Attack.

    Выберите создание > платформы политики, а для профиля выберите защиту от эксплойтов. Затем нажмите кнопку Создать.

    Укажите имя и описание, а затем выберите Далее.

    Выберите выберите XML-файл и просмотрите расположение XML-файла защиты от эксплойтов. Выберите файл, а затем выберите Далее.

    Настройка тегов Области и назначений при необходимости.

    В обзоре + создайте, просмотрите параметры конфигурации, а затем выберите Создать.

    Microsoft Endpoint Configuration Manager

    В Microsoft Endpoint Configuration Manager перейдите в службу Assets and Compliance > Endpoint Protection Защитник Windows > Exploit Guard.

    Выберите > домашнее создание политики защиты от эксплойтов.

    Укажите имя и описание, выберите защиту exploit и выберите Далее.

    Просмотрите расположение XML-файла защиты от эксплойтов и выберите Далее.

    Просмотрите параметры и выберите Далее, чтобы создать политику.

    После создания политики выберите Close.

    Групповая политика

    На устройстве управления групповой политикой откройте консоль управления групповой политикой правойкнопкой мыши объект групповой политики, который необходимо настроить, и нажмите кнопку Изменить.

    В редакторе управления групповой политикой перейдите к конфигурации компьютера и выберите административные шаблоны.

    Расширь дерево до Windows компонентов Защитник Windows > exploit Guard Exploit > Protection Use > a common set of exploit protection settings.

    Выберите включено и введите расположение XML-файла,а затем выберите ОК.

    PowerShell

    Вы можете использовать глагол PowerShell Get или Set с помощью ProcessMitigation команды. Использование будет перечислять текущее состояние конфигурации любых смягчений, которые были включены на устройстве - добавьте Get cmdlet и exe приложения, чтобы увидеть смягчения только для -Name этого приложения:

    Не настроенные на системном уровне меры по смягчению последствий будут показывать состояние NOTSET .

    • Для параметров системного уровня указывается параметр по умолчанию для этого NOTSET смягчения.
    • Для параметров уровня приложения указывается, что параметр системного уровня для смягчения будет NOTSET применен. Параметр по умолчанию для каждого смягчения на уровне системы можно увидеть в Безопасность Windows.

    Используйте Set для настройки каждого смягчения в следующем формате:

    • <Scope>:
      • -Name чтобы указать, какие меры по смягчению последствий должны применяться к определенному приложению. Укажите исполняемое приложение после этого флага.
        • -System чтобы указать, что смягчение должно применяться на уровне системы
        • -Enable чтобы включить смягчение
        • -Disable отключение смягчения
        • Комлет смягчения наряду с любыми подопциями (в окружении пробелов). Каждое смягчение разделено запятой.

        Например, чтобы включить смягчение меры по предотвращению выполнения данных (DEP) с помощью эмуляции thunk ATL и для исполняемого под названием testing.exe в папке C:\Apps\LOB\tests, а также предотвратить создание детских процессов, необходимо использовать следующую команду:

        Разделите каждый вариант смягчения с запятой.

        Если вы хотите применить DEP на уровне системы, вы используете следующую команду:

        Чтобы отключить смягчение последствий, можно -Enable заменить -Disable . Однако для смягчения последствий на уровне приложений это действие заставляет отключить смягчение только для этого приложения.

        Если требуется восстановить смягчение до системного по умолчанию, необходимо также включить этот список, как в -Remove следующем примере:

        В следующей таблице перечислены отдельные меры по смягчению последствий (и аудиты, если это доступно), которые будут использоваться с параметрами -Enable или -Disable параметров cmdlet.

        Тип смягчения Сфера применения Ключевое слово параметра cmdlet mitigation Параметр cmdlet режима аудита
        Диспетчерская система потока (CFG) Системный и app-level CFG , StrictCFG , SuppressExports Аудит не доступен
        Предотвращение выполнения данных (DEP) Системный и app-level DEP , EmulateAtlThunks Аудит не доступен
        Принудительный случайный выбор изображений (обязательный ASLR) Системный и app-level ForceRelocateImages Аудит не доступен
        Случайные выделения памяти (ASLR снизу вверх) Системный и app-level BottomUp , HighEntropy Аудит не доступен
        Проверка цепочек исключений (SEHOP) Системный и app-level SEHOP , SEHOPTelemetry Аудит не доступен
        Проверка целостности кучи Системный и app-level TerminateOnError Аудит не доступен
        Механизм Arbitrary code guard (ACG) Только на уровне приложений DynamicCode AuditDynamicCode
        Блокировать изображений с низкой целостностью Только на уровне приложений BlockLowLabel AuditImageLoad
        Блокировать удаленные изображения Только на уровне приложений BlockRemoteImages Аудит не доступен
        Блокировка ненадежные шрифты Только на уровне приложений DisableNonSystemFonts AuditFont , FontAuditOnly
        Защита целостности кода Только на уровне приложений BlockNonMicrosoftSigned , AllowStoreSigned AuditMicrosoftSigned, AuditStoreSigned
        Отключить точки расширения Только на уровне приложений ExtensionPoint Аудит не доступен
        Отключить системные вызовы Win32k Только на уровне приложений DisableWin32kSystemCalls AuditSystemCall
        Не разрешать дочерние процессы Только на уровне приложений DisallowChildProcessCreation AuditChildProcess
        Фильтрация адресов экспорта (EAF) Только на уровне приложений EnableExportAddressFilterPlus , EnableExportAddressFilter [ 1 ] Аудит не доступен [ 2 ]
        Фильтрация адресов импорта (IAF) Только на уровне приложений EnableImportAddressFilter Аудит не доступен [ 2 ]
        Имитация выполнения (SimExec) Только на уровне приложений EnableRopSimExec Аудит не доступен [ 2 ]
        Проверка вызова API (CallerCheck) Только на уровне приложений EnableRopCallerCheck Аудит не доступен [ 2 ]
        Проверка использования дескриптора Только на уровне приложений StrictHandle Аудит не доступен
        Проверка целостности зависимостей изображения Только на уровне приложений EnforceModuleDepencySigning Аудит не доступен
        Проверка целостности стека (StackPivot) Только на уровне приложений EnableRopStackPivot Аудит не доступен [ 2 ]

        [ 1. ] Используйте следующий формат, чтобы включить модули EAF для DLLs для процесса:

        [ 2. ] Аудит для этого смягчения не доступен с помощью cmdlets PowerShell.

        Настройка уведомления

        Сведения о настройке уведомления при запуске правила и блокировке приложения или файласм. в Безопасность Windows.

        Проблема с реализацией технологии ASLR присутствует еще со времен Windows 8.

        В числе причин, по которым пользователям стоит перейти на Windows 10, компания Microsoft называет улучшенные встроенные механизмы безопасности по сравнению с Windows 7. Этот довод действительно был бы убедительным в случае надлежащей реализации технологии Address Space Layout Randomization (ASLR).

        В Windows технология используется, начиная с Windows Vista, и предназначена для противодействия атакам с эксплуатацией памяти. Однако с появлением в Windows 8 функции принудительного ASLR (Force ASLR, system-wide mandatory ASLR) технология стала бесполезной в ряде случаев.

        Вышеупомянутая функция предназначена для рандомизации исполняемых файлов, даже если в приложении не активирована поддержка ASLR. Ее можно включить через служебную программу EMET. В Windows 10 Fall Creators Update программа EMET стала частью Windows Defender Exploit Guard (WDEG).

        По данным специалиста Координационного центра CERT Уилла Дормана (Will Dormann), в Windows 8 и более поздних версиях Force ASLR выполняет свои функции только наполовину – программы перемещаются, но каждый раз по одному и тому же адресу.

        «Начиная с Windows 8, system-wide mandatory ASLR (активированная через EMET) имеет нулевую энтропию, что, по существу, делает ее бесполезной. С Windows Defender Exploit Guard для Windows 10 дела обстоят точно также», - сообщил Дорман.

        Как пояснил исследователь, в Windows 7 с EMET System-wide ASLR при каждой перезагрузке загружаемый адрес для eqnedt32.exe является новым. «Однако в Windows 10 с EMET или WDEG eqnedt32.exe каждый раз это 0x10000», - отметил Дорман.

        ASLR («рандомизация размещения адресного пространства») – технология, применяемая в Microsoft Windows, Linux, FreeBSD, macOS, iOS и Android, при использовании которой случайным образом изменяется расположение в адресном пространстве процесса важных структур данных, а именно образов исполняемого файла, подгружаемых библиотек, кучи и стека. ASLR создана для усложнения эксплуатации нескольких типов уязвимостей.

        Координационный центр CERT (CERT/CC) был создан в ноябре 1988 года, после того, как червь Морриса поразил компьютеры DARPA. Это основной координационный центр по решениям проблем безопасности в интернете. CERT/CC находится в ведении федерального финансирования Питтсбурга на основе Института программной инженерии (SEI) в Университете Карнеги-Меллона.

        Читайте также: