Введение
В данной статье описывается функция DEP, входящая в состав Windows XP с пакетом обновлений 2 (SP2) и Microsoft Windows Server 2003 с пакетом обновлений 1 (SP1). При этом рассматриваются следующие вопросы: • Аппаратная реализация DEP
• Программная реализация DEP
• Преимущества
• Настройка DEP на уровне системы
• Настройка DEP для отдельных приложений
Дополнительная информация
Аппаратная реализация DEP
При использовании аппаратной реализации DEP все области памяти процесса помечаются как области, не содержащие исполняемого кода, если иное не указано явным образом. Существуют атаки, основанные на помещении исполняемого кода в области памяти, не содержащие исполняемого кода, и последующем запуске этого кода. Функция DEP предотвращает подобные атаки, перехватывая их и вызывая исключение.
При аппаратной реализации функция DEP использует возможности процессора, чтобы присвоить определенным областям памяти специальный атрибут, показывающий, что из этих областей не может запускаться код. DEP работает на уровне страниц виртуальной памяти и, как правило, отмечает какую-либо страницу памяти, изменяя один бит элемента таблицы страниц (PTE).
Особенности аппаратной реализации DEP и метод пометки страниц виртуальной памяти, используемый этой функцией, зависят от архитектуры процессора. Процессоры, поддерживающие DEP, могут вызывать исключение при запуске кода со страницы памяти, помеченной соответствующим атрибутом.
Компании Advanced Micro Devices (AMD) и Intel поставляют совместимые с Windows процессоры, поддерживающие функцию DEP.
Начиная с пакета обновления 2 (SP2) для Windows XP 32-разрядная версия Windows использует один из следующих методов. • Функцию no-execute page-protection (NX), разработанную компанией AMD.
• Функцию Execute Disable Bit (XD), разработанную компанией Intel.
Чтобы использовать указанные функции, необходимо, чтобы процессор работал в режиме расширения физических адресов (Physical Address Extension, PAE). Windows автоматически включает режим PAE для поддержки функции DEP, поэтому пользователям не нужно отдельно включать PAE путем указания параметра /PAE в файле boot.ini.
Примечание. Поскольку 64-разрядные ядра поддерживают технологию расширения окна адресации (Address Windowing Extension, AWE), в 64-разрядных версиях Windows отсутствует отдельное ядро PAE.
Дополнительные сведения о PAE и AWE в Windows Server 2003 см. в следующей статье базы знаний корпорации Майкрософт:
283037 (
http://support.microsoft.com/kb/283037/) Поддержка памяти большого размера в Windows Server 2003 и Windows 2000
Программная реализация DEP
В пакете обновления 2 (SP2) для Windows XP реализованы дополнительные механизмы проверки, позволяющие предотвращать выполнение данных. Эти проверки, известные как «программная реализация DEP», разработаны для предотвращения работы вредоносных программ, использующих особенности механизма обработки исключений в Windows. При программной реализации функция DEP может работать на компьютере с любым процессором, поддерживающим Windows XP с пакетом обновления 2 (SP2). Программно реализованная DEP по умолчанию защищает только отдельные системные файлы и не зависит от поддержки процессором аппаратной реализации DEP.
Преимущества
Основным преимуществом, которое обеспечивает функция DEP, является возможность предотвратить запуск кода из областей данных (таких как куча, стек или пул памяти). Как правило, содержимое стека и кучи по умолчанию не является исполняемым кодом. При аппаратной реализации функция DEP вызывает исключение при запуске кода из указанных местоположений. Если исключение остается необработанным, то процесс останавливается. В режиме ядра исполнение кода, находящегося в защищенной памяти, вызывает появление стоп-ошибки.
Функция DEP позволяет отразить целый класс атак. В частности, DEP позволяет блокировать вредоносные программы, в результате работы которых вирус помещает в процесс дополнительный код, а затем пытается выполнить этот код. В системах, поддерживающих функцию DEP, выполнение такого кода вызывает исключение. Функция DEP, реализованная на программном уровне, блокирует программы, которые пытаются воспользоваться механизмом обработки исключений, существующим в Windows.
Настройка DEP на уровне системы
Настройка DEP на уровне системы определяется параметрами в файле Boot.ini. Пользователи, обладающие правами администратора, могут изменять параметры DEP с помощью диалогового окна Система панели управления.
Windows поддерживает четыре варианта настройки DEP на уровне системы. Во всех этих вариантах может использоваться как программная, так и аппаратная реализация DEP.Настройка Описание
OptIn Данное значение используется по умолчанию. На компьютерах, оснащенных процессорами с поддержкой DEP, функция DEP включена по умолчанию для ограниченного числа системных файлов и программ. При этом по умолчанию защищаются только системные файлы Windows.
OptOut По умолчанию функция DEP включена для всех процессов. В диалоговом окне Система панели управления можно вручную создать список приложений, для которых следует отключить DEP. Специалисты по информационным технологиям могут воспользоваться пакетом средств обеспечения совместимости приложений (Application Compatibility Toolkit), чтобы отключить функцию DEP для одной или нескольких программ. При этом вступают в силу исправления, обеспечивающие совместимость программ, для функции DEP.
AlwaysOn Функция DEP включается для всей системы. Все процессы работают с выполнением проверок DEP. В этом режиме нельзя отключить функцию DEP для отдельных приложений. Исправления, обеспечивающие совместимость программ, для функции DEP в силу не вступают. Программы, для которых с помощью пакета средств обеспечения совместимости приложений было отключено использование функции DEP, также работают с выполнением проверок DEP.
AlwaysOff Функция DEP отключена для всей системы, независимо от наличия аппаратной поддержки DEP. Процессор не работает в режиме PAE, если в файле Boot.ini не указан параметр /PAE.
Настройка функции DEP осуществляется схожим образом как при программной, так и при аппаратной реализации. Если на уровне системы для функции DEP выбран режим OptIn, то основные программы и файлы Windows будут защищены как программной, так и аппаратной реализацией DEP. Если система не может использовать аппаратную реализацию DEP, то указанные программы и файлы Windows будут защищены только программной реализацией DEP.
Аналогично, если на уровне системы для функции DEP выбран режим OptOut, программы, для которых отключена функция DEP, не будут защищены ни программной, ни аппаратной реализацией данной функции.
Параметры, указываемые в файле Boot.ini, выглядят следующим образом:
/noexecute=уровень_политики
Примечание. Уровень_политики может принимать значения AlwaysOn, AlwaysOff, OptIn и OptOut.
При установке пакета обновления 2 (SP2) для Windows XP текущие значения параметра /noexecute, указанные в файле Boot.ini, не изменяются. Эти значения также не изменяются при переносе образа операционной системы Windows на другой компьютер независимо от наличия на нем аппаратной поддержки DEP.
Во время установки Windows XP с пакетом обновлений 2 (SP2) и Windows Server 2003 с пакетом обновлений 1 (SP1) или более поздней версии по умолчанию включается режим OptIn, если иное не предусмотрено параметрами автоматической установки. Если параметр /noexecute=уровень_политики отсутствует в файле Boot.ini для версии Windows, поддерживающей DEP, то система ведет себя так, как если бы был включен режим /noexecute=OptIn.
Пользователи, обладающие правами администратора, могут вручную выбирать для функции DEP режим OptIn или OptOut с помощью вкладки Предотвращение выполнения данных в окне Свойства системы. Чтобы вручную установить на компьютере нужный режим работы DEP, выполните следующие действия: 1. Нажмите кнопку Пуск, выберите Выполнить, введите команду sysdm.cpl и нажмите кнопку ОК.
2. На вкладке Дополнительно в группе Быстродействие нажмите кнопку Параметры.
3. Перейдите на вкладку Предотвращение выполнения данных и воспользуйтесь одним из следующих способов. • Выберите параметр Включить DEP только для основных программ и служб Windows, чтобы включить режим OptIn.
• Выберите параметр Включить DEP для всех программ и служб, кроме выбранных ниже, чтобы включить режим OptOut, и нажмите кнопку Добавить, чтобы сформировать список программ, для которых функция DEP действовать не должна.
4. Дважды нажмите кнопку ОК.
Специалисты по информационным технологиям могут изменять конфигурацию DEP на уровне системы с помощью различных способов. Изменения в файл Boot.ini можно вносить напрямую с помощью сценариев, а также с помощью программы Bootcfg.exe, входящей в состав пакета обновления 2 (SP2) для Windows XP.
Чтобы установить для функции DEP политику AlwaysOn с помощью файла Boot.ini, выполните следующие действия:1. В меню Пуск щелкните правой кнопкой мыши значок Мой компьютер и выберите пункт Свойства.
2. Откройте вкладку Дополнительно и нажмите кнопку Параметры в области Загрузка и восстановление.
3. В области Загрузка операционной системы нажмите кнопку Правка. В окне программы «Блокнот» будет открыт файл Boot.ini.
4. В «Блокноте» выберите в меню Правка команду Найти.
5. В поле Найти введите /noexecute и нажмите кнопку Найти далее.
6. В окне Найти нажмите кнопку Отмена.
7. Замените policy_level на AlwaysOn.
Предупреждение. При вводе текста будьте внимательны. Теперь параметр файла Boot.ini должен выглядеть так:
/noexecute=AlwaysOn
8. В программе «Блокнот» в меню Файл выберите команду Сохранить.
9. Дважды нажмите кнопку ОК.
10. Перезагрузите компьютер.
При автоматической установке Windows XP с пакетом обновления 2 (SP2) или более поздней версии конфигурацию DEP можно предварительно указать в файле Unattend.txt. Требуемый режим DEP указывается в качестве значения параметра OSLoadOptionsVar, находящегося в разделе [Data] файла Unattend.txt.
Настройка DEP для отдельных приложений
Режим OptOut позволяет в целях обеспечения совместимости программ отключить функцию DEP для отдельных 32-разрядных приложений. Чтобы это сделать, воспользуйтесь вкладкой Предотвращение выполнения данных окна Свойства системы.
Для специалистов по информационным технологиям в состав пакета обновления 2 (SP2) для Windows XP включено исправление DisableNX, обеспечивающее совместимость приложений. Применение данного исправления к какому-либо приложению отключает использование функции DEP для этого приложения.
Чтобы применить к программе исправление DisableNX, необходимо воспользоваться пакетом средств обеспечения совместимости приложений. Дополнительные сведения о совместимости приложений Windows см. в статье Windows Application Compatibility на веб-узле Майкрософт по адресу:
http://www.microsoft.com/technet/prodte ... fault.mspx (
http://www.microsoft.com/technet/prodte ... fault.mspx)