Вышел отчет 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
Теперь разработчики смогут на своем сайте ограничить небезопасную вставку содержимого в 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
web.dev
Prevent DOM-based cross-site noscripting vulnerabilities with Trusted Types | Articles | web.dev
Introducing Trusted Types: a browser API to prevent DOM-based cross-site noscripting in modern web applications.
Для тех, кто хочет искать memory corruption в Safari, но не знает, как начать, в моем архиве еще с декабря завалялся хороший 101 tutorial: http://www.auxy.xyz/tutorial/Webkit-Exp-Tutorial/.
Ну и в догонку поделюсь обновляемой подборкой материалов по всем браузерам (тут про архитектуру, pwn браузеров в рамках ctf и про разные тулзы): https://github.com/m1ghtym0/browser-pwn.
Ну и в догонку поделюсь обновляемой подборкой материалов по всем браузерам (тут про архитектуру, 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.
Мораль - анализируйте фиксы, не всегда так страшна бага, как о ней пишут.
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.
Мораль - анализируйте фиксы, не всегда так страшна бага, как о ней пишут.
Chrome Releases
Stable Channel Update for Desktop
The stable channel has been updated to 72.0.3626.121 for Windows, Mac, and Linux, which will roll out over the coming days/weeks. Secur...
Появился вариант эксплойта под 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
Сама уязвимость в методе 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
GitHub
GitHub - Cryptogenic/PS4-6.20-WebKit-Code-Execution-Exploit: A WebKit exploit using CVE-2018-4441 to obtain RCE on PS4 6.20.
A WebKit exploit using CVE-2018-4441 to obtain RCE on PS4 6.20. - Cryptogenic/PS4-6.20-WebKit-Code-Execution-Exploit
Ещё одна интересная подборка PoC’ов под memory corruption уязвимости в V8 и ChakraCore (2013 - 2019): https://github.com/tunz/js-vuln-db.
GitHub
GitHub - tunz/js-vuln-db: A collection of JavaScript engine CVEs with PoCs
A collection of JavaScript engine CVEs with PoCs. Contribute to tunz/js-vuln-db development by creating an account on GitHub.
Exodus Intelligence написали крутую статью про анализ CVE-2019-5786:
https://blog.exodusintel.com/2019/02/20/cve-2019-5786-analysis-and-exploitation/
Код эксплойта тоже есть (работает только с —no-sandbox):
https://github.com/exodusintel/CVE-2019-5786
https://blog.exodusintel.com/2019/02/20/cve-2019-5786-analysis-and-exploitation/
Код эксплойта тоже есть (работает только с —no-sandbox):
https://github.com/exodusintel/CVE-2019-5786
Exodus Intelligence
CVE-2019-5786: Analysis & Exploitation of the recently patched Chrome vulnerability
This post provides detailed analysis and an exploit achieving remote code execution for the recently fixed Chrome vulnerability that was observed by Google to be exploited in the wild.
На этой неделе Samuel Groß из Project Zero выложил в сoverage guided фаззер для JS движков FuzzIL: https://github.com/googleprojectzero/fuzzilli.
Почитать подробнее о нем можно тут: https://saelo.github.io/presentations/offensivecon_19_fuzzilli.pdf
Теперь у Domato (https://github.com/googleprojectzero/domato) и других DOM и JS фаззеров есть серьезный конкурент.
Почитать подробнее о нем можно тут: https://saelo.github.io/presentations/offensivecon_19_fuzzilli.pdf
Теперь у Domato (https://github.com/googleprojectzero/domato) и других DOM и JS фаззеров есть серьезный конкурент.
GitHub
GitHub - googleprojectzero/fuzzilli: A JavaScript Engine Fuzzer
A JavaScript Engine Fuzzer. Contribute to googleprojectzero/fuzzilli development by creating an account on GitHub.
Выложили описание довольно забавной sandbox escape уязвимости для macOS High Sierra 10.13.6.
Суть ее в том, что процесс без сендбокса может вызвать функцию CFPreferencesSetAppValue() и этим закэшировать свой статус у cfprefsd (обозначив себя как процесс без песочницы). Этот демон отвечает за обработку preferences. Таким образом, даже ограниченный процесс может потом менять свои свойства.
Забавно то, что это выстрелило для Safari, который в момент инициализации процесса рендерера не сразу погружает процесс в песочницу.
Детали эксплуатации и демо есть тут:
https://medium.com/0xcc/one-liner-safari-sandbox-escape-exploit-91082ddbe6ef
Суть ее в том, что процесс без сендбокса может вызвать функцию CFPreferencesSetAppValue() и этим закэшировать свой статус у cfprefsd (обозначив себя как процесс без песочницы). Этот демон отвечает за обработку preferences. Таким образом, даже ограниченный процесс может потом менять свои свойства.
Забавно то, что это выстрелило для Safari, который в момент инициализации процесса рендерера не сразу погружает процесс в песочницу.
Детали эксплуатации и демо есть тут:
https://medium.com/0xcc/one-liner-safari-sandbox-escape-exploit-91082ddbe6ef
Firefox по итогам Pwn2own 2019 уже выкатила фиксы для найденных уязвимостей: https://www.mozilla.org/en-US/security/advisories/mfsa2019-09/
Фиксы CVE-2019-9810: https://github.com/mozilla/gecko-dev/commit/601d226fe3690ff57287580431fd9a937298be80, https://github.com/mozilla/gecko-dev/commit/752be3958fc6f6eb83eaa4a35fae1a99dc54746e.
Фикс CVE-2019-9813: https://github.com/mozilla/gecko-dev/commit/369406707f9fef96ac8405fb9cbb58da4bcc4f1dб.
P.S. Они отлично находятся путем поиска по Bug ID в https://github.com/mozilla/gecko-dev/
Фиксы CVE-2019-9810: https://github.com/mozilla/gecko-dev/commit/601d226fe3690ff57287580431fd9a937298be80, https://github.com/mozilla/gecko-dev/commit/752be3958fc6f6eb83eaa4a35fae1a99dc54746e.
Фикс CVE-2019-9813: https://github.com/mozilla/gecko-dev/commit/369406707f9fef96ac8405fb9cbb58da4bcc4f1dб.
P.S. Они отлично находятся путем поиска по Bug ID в https://github.com/mozilla/gecko-dev/
Mozilla
Security vulnerabilities fixed in Firefox 66.0.1
Исследователи из DrWeb обнаружили проблему в механизме обновления отдельных библиотек UcBrowser, который делал это по http вместо https, надеясь на собственный протокол шифрования. Подпись устанавливаемых с сервера библиотек не проверялась. Это позволяло с помощью MitM’а загружать и выполнять свой код на Android устройствах пользователей.
Видео с демонстрацией: https://youtu.be/Nfns7uH03J8
Полное описание проблемы тут:
https://vms.drweb.ru/search/?q=UC%20Browser
Видео с демонстрацией: https://youtu.be/Nfns7uH03J8
Полное описание проблемы тут:
https://vms.drweb.ru/search/?q=UC%20Browser
YouTube
UC Browser MITM demo
Появились слайды с Zer0con про устройство и уязвимости TurboFan - JavaScript компилятора в V8.
https://docs.google.com/presentation/d/1DJcWByz11jLoQyNhmOvkZSrkgcVhllIlCHmal1tGzaw
https://docs.google.com/presentation/d/1DJcWByz11jLoQyNhmOvkZSrkgcVhllIlCHmal1tGzaw
Google Docs
A guided tour through Chrome's javanoscript compiler
A guided tour through Chrome's javanoscript compiler sroettger@google.com / @_tsuro
Появился PoC для use after free под FireFox (CVE-2018-18500). Интересно в нем то, что он использует задержку по времени ответа со стороны веб-сервера.
https://github.com/sophoslabs/CVE-2018-18500/
https://github.com/sophoslabs/CVE-2018-18500/
GitHub
GitHub - sophoslabs/CVE-2018-18500: PoC for CVE-2018-18500 - Firefox Use-After-Free
PoC for CVE-2018-18500 - Firefox Use-After-Free. Contribute to sophoslabs/CVE-2018-18500 development by creating an account on GitHub.
Ребята из Google выложили первоклассное и наиболее полное исследование про Uxss в Chromium.
Там есть про причины появления таких уязвимостей, описаны способы исправления, хардеринги и фаззинг.
Читать тут: https://storage.googleapis.com/pub-tools-public-publication-data/pdf/f5a8289d4f69e9e34b38a1e7c05ef4818b22cd5b.pdf
Там есть про причины появления таких уязвимостей, описаны способы исправления, хардеринги и фаззинг.
Читать тут: https://storage.googleapis.com/pub-tools-public-publication-data/pdf/f5a8289d4f69e9e34b38a1e7c05ef4818b22cd5b.pdf
ZDI поделилась PoC’ами для уязвимостей в FireFox, найденных в ходе Pwn2Own 2019 (CVE-2019-9810 и CVE-2019-9813).
https://www.thezdi.com/blog/2019/4/18/the-story-of-two-winning-pwn2own-jit-vulnerabilities-in-mozilla-firefox
А ещё подробное описание 9813 можно найти тут:
https://bugs.chromium.org/p/project-zero/issues/detail?id=1810
https://www.thezdi.com/blog/2019/4/18/the-story-of-two-winning-pwn2own-jit-vulnerabilities-in-mozilla-firefox
А ещё подробное описание 9813 можно найти тут:
https://bugs.chromium.org/p/project-zero/issues/detail?id=1810
Zero Day Initiative
Zero Day Initiative — The Story of Two Winning Pwn2Own JIT Vulnerabilities in Mozilla Firefox
Every year some of the greatest security researchers around the globe gather together for the Pwn2Own event to demonstrate their skills by compromising widely used applications. This year’s event recently completed and did not disappoint. On the second…
Ребята из Project Zero выложили пост про технику sandbox escaping’a в Chromium через MojoJs биндинги:
https://googleprojectzero.blogspot.com/2019/04/virtually-unlimited-memory-escaping.html?m=0
Хорошая иллюстрация того, что выйти из песочницы у современного Chromium’а не так-то просто. Нужен arbitary read/write, несколько видов спреинга разными объектами и rop.
Полный код fullchain сплойта на базе CVE-2019-5782 можно посмотреть тут: https://bugs.chromium.org/p/project-zero/issues/detail?id=1755#c3
https://googleprojectzero.blogspot.com/2019/04/virtually-unlimited-memory-escaping.html?m=0
Хорошая иллюстрация того, что выйти из песочницы у современного Chromium’а не так-то просто. Нужен arbitary read/write, несколько видов спреинга разными объектами и rop.
Полный код fullchain сплойта на базе CVE-2019-5782 можно посмотреть тут: https://bugs.chromium.org/p/project-zero/issues/detail?id=1755#c3
Blogspot
Virtually Unlimited Memory: Escaping the Chrome Sandbox
Posted by Mark Brand, Exploit Technique Archaeologist. Introduction After discovering a collection of possible sandbox escape vulnerab...
Еще одна атака с использованием CSS была в FF. Интересно то, что благодаря HTTP/2 эксплойт срабатывает очень быстро, без необходимости держать пользователя на странице.
https://research.securitum.com/css-data-exfiltration-in-firefox-via-single-injection-point/
https://research.securitum.com/css-data-exfiltration-in-firefox-via-single-injection-point/
research.securitum.com
CSS data exfiltration in Firefox via a single injection point - research.securitum.com
A few months ago I identified a security issue in Firefox known as CVE-2019-17016. During analysis of the issue, I’ve come up with a new technique of CSS data exfiltration in Firefox via a single injection point which I’m going to share in this blog post.
Забавный, но действенный шаг. Многие сайты собирают информацию о браузере и окружении (WebRTC, Canvas и вот это вот все, например, с помощью популярной fingerprintjs). Но браузер Brave решил генерить фингерпринты на лету и из коробки.
https://brave.com/whats-brave-done-for-my-privacy-lately-episode3/
https://brave.com/whats-brave-done-for-my-privacy-lately-episode3/
Brave
Fingerprint randomization | Brave
Brave now protects users from being fingerprinted by making them appear subtly different to each website. Browser fingerprinting protection is available today in our Nightly version. These new protections both provide the strongest fingerprinting protections…
Сафари крутой!
Можно было сделать кнопку «Поделиться», отправив ссылку другу, а на деле прикрепив локальные файлы 🤷🏻♂️
https://blog.redteam.pl/2020/08/stealing-local-files-using-safari-web.html
Можно было сделать кнопку «Поделиться», отправив ссылку другу, а на деле прикрепив локальные файлы 🤷🏻♂️
https://blog.redteam.pl/2020/08/stealing-local-files-using-safari-web.html
blog.redteam.pl
Stealing local files using Safari Web Share API
red team, blue team, penetration testing, red teaming, threat hunting, digital forensics, incident response, cyber security, IT security
А в хроме недавно можно было обойти CSP, используя гонку в JS.
https://www.perimeterx.com/tech-blog/2020/csp-bypass-vuln-disclosure/
https://www.perimeterx.com/tech-blog/2020/csp-bypass-vuln-disclosure/
HUMAN Security
Blog | HUMAN Security
Check out the latest HUMAN Blogs for expert insights and industry expertise on digital threats.
Тут состряпали 1day эксплойт на CVE-2020-6507: Out of bounds write in V8.
Chrome <= 83.0.4103.61
https://github.com/r4j0x00/exploits/tree/master/chrome-exploit
Chrome <= 83.0.4103.61
https://github.com/r4j0x00/exploits/tree/master/chrome-exploit