Усиление изоляции между сайтами в Chrome

Компания Google объявила об усилении в Chrome режима межсайтовой изоляции, обеспечивающего обработку страниц с разных сайтов в отдельных изолированных процессах. Режим изоляции на уровне сайтов позволяет обезопасить пользователя от атак, которые могут быть совершены через используемые на сайте сторонние блоки, такие как внешние скрипты и iframe-вставки, или для блокирования течки данных через встраивание легитимных блоков (например, с запросами к банковским сервисам, на которых может быть аутентифицирован пользователь) на вредоносных сайтах.

При разделении обработчиков в привязке к домену, в каждом процессе находятся данные только одного сайта, что затрудняет совершение атак, направленных на межсайтовый захват данных. В настольных версиях Chrome разделение обработчиков в привязке к домену, а не вкладке, реализовано начиная с Chrome 67. В Chrome 77 подобный режим был активирован и для платформы Android.

0_1531383613.png

Для снижения накладных расходов режим изоляции сайтов в Android включается только если на странице зафиксирован вход при помощи пароля. Chrome запоминает факт использования пароля и включает защиту и для всех дальнейших обращений к сайту. Защита также применяется сразу для избранного списка предопределённых сайтов, популярных среди пользователей мобильных устройств. Выборочный метод активации и добавленные оптимизации позволили ограничить рост потребления памяти из-за увеличения числа работающих процессов в среднем на уровне 3–5%, вместо 10–13%, наблюдаемых при активации изоляции для всех сайтов.

Новый режим изоляции активирован для 99% пользователей Chrome 77 на Android-устройствах, снабжённых как минимум 2 Гб ОЗУ (для 1% пользователей режим остался отключённым для мониторинга за производительностью). Включить или отключить режим изоляции сайтов вручную можно через настройку «chrome://flags/#enable-site-per-process».

В настольной редакции Chrome вышеотмеченный режим изоляции сайтов теперь усилен для противостояния атакам, нацеленным на полную компрометацию процесса с обработчиком. Улучшенный режим изоляции позволит защитить данные сайтов от двух видов угроз: утечек данных в результате атак по сторонним каналам, таких как Spectre, и полной компрометации процесса-обработчика при успешной эксплуатации уязвимостей, позволяющих получить контроль над процессом, но не достаточных для обхода sandbox-изоляции. В Chrome для Android подобная защита будет добавлена позднее.

Суть метода в том, что управляющий процесс запоминает как какому сайту рабочий процесс имеет доступ и запрещает обращение к другим сайтам, даже если атакующий получит контроль над процессом и попытается получить доступ к ресурсам другого сайта. Ограничения охватывают ресурсы, связанные с аутентификацией (сохранённые пароли и Cookie), загружаемыми напрямую по сети данными (фильтруются и привязываются в текущему сайту HTML, XML, JSON, PDF и прочие типы файлов), данными во внутренних хранилищах (localStorage), полномочиями (выданные сайту разрешения доступа к микрофону и т.п.) и сообщениями, передаваемыми между через API postMessage и BroadcastChannel. Все подобные ресурсы связываются меткой с исходным сайтом и проверяются на стороне управляющего на предмет возможности передачи по запросу из рабочего процесса.

Из связанных с Chrome событий также можно отметить начало утверждения включения в Chrome поддержки функции Scroll-To-Text, дающей возможность формировать ссылки на отдельные слова или фразы, без явного указания в документе меток при помощи тега «a name» или свойства «id». Синтаксис подобных ссылок планируется утвердить в качестве web-стандарта, который пока находится на стадии черновика. Маска для перехода (по сути выполняется поиск с прокруткой) отделяется от обычного якоря признаком »:~:». Например, при открытии ссылки «https://opennet.ru/51702/#:~: text=Chromе» страница сдвинется на позицию с первым упоминанием слова «Chromе» и данное слово будет подсвечено. Возможность добавлена в ветку Canary, но для включения требует запуска с флагом »--enable-blink-features=TextFragmentIdentifiers».

Другим интересным предстоящим изменением в Chrome является возможность заморозки неактивных вкладок, позволяющая автоматически выгрузить из памяти вкладки, которые находятся в фоновом состоянии более 5 минут и не выполняют имеющих значение действий. Решение о пригодности той или иной вкладки для заморозки принимаются на основе эвристики. Изменение добавлено в сетку Canary, на базе которой будет сформирован выпуск Chrome 79, и включается через флаг «chrome://flags/#proactive-tab-freeze».

Источник: http://www.opennet.ru/opennews/art.shtml? num=51702

©  OpenNet