Browser Security Handbook. Глава 1, пункт 12

Browser Security Handbook. Глава 1, пункт 12
Руководство по безопасности браузеров (Browser Security Handbook). Глава I 
§ 11. Другие встроенные форматы документов  

§12. Контентные плагины  

В отличие от небольшого и вполне определенного набора изначально поддерживаемых форматов документов, сфера применения браузерных плагинов очень разнообразна и быстро расширяется. Большинство распространенных плагинов для отображения контента вызываются с помощью тегов <OBJECT> или <EMBED> (или <APPLET> для Java), но могут использоваться и другие типы интеграции.
Распространенные плагины, встраиваемые в страницу сайта, можно разделить на несколько основных категорий:

- Языки веб-программирования. Включает такие технологии, как Adobe Flash , Java или Microsoft Silverlight , присутствующие на подавляющем большинстве настольных компьютерах. Эти языки, как правило, позволяют выполнять множество сценариев (скриптов), включая доступ к документу верхнего уровня и другой DOM-информации, или способны отправить сетевые запросы на некоторые объекты. Модели безопасности, реализованные этими плагинами обычно отличаются от моделей самого браузера нелогичными или непредусмотренными особенностями. Такие технологии веб-разработки становятся главной целью для проведения атак.  Они также представляют потенциальную угрозу безопасности из-за недостаточной обработки входных данных в популярных плагинах.
- Интегрированные форматы документов, отличные от HTML. Некоторые популярные редакторы документов или средства просмотра, включая Acrobat Reader и Microsoft Office , устанавливают плагины для поддержки собственных форматов на HTML-странице или для просмотра содержимого в полноэкранном режиме прямо в браузере. Интересной особенностью этого механизма является то, что многие такие форматы документов позволяют создавать сценарии или предлагают интерактивные функции (например, интерактивные ссылки), что может привести к передаче данных браузеру необычным или непредсказуемым способом. Например, существуют методы для перемещения окна браузера с помощью JavaScript в Url-адресах встроенных в PDF-документы - и этот код будет выполняться в контексте безопасности сайта.
- Языки разметки,  интегрированные в HTML. Языки разметки, такие как VRML , VML или MathML , также поддерживаются в некоторых браузерах с помощью плагинов, и могут быть встроены в стандартные HTML-документы; они имеют такой же вектор атаки, что и формат XML (см. предыдущий параграф).
- Мультимедийные форматы, обладающие широкими возможностями. Различные плагины  позволяют воспроизводить видео и аудио непосредственно в браузере без открытия окна мультимедийного проигрывателя. Интеграцию плагина в браузер, расширяющие его возможности, предлагают большинство современных медиаплееров, в частности, Windows Media Player , QuickTime , RealPlayer или VLC . Большинство таких форматов не влияют на безопасность для принимающей стороны, хотя на практике, этот тип интеграции подвержен определенным ошибкам.
- Специализированные виджеты для манипулирования данным. Они включают в себя функции, такие как DHTML Editing Control с CLSID 2D360201-FFF5-11D1-8D03-00A0C959BC0A. Некоторые такие плагины поставляются вместе с Windows и помечаются как безопасные, хотя безопасности уделяется мало внимания.

Общая информация: в некоторых азиатских странах применяются плагины на основе модуля шифрования , реализованные в виде управляющих элементов ActiveX.

Одним из наиболее важных свойств безопасности объектов, вложенных в теги, является возможность встраивания произвольных типов файлов, манипулируя заголовками Content-Typeи Content-Disposition.
Приоритеты входящих данны х для того, чтобы решить, как интерпретировать содержание в различных браузерах, описаны с таблице 13.

Таблица №13


Входной сигнал
MSIE6
MSIE7
MSIE8
FF2
FF3
Safari
Opera
Chrome
Android
Тип тега и TYPE= / CLASSID=значение
#1
#1
#1
#1
#1
#1
#1
#1
n/a
Content-Type=значение, если TYPE=не определен
игнорировать
игнорировать
игнорировать
игнорировать
игнорировать
игнорировать
игнорировать
игнорировать
n/a
Content-Type=значение, если TYPE= отсутствует
#2
#2
#2
#2
#2
#2
#2
#2
n/a
Сниффинг контента, если TYPE=не определен
игнорировать
игнорировать
игнорировать
игнорировать
игнорировать
игнорировать
игнорировать
игнорировать
n/a
Сниффинг контента, если TYPE=отсутствует
игнорировать
игнорировать
игнорировать
игнорировать
игнорировать
(#3)
игнорировать
(#3)
n/a

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

Примечание: К сожалению, на сегодняшний день нельзя полностью проконтролировать как будет отображаться управляемый плагином документ . 


 Другое интересное свойство, которое стоит отметить - это наличие во многих модулях собственных HTTP-стеков и кэширование системы, что позволяет обойти настройки конфиденциальности браузера.

Alt text

Большой брат следит за вами, но мы знаем, как остановить его

Подпишитесь на наш канал!

Сергей Сторчак

Персональный блог Сергея Сторчака