Br0wSec
749 subscribers
4 photos
84 links
Browser security channel (RU)
Download Telegram
Channel created
Channel name was changed to «BrowSec»
Channel name was changed to «Br0wSec»
А тем временем ребята из Theori зарелизили библиотеку pwn.js, которая облегчает написание эксплойтов для MS Edge: https://github.com/theori-io/pwnjs
Если вы только начинаете изучать безопасность в браузерах, обязательно изучите https://browser-security.x41-dsec.de/X41-Browser-Security-White-Paper.pdf и https://cure53.de/browser-security-whitepaper.pdf
Пока мы все были на ZN 2017, команда Chrome представила отчёт об улучшении старых и создании новых фичей безопасности за последний год: https://blog.google/products/chrome/reflecting-years-worth-chrome-security-improvements/.
На фоне хайпа с сайд-ченнел багой в Chromium 64 выкатывается набор фиксов, снижающих вероятность эксплуатации баги: https://www.chromium.org/Home/chromium-security/ssca. То же самое сделали и MS: https://blogs.windows.com/msedgedev/2018/01/03/speculative-execution-mitigations-microsoft-edge-internet-explorer/ с теми же самыми исправлениями: отключение SharedArrayBuffer и тюнинг performance.now()
Набор фиксов для Meltdown и Spectre в Chromium'е можно наблюдать в коммитах: https://chromium.googlesource.com/chromium/src/+/953bf5bfd1957a9c6c123d8dfc59254dcd7bb956
(патч perfomance.now()), https://chromium.googlesource.com/chromium/src/+/62fc5a081ba836bf4983f3b3ff4ec08382ac4c25 (отключение SharedBuffers по умолчанию)
А тем временем WebKit заявил еще и о новых фиксах для Spectre и Meltdown, в частности, в Safari есть доп. защита от спекулятивного исполнения в виде 2-х техник: Index masking и Pointer poisoning, подробности тут: https://webkit.org/blog/8048/what-spectre-and-meltdown-mean-for-webkit/
В MS Edge также появились нужные фиксы (что не новость), коммиты, но я пока что нашел только исправление с отключением SharedArrayBuffer: https://github.com/Microsoft/ChakraCore/pull/4503/commits/ee2538d7b38be8093d9c9341d761d4e8267050bc
Кстати, по ссылке еще целый ряд интересных исправлений безопасности =)
DOM XSS, вектор которых был через location.hash, похоже, умрет в Chrome начиная с 65 версии. Теперь, hash как часть URL будет в urlencode.
Получил в личку ряд вопросов о том, как именно от Spectre помогает режим strict site isolation.
Все просто - если включить этот режим, в хромиуме перестает работать SharedArrayBuffer.
Можете проверить сами:
1. включите на 63 хромиуме strict site isolation chrome://flags/#enable-site-per-process;
2. запустите тестовый PoC отсюда: https://github.com/ascendr/spectre-chrome, либо отсюда: http://xlab.tencent.com/special/spectre/spectre_check.html.

P.S. Если вдруг проверка не удалась, попробуйте удалить UserData, скорее всего вам уже прилетело отключение SharedArrayBuffer через конфиг экспериментов.
В добавление к предыдущему посту. Конечно же, помимо фикса SharedArrayBuffer в режиме strict site isolation очень важным является и то, что данные от разных сайтов (которые могут попасть в процесс вкладки за счёт наличия на сайте frame’ов и frameset’ов) будут жить в разных процессах, что не позволит аткующему их украсть через Spectre. Если бы для исправления хватало только отключения SharedBuffer, его можно было бы сделать через отдельный флаг chrome://flags/#shared-array-buffer.
Спасибо @xima_era за то, что обратил на это внимание!
Отличные нововости для любителей огненной лисы!
15 января в своем блоге Mozilla объявила о том, что все новые фичи, взаимодействующие с веб-ресурсами, должны работать по умолчанию только в защищенных контекстах (secure context). В исключения попадают фичи, которые другие браузеры уже реализовали в незащищенном контексте, либо которые реализовать в защищенном контексте очень сложно. Прочитать про это можно тут: https://blog.mozilla.org/security/2018/01/15/secure-contexts-everywhere/.

Для справки. Под контекстом в браузерах подразумевается среда исполнения, в которой существует объект Document (т.е. по сути это window-объект, который пораждается новой вкладкой, iframe'ом или frameset'ом). Защищенным контекстом называется контекст, в котором передача исполняемого кода идет зашифрованному и аутентифицированному каналу (т.е. по https). Подробнее про это можно почитать тут: https://w3c.github.io/webappsec-secure-contexts.
ProjectZero раскрыл детали по двум новым и интересным memory corruption уязвимостям в Ms Edge. На этот раз это out of bounds write в Chakra Jit (CVE-2018-0777 и CVE-2018-0769), детали и PoCи есть по ссылкам: https://bugs.chromium.org/p/project-zero/issues/detail?id=1429, https://bugs.chromium.org/p/project-zero/issues/detail?id=1390. А также out of bounds read в ChakraAsmJs (CVE-2018-0780): https://bugs.chromium.org/p/project-zero/issues/detail?id=1433. Это то, что было исправлено MS в январе.
В продолжение утренней темы, ознакомиться с примерами уязвимостей в Chakra, которые были найдены Project Zero за 2016 и 2017, можно по ссылке: https://bugs.chromium.org/p/project-zero/issues/list?can=1&q=chakra. Спасибо, loki и natashenka!