Windows: что такое DEP?
При работе в Windows иногда не удается запустить какую-либо программу. При этом появляется сообщение «Предотвращение выполнения данных — Microsoft Windows. Для защиты компьютера эта программа была закрыта системой». Это сработала функция DEP.
Что такое DEP DEP (Data Execution Prevention) — предотвращение выполнения данных (ПВД) — это набор программных и аппаратных технологий, позволяющих выполнять дополнительные проверки содержимого оперативной памяти и предотвращать запуск вредоносного кода. Функция DEP позволяет отразить целый класс атак. В частности, DEP позволяет блокировать вирусы и другие вредоносные программы, пытающихся выполнить свой код из областей системной памяти, резервированных для Windows и других авторизованных программ. Обнаружив, что программа использует системную память неправильно, средство DEP принудительно закрывает программу и выдает соответствующее сообщение.
В операционных системах Windows XP с пакетом обновлений 2 (SP2), Windows Server 2003 с пакетом обновлений 1 (SP1) и Windows Vista функция DEP реализована как на программном, так и на аппаратном уровне.
Аппаратная реализация DEP При использовании аппаратной реализации DEP все области памяти процесса помечаются как области, не содержащие исполняемого кода, если иное не указано явным образом. Существуют атаки, основанные на помещении исполняемого кода в области памяти, не содержащие исполняемого кода, и последующем запуске этого кода. Функция DEP предотвращает подобные атаки, перехватывая их и вызывая исключение.
При аппаратной реализации функция DEP использует возможности процессора, чтобы отметить определенные области памяти специальным атрибутом, показывающим, что из этих областей не может запускаться код. DEP работает на уровне страниц виртуальной памяти и, как правило, отмечает какую-либо страницу памяти, изменяя один бит элемента таблицы страниц (PTE).
Особенности аппаратной реализации DEP и метод пометки страниц виртуальной памяти, используемый этой функцией, зависят от архитектуры процессора. Процессоры, поддерживающие DEP, могут вызывать исключение при запуске кода со страницы памяти, помеченной соответствующим атрибутом.
Программная реализация DEP Программная реализация DEP разработана для предотвращения работы вредоносных программ, использующих особенности механизма обработки исключений в Windows. При программной реализации функция DEP может работать на компьютере с любым процессором, поддерживающим Windows XP SP2, Windows Server 2003 SP1, Windows Vista. Программно реализованная DEP по умолчанию защищает только отдельные системные файлы и не зависит от поддержки процессором аппаратной реализации DEP.
Основным преимуществом, которое обеспечивает функция DEP, является возможность предотвратить запуск кода из областей данных (куча, стек или пул памяти). Как правило, содержимое стека и кучи по умолчанию не является исполняемым кодом. При аппаратной реализации функция DEP вызывает исключение при запуске кода из указанных местоположений. Если исключение остается необработанным, то процесс останавливается. В режиме ядра исполнение кода, находящегося в защищенной памяти, вызывает появление стоп-ошибки.
Изменение параметров DEP Войдите в систему с учетной записью «Администратор» или члена группы «Администраторы»; — нажмите Пуск → Настройка → Панель управления → Система; — в открывшемся окне Свойства системы откройте вкладку Дополнительно → Быстродействие → Параметры; — в открывшемся окне Параметры быстродействия откройте вкладку Предотвращение выполнения данных; — введите пароль администратора или подтверждение пароля, если появится соответствующий запрос;
Как отключить DEP для отдельной программы — установите флажок рядом с названием программы, для которой нужно отключить DEP → ОК; — если программы нет в списке, нажмите кнопку Добавить…; — в окне Открыть найдите исполняемый файл программы → Открыть → OK → OK.
Как включить DEP для отдельной программы — снимите флажок рядом с названием программы, для которой нужно включить DEP → OK → OK.
Примечания 1. В отличие от брандмауэра или антивирусной программы средство DEP не препятствует установке потенциально опасных программ. Вместо этого выполняется наблюдение, чтобы программы использовали системную память безопасным образом. Для этого DEP работает отдельно или вместе с совместимыми микропроцессорами и помечает некоторые области как «невыполняемые». Если программа пытается запустить код (любой код) из защищенной области, DEP закрывает программу и отображает уведомление.
2. По умолчанию функция DEP включена только для основных программ и служб операционной системы Windows. Чтобы защитить с помощью DEP дополнительные программы, установите переключатель Включить DEP для всех программ и служб, кроме выбранных ниже.