Михаил Залевский (Michal Zalewski), известный польский эксперт в области компьютерной безопасности в настоящее время работающий в Google, представил результаты анализа механизмов для обеспечения безопасности, применяющихся в 8 популярных web-браузерах: Microsoft Internet Explorer 6/7, Firefox 2/3, Safari 3.2, Opera 9.62, Google Chrome 0.4.154.29 и Android embedded browser 1.0 RC1. Документ будет полезен не только для специалистов в области безопасности, но и для web-мастеров, web-разработчиков и администраторов, так как вскрывает некоторые тонкие и неочевидные моменты работы браузеров.
Отчет состоит из трех частей:
- Базовые концепции организации работы браузеров - рассмотрены такие аспекты, как:
- Допустимость использования нестандартных спецсимволов (например, \0) в URL, особенности использования Unicode в URL, соответствие URL-схем требованиям RFC;
- Обработка нестандартных HTTP запросов (неверный размер в поле Content-Length, дублирование имен заголовков), поведение при отправке Referer;
- Различия в парсинге HTML-тэгов, обработка вложенных незакрытых HTML-тэгов;
- Отличия в представлении DOM (Document Object Model) объектов;
- Особенности интерпретации JavaScript и таблиц стилей;
- Представление контента, обрабатываемого через плагины.
- Стандартные возможности по обеспечению безопасности
- Проверка на тождественность форм представления текущего хоста, внешние обращения и игнорирование заголовков в XMLHttpRequest, особенности отправки cookies;
- Возможность инициирования автоматического клика без участия пользователя, изменение CSS и обработка форм;
- Возможность изменение интерфейса бразуера, противостояние "Race condition" атакам, доступ к истории посещений и другим фреймам;
- Сетевые ограничения, навигация по IP в URL, обращение к нестандартным номерам портов;
- Допустимость использования схем "file:" и "javascript:" в тэгах IMG, SCRIPT, IFRAME, EMBED, STYLE;
- Особенности обработки перенаправления на другие страницы (Location, Refresh);
- Ограничение на число одновременных коннектов и величина таймаутов;
- Разбор HTML в зависимости от заданных mime-типов, расширения файла и HTTP заголовков (например, как поведут себя браузеры, если с image/jpeg типом получат GIF картинку, будут ли обрабатывать .html при типе application/octet-stream);
- Различия в организации кеширования страниц;
- Противостояние разрушительному действию скриптов (зацикливание, бесконечное открытие окон и т.п.), ограничения на объем памяти выделяемой скрипту.
- Экспериментальные и устаревшие средства.
- Различия в поддержке HTTP-аутентификации (например, IE и Safari не спросят пароль при запросе файла из защищенной области через EMBED ).
- Техника ограничения скриптов и дополнительной защиты браузера.
|