Браузеры и app specific security mitigation. Google Chrome

Мы продолжаем цикл статей о механизмах защиты браузеров от эксплойтов. Давайте заглянем под капот браузера Chrome и выясним, что есть в его анти-эксплоит арсенале.

Мы рассмотрим внутренние механизмы браузера:
  • Аллокатор PartitionAlloc: позволяет разнести объекты разных размеров и типов по разным хипам, тем самым урезав возможности атакующего в выборе объектов-кандидатов на освобождённую память. Помогает ловить heap over/underflow-ы как внутри самого хипа, так и на его границах. Подробнее — далее.
  • Трассирующий сборщик мусора для C++ — Oilpan.
  • JIT-компилятор Jav * aScript: включает в себя ряд механизмов, затрудняющих его использование для генерации элементов эксплойта.
  • Sandbox: система безопасности браузера, предназначенная для снижения ущерба от компрометации его компонентов. 
Сильная сторона Chrome — это, конечно, песочница. Здесь мы видим широкий набор способов ограничения полномочий для смягчения последствий эксплуатации уязвимостей в кодовой базе рендерера. Набор этих способов зависит от того, что предлагает нам операционная система, в свежих версиях Windows было добавлено много нового и интересного. Кроме того, большое внимание уделено управлению динамической памятью, которая остаётся на заднем плане при создании новых фич браузера для современного веба, но имеет первостепенное значение с точки зрения безопасности. Разработчики внедрили прогрессивную систему сборки мусора и получили новые свойства среды, в которой исполняются компоненты браузера, не характерные для обычных C++ приложений.

Полный текст исследования можно почитать в нашем блоге на Хабре или скачать здесь:
PDFСкачать исследование, 1,3 МБ ← Вернуться к списку
Оставить заявку