Логотип сайта
Главная » 2010 » Ноябрь » 26 » Internet Explorer 8 - безопасность с помощью XSS - фильтра.
04:24
Internet Explorer 8 - безопасность с помощью XSS - фильтра.

В конце прошлой недели компания Microsoft, наконец-то, поделилась новой информацией о новых функциях Internet Explorer 8, призванных повысить уровень безопасности самого популярного браузера. И сегодня мы поведаем об одной их этих функций - фильтре XSS. Привет, я Дэвид Росс (David Ross), программный инженер безопасности в команде SWI. Я рад возможности написать гостевую статью в блоге IE, чтобы представить вам совместную работу, которую команда SWI провела с командой Internet Explorer.Сегодня мы представляем информацию о новой функции IE8, которая делает реализацию (Type-1) XSS-атаки в Internet Explorer 8 намного более сложным заданием. XSS-утечки типа Type-1 составляют большую часть от всего количества объявленных уязвимостей, поэтому все чаще используются шутки ради или ради прибыли. Количество сообщенных XSS-утечек на популярных сайтах в последнее время резко возросло - MITRE сообщают, что XSS-уязвимости на данный момент представляют самый часто публикуемый класс уязвимостей. Совсем недавно сайты типа XSSed.com начали собирать и публиковать десятки тысяч Type-1 XSS-уязвимостей, присутствующих на разнообразных сайтах.

XSS-уязвимости позволяют атакующему контролировать отношения между пользователем и сайтом или приложением, которому он доверяет. Межсайтовый скриптинг позволяет реализовать следующие типы атак: кража coockie, включая созданные на время одной сессии, что может привести к краже учетной записи; мониторинг введенных в сайт или приложение жертвы клавиатурных нажатий; проводить действия на сайте жертвы от имени пользователя-жертвы. Например, XSS-атака на сайт Windows Live Mail может позволить атакующему читать и пересылать письма, создавать новые события календаря и т.д.

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

XSS-фильтр работает как компонент IE8, который просматривает все запросы и ответы, проходящие через браузер. Когда фильтр обнаруживает XSS в межсайтовом запросе, он обнаруживает и нейтрализует атаку, если она зависит от ответа сервера. Пользователям не задают вопросы, на которые они не могут ответить - IE просто блокирует вредоносный скрипт от исполнения.

С новым XSS-фильтром пользователи IE8 Beta 2, которые столкнутся с Type-1 XSS-атакой, увидят примерно такое предупреждение: "Страница была модифицирована и XSS - атака была заблокирована". В данном случае XSS-фильтр обнаружил атаку межсайтового скриптинга в URL. Фильтр нейтрализировал атаку, так как идентифицированный скрипт отсылал данные на страницу ответа. В данном случае фильтр эффективен без модификации первоначального запроса к серверу или блокировки всего запроса.

Как можно понять, есть множество интересных и тонких сценариев, которые фильтр должен обрабатывать правильно. Вот некоторые из них.

Фильтр должен быть эффективен, даже если атака направлена на артефакт часто используемых рабочих сред веб-приложений. Например, будет ли атака замечена, если определенный символ в запросе был потерян или модифицирован при повторном запросе?

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

И, конечно, в дополнение ко всему этому нам нужно эффективно бороться со всеми векторами XSS-атак, которые еще не были закрыты другими способами сокращения поверхности для XSS-атаки.

Совместимость критична. Эта функция была разработана с пониманием того, что если мы собираемся "сломать веб", то мы не можем включить эту функцию по умолчанию. Или если мы так сделаем, то люди ее выключат и не получат от нее никаких преимуществ. Мы действительно хотим предоставить максимум максимальному количеству пользователей.

Если функция Application Compatibility Logging в Internet Explorer включена, то всю активность XSS-фильтра можно просмотреть в Microsoft Application Compatibility Toolkit. Интернет-разработчики могут захотеть выключить фильтр для своего контента. Это можно сделать, поставив следующий HTTP заголовок: X-XSS-Protection: 0.

Наконец, мы используем очень прагматичный подход - мы решили создавать фильтр так, чтобы он не компрометировал совместимость сайта. Таким образом, XSS-фильтр защищает от самых распространенных XSS-атак, но он не является и никогда не будет панацеей от XSS-атак. Это похоже на прагматичный подход, используемый ASP.Net-запросом на авторизацию, хотя XSS-фильтр может быть намного агрессивней, чем функция ASP.Net.

Учитывая совсем незначительную несовместимость с сайтами и влияние на производительность, факт того, что наш фильтр эффективно блокирует часто используемый шаблон, который мы часто видим в Type-1 XSS-атаках, является шагом вперед. Дальнейшее его развитие и при возможности блокировка других часто используемых XSS-атак, делает XSS-фильтр незаменимым элементом для обеспечения безопасности работы в сети.

Откинув предостережения, было бы интересно увидеть, как десятки тысяч Type-1 XSS-уязвимостей, проиндексированных на сайтах типа XSSed.com, перестанут работать в IE8. Не упоминаемые IFRAME SEO Poisoning атаки также будут блокироваться. В будещем я расскажу о принципе работы фильтра, его истории, ограничениях, и некоторых уроках, полученных во время его разработки.

Категория: Новости программирования | Просмотров: 483 | Добавил: bY_fisHer | Рейтинг: 5.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *: