Главная > Интернет, Информационная безопасность. Хакерство > Безопасность IE8: технология защиты памяти DEP (NX)

Безопасность IE8: технология защиты памяти DEP (NX)

Internet ExplorerС выходом в свет нового браузера Internet Explorer 8, пользователи все чаще и чаще стали встречаться с проблемами установки или работы ActiveX-компонентов. Все дело в технологии защиты памяти DEP (NX), которая призвана заблокировать потенциальные уязвимости в браузере.

Технология защиты памяти DEP (NX) в Internet Explorer 8

В Internet Explorer 7 в Windows Vista была впервые представлена (выключенная по умолчанию) функция защиты памяти, которая помогала избегать атаки из Интернета. Эта функция также известна как Data Execution Prevention (DEP) или No-Execute (NX). В Internet Explorer 8 в Windows Server 2008 и Windows Vista SP1 данная функция по умолчанию включена.

DEP помогает избежать атак путем предотвращения запуска кода, размещенного в участке памяти, помеченном как неисполняемый. DEP в комбинации с другими технологиями, как ASLR, делает процесс использования взломщиками разнообразных уязвимостей, связанных с памятью (например, переполнение буфера) намного более сложным. Лучше всего данная технология работает для Internet Explorer и для загружаемых аддонов. Для обеспечения всех этих функций безопасности от пользователя не требуется никаких дополнительных действий и никаких запросов ему показано не будет.

Совместимость DEP (NX)

В Internet Explorer 7 по причинам совместимости DEP по умолчанию был отключен. Несколько популярных аддонов были несовместимы с DEP и могли вызвать завершение работы Internet Explorer при включенном DEP. Чаще всего проблема состояла в том, что эти дополнения были скомпилированы с использованием старой библиотеки ATL. До версии 7.1 SP1 ATL полагалась на динамически сгенерированный код, который несовместим с DEP. И хотя большинство разработчиков популярных аддонов уже выпустили обновленные для DEP версии, некоторые могут быть не обновлены до выхода Internet Explorer 8.

К счастью новые DEP API были добавлены в Windows Server 2008 и Vista SP1, чтобы позволить использование DEP, сохраняя совместимость со старыми версиями ATL. Новые API позволяют Internet Explorer использовать DEP, при этом старые аддоны, использующие старые версии ATL, не станут причиной завершения работы Internet Explorer.

В редких случаях, когда дополнение несовместимо с DEP по какой-либо иной причине, отличной от использования старой версии ATL, опция в групповых политиках позволит организациям выключать DEP для Internet Explorer до тех пор, пока обновленная версия дополнения не будет развернута. Локальные администраторы могут контролировать использование DEP, запустив Internet Explorer как администраторы и выключив опцию защиты памяти. Это можно сделать используя меню Сервис — пункт Свойства обозревателя — закладка Дополнительно. Необходимо убрать галочку с пункта «Включить защиту памяти для снижения риска атаки из Интернета«, как показано на рисунке:

Включить защиту памяти для снижения риска атаки из Интернета

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

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main]
«DEPOff»=dword:00000001

или

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main]
«DEPOff»=dword:00000001

Если значение параметра «DEPOff»=dword:00000001, то опция «Включить защиту памяти для снижения риска атаки из Интернета» — отключена.

Проверка состояния вашей безопасности

Увидеть, какие именно процессы в Windows Vista защищены DEP, вы можете во вкладке диспетчера задач. Для более ранних версий Windows вы можете использовать Process Explorer. В обоих случаях проверьте, чтобы была отмечена опция Data Execution Prevention в выборе отображаемых колонок.

Призыв к действию для разработчиков

Если вы являетесь разработчиком различного рода дополнений для Internet Explorer, то вы уже сегодня можете убедиться в том, что ваши пользователи смогут спокойно обновиться до IE8. Для этого нужно лишь:

  • Если ваш код зависит от старой версии ATL, то перекомпилируйте ваше дополнение с использованием ATL v7.1 SP1 или более поздней версии. В комплект поставки Visual Studio 2005 входит ATL 8.0.
  • Установите связывающую ссылку /NXCompat для индикации того, что ваше дополнение совместимо с DEP.
  • Проверьте ваш код на совместимость с DEP, используя IE8 Beta 1 в Windows Vista SP1 или IE7 в Windows Vista после включения DEP.
  • Включите в ваш код другие доступные методы защиты типа защиты стека (/GS), безопасной обработки ошибок (/SafeSEH), и ASLR (/DynamicBase).

Основная часть информации взята отсюда: thevista.ru

  1. илья
    16 Март 2010 в 18:40 | #1

    как не странно не один из способов на win7 мне не помог

  2. 16 Март 2010 в 21:22 | #2

    Что конкретно не удалось сделать?

  3. ivanteach
    14 Май 2010 в 08:43 | #3

    Спасибо. все заработало)))

  4. Егор
    17 Сентябрь 2011 в 23:20 | #4

    Флажок «Включить защиту памяти для снижения риска атаки из Интернета» заблокирован. Опустить его просто не предоставляется возможным.

  5. 18 Сентябрь 2011 в 22:24 | #5

    @Егор
    Для того, что бы флажок был доступен — нужно запустить браузер от имени Администратора.

  6. Евгений
    21 Декабрь 2011 в 08:38 | #6

    на win7 запустил от имени админа убрал флажок. запускай как обычно влажок на прежнем месте.

  7. 21 Декабрь 2011 в 16:13 | #7

    @Евгений
    Ещё вариант — сделать reg файл следующего содержания:
    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main]
    "DEPOff"=dword:00000001

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main]
    "DEPOff"=dword:00000001

    и запустить его (импортировать в реестр)

  1. Пока что нет уведомлений.