Br0wSec – Telegram
Br0wSec
766 subscribers
4 photos
84 links
Browser security channel (RU)
Download Telegram
На BHUSA 2018 Samuel Groß рассказал про атаки на JIT-компиляторы JS в браузерах.
Его исследование сфокусировано на уязвимостях в механизмах устранения избыточности(redundacy elimination) и проверках допустимости обращения к памяти (bounds checking).

Основная идея состоит в том, что можно сформировать такой код, который JIT-компилятор будет считать корректным, убрав при этом дополнительные проверки с целью оптимизации и ускорения исполнения кода. Это можно использовать, чтобы получать read/write примитивы.

Полная версия презентации: https://saelo.github.io/presentations/blackhat_us_18_attacking_client_side_jit_compilers.pdf.
Вы все еще не фаззите WebAssembly? Лучше поздно, чем никогда.
Natalie Silvanovich из Project Zero поделилась своими мыслями про уязвимсоти в парсинге WebAssembly-модуля:
https://googleprojectzero.blogspot.com/2018/08/the-problems-and-promise-of-webassembly.html.
Т.к. формат относительно новый, нас ждем еще много интересных багов.
А Google запустил серию интересных постов из 4 частей о внутреннем устройстве Chrome: https://developers.google.com/web/updates/2018/09/inside-browser-part1.
Уже вышло 2 части, рекомендую их прочитать!
Chrome 69+ не удаляет Cookie самого Google ¯\_(ツ)_/¯
За 21 день ребята из x41 D-SEC GMBH провели аудит Firefox Application Update сервис, в результате нашлось 14 уязвимостей и 21 потенциальных проблем. Все обнаруженные уязвимости находятся либо в старом C-коде, либо в панели администрирования, которая назвается Balrog (https://github.com/mozilla/balrog/).

Подробности тут: https://www.x41-dsec.de/reports/X41-Balrog-Review-2018-Final-Report-Public.pdf
Ну и сама новость тут: https://blog.mozilla.org/security/2018/10/09/trusting-the-delivery-of-firefox-updates/
От mailto: до RCE всего один шаг!
Замечательная бага была найдена в MS Edge, позволяющая в ссылках выполнять команды через схему wshfile: https://leucosite.com/Microsoft-Edge-RCE/
В FireFox 62.0 нашли type confusion багу, приводящую к RCE (CVE-2018-12386): https://blogs.securiteam.com/index.php/archives/3765.
Когда уже они доработают и раскатят свой sandbox?)
Как пофазить браузер за 60 секунд? Читайте тут: https://bugid.skylined.nl/20181017001.html
Uxss мой любимый тип багов, так как он может нести в себе критичную угрозу (угон данных любого сайта или воздействие на внутренние компоненты браузера, которое может привести и к RCE), а также для его эксплуатации не надо обходить sandbox)

Отличный пример CVE-2018-6128 в WebKit, который позволял в Chrome под iOS выполнять кросс-доменные запросы к ресурсам с другим Origin’ом из-за проблемы с парсингом URL. А забавным этот пример делает видео от LiveOverflow с авторскими комментариями: https://youtu.be/0uejy9aCNbI.
Внутри Google Chrome идёт дискуссия, закопать ли XSS-аудитор или доработать его.

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

Но может, стоит все-таки доработать? )

Подробности тут: https://bugs.chromium.org/p/chromium/issues/detail?id=898081.

P.S. Для справки, XSS-аудитор - это механизм обнаружения и предупреждения эксплуатации reflected-xss. Если браузер видит, что в запросе и ответе потенциально есть вектор атаки, он не отображает ответ, а показывает предупреждение.
Пока все готовятся к ZN, Samuel Groß выложил свой pwn2own баг-чейн для Safari->MacOS kernel https://github.com/saelo/pwn2own2018
Расширения в браузере - страшная сила! Почему? Ну хотя бы потому, что они используют API, который предоставляют браузеры. А в нем бывают разные баги: от плохо работающих пермишнов, до RCE.

