Уязвимости web-приложений и обеспечение их безопасности
Технология защиты памяти DEP (NX)
DEP (Data Execution Prevention - предотвращение выполнения данных) или NX (No-Execute) - технология предотвращающая запуск программного кода из области памяти, которая отводится под данные. Таким образом предотвращаются атаки, связанные с технологией переполнения буфера обмена.
По-сути, DEP/NX является функцией современных процессоров, которая позволяет помечать страницы памяти как исполняемые или неисполняемые, тем самым предоставляя возможность избежать исполнения вредоносных данных, размещаемых в памяти. Если процессор обнаруживает передачу управления (обычно команда jump ) в область памяти, помеченную как неисполняемую, то он сразу же вызывает срабатывание механизма исключения, прерывающего текущий процесс. Другими словами, если DEP/NX определяет, что имеет место потенциально опасный переход, то он вызывает "безопасный сбой" процесса с целью предотвращения работы потенциально опасного вредоносного приложения (эксплоита).
Для обеспечения этой функции безопасности от пользователя не требуется никаких дополнительных действий и никаких запросов на выполнение он получать не будет.
Когда IE8 восстанавливается после сбоя, инициированного DEP/NX, восстановление текущих закладок не будет выполняться автоматически. Это сделано с целью предотвращения многократных попыток со стороны вредоносного сайта использовать уязвимость. Вместо это браузер выдаст сообщение следующего вида (для нерусифицированной версии браузера):
В случае, когда процессор переходит на неисполняемую страницу памяти, она может содержать три типа данных: вредоносный код, невредоносный код и "мусор".
Обычно DEP/NX применяется в сочетании с технологией ASLR (Address Space Layout Randomization) , которая размещает важные системные функции в случайным образом выбранных областях памяти при каждой перезагрузке системы. Это предотвращает вызов вредоносной программой функции VirtualProtect(), позволяющей изменить статус страницы памяти (например, сделать ее исполняемой ).
Виртуальная Java -машина ( JVM ) и Active Template Library ( ATL ) генерируют так называемый " JIT compile " исполняемый код и передают управление на него. Старые версии этих сред не помечали страницы памяти, содержащие сгенерированный таким образом код как исполняемые, приводя тем самым к сбою при включенной функции DEP/NX.
В Internet Explorer 7 по причинам совместимости DEP по умолчанию был отключен. Несколько популярных модулей ( addons ) были несовместимы с DEP и могли вызвать завершение работы Internet Explorer при включенном DEP. Чаще всего проблема состояла в том, что эти дополнения были скомпилированы с использованием старой библиотеки ATL. До версии 7.1 SP1 ATL полагалась на динамически сгенерированный код, который несовместим с DEP. И хотя большинство разработчиков популярных аддонов уже выпустили обновленные для DEP версии, некоторые могут быть не обновлены до выхода Internet Explorer 8.
Новые DEP API позволяют Internet Explorer использовать DEP, при этом старые модули, использующие старые версии ATL, не станут причиной завершения работы Internet Explorer.
В редких случаях, когда дополнение несовместимо с DEP по какой-либо иной причине, отличной от использования старой версии ATL, опция в групповых политиках позволяет выключать DEP для Internet Explorer до тех пор, пока обновленная версия дополнения не будет развернута. Локальные администраторы могут контролировать использование DEP, запустив Internet Explorer (в режиме администратора) и выключив опцию защиты памяти.
Другие инструменты безопасности в IE 8
IE8 благодаря технологии MIME-Handling Changes не позволяет запустить на исполнение вредоносный скрипт, замаскированный под графическое изображение.
Еще одна особенность IE8 - Application Protocol Prompt, которая позволяет разрешенным приложениям (например, медиаплеерам для воспроизведения потокового видео или программам IP -телефонии) осуществлять свой запуск непосредственно из браузера.
В IE8 использован подход Loosely-Coupled IE, когда ядро браузера изолированно от вкладок, а сами открытые страницы - друг от друга. В результате реализации асинхронных связей (" loosely coupled ") возникшие сбои в одной из вкладок не могут нарушить работу остальных. Браузер остается стабильным, сводя нарушения в работе и неудобства для пользователя к минимуму. Благодаря системе автоматического восстановления после сбоя вкладка или целая сессия будут автоматически восстановлены в прежнее состояние, включая данные, введенные в веб-формы.
Антивирусное ПО от Microsoft: Microsoft Security Essentials
Microsoft Security Essentials (MSE) поддерживает 5 основных функций:
- уничтожение наиболее опасных вредоносных программ;
- удаление известных вирусов;
- антивирусная защита в режиме реального времени;
- удаление известных шпионских программ;
- антишпионская защита в режиме реального времени.
Одной из наиболее примечательных функций MSE является технология DSS (Dynamic Signature Service) , гарантирующая немедленную ( Zero day) защиту компьютера от новых видов атак. В MSE реализован поведенческий анализатор, позволяющий обнаруживать и блокировать активные процессы, которые выполняют потенциально опасные действия и поведение которых похоже на деятельность вредоносных программ, а также проверка репутации файлов для исключения ложных срабатываний.
Источники
- Крис Митчелл Обеспечение безопасности веб-сайтов. (http://help.yandex.ru/webmaster/?id=1071330)
- Фрэзер Говард Современные интернет-атаки (http://help.yandex.ru/webmaster/?id=1076109)
- Семенов Ю.А. Обзор уязвимостей, некоторых видов атак и средств защиты (http://book.itep.ru/6/intrusion.htm).
- Microsoft Developer Network (http://msdn.microsoft.com)