Отличная и свежая подборка по ссылкам ниже:

https://leucosite.com/WebExtension-Security/
https://leucosite.com/WebExtension-Security-Part-2/

Ждём часть 3.
Safari и беспощадный D! Отличный пример красивой и простой url spoofing баги, позволяющей нафишить много важных доменов: https://xlab.tencent.com/en/2018/11/13/cve-2018-4277/
Моя презентация c ZeroNights 2018 про то, как начать ломать браузеры, а также о том, какие баги в них сейчас ищут, доступна online: https://goo.gl/LhiYdP.
Ушла эпоха 👾
Microsoft откажется от Edge и выпустит браузер на базе Chromium
Вышел отчет Chromium Security Q4. Самое интересное, что там было - представление нового API для защиты от XSS (в первую очередь от DOM-based), который называется Trusted Types.

Теперь разработчики смогут на своем сайте ограничить небезопасную вставку содержимого в DOM специальной политкой, которая активируется в CSP-заголовках. В этом случае в качестве параметров для функций (или свойств), порождающих небезопасный html (так называемые injection sinks, например, Element.innerHTML или HTMLScriptElement.src), можно будет использовать только объекты-политики, в которых можно описать реализацию санитайзинга или проверки контента, попадающего в DOM.

Подробнее можно почитать здесь: https://developers.google.com/web/updates/2019/02/trusted-types, а полную спецификацию можно найти тут: https://wicg.github.io/trusted-types/dist/spec/.

Фича пока что экспериментальная и доступна с 73 по 76 версию Chromium'a. Чтобы попасть в эксперимент надо записать свой сайт по ссылке: https://developers.chrome.com/origintrials/#/register_trial/171136785840078849
Для тех, кто хочет искать memory corruption в Safari, но не знает, как начать, в моем архиве еще с декабря завалялся хороший 101 tutorial: http://www.auxy.xyz/tutorial/Webkit-Exp-Tutorial/.

Ну и в догонку поделюсь обновляемой подборкой материалов по всем браузерам (тут про архитектуру, pwn браузеров в рамках ctf и про разные тулзы): https://github.com/m1ghtym0/browser-pwn.
1 марта появился релиз Chromium’а, где был а исправлена use-after-free увязвимость в компоненте FileReader - CVE-2019-5786.
https://chromereleases.googleblog.com/2019/03/stable-channel-update-for-desktop.html?m=1

6-7 марта поднялся хайп, многие написали, что in the wild эксплуатируется очень опасная уязвимость RCE вместе с sandbox escape’ом.

Если посмотреть фикс: https://chromium.googlesource.com/chromium/src/+/150407e8d3610ff25a45c7c46877333c4425f062, то видно, что исправлен memory corruption, а для зашиты от выхода из песочницы ничего не сделано. Это все выглядело довольно странно на фоне информационной волны.

Хорошо, что 7 марта появилась информация от Google о том, что уязвимости было 2. Одна - uaf в хромиуме, а вторая - null pointer dereference в Windows 7 x32: https://security.googleblog.com/2019/03/disclosing-vulnerabilities-to-protect.html.

Мораль - анализируйте фиксы, не всегда так страшна бага, как о ней пишут.
Появился вариант эксплойта под WebKit в PS4 для CVE-2018-4441 (работает в прошивке до версии 6.50).

Сама уязвимость в методе JSArray::shiftCountWithArrayStorage позволяет спровоцировать out of bands через манипуляцию у массива свойством length и вызовом splice().

Изначальный триггер и баг репорт: https://bugs.chromium.org/p/project-zero/issues/detail?id=1685&desc=2

Семпл эксплойта с ценными комментариями и пояснениями: https://github.com/Cryptogenic/PS4-6.20-WebKit-Code-Execution-Exploit
Ещё одна интересная подборка PoC’ов под memory corruption уязвимости в V8 и ChakraCore (2013 - 2019): https://github.com/tunz/js-vuln-db.