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

18 октября 2019 года

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

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

Для снижения накладных расходов режим изоляции сайтов в 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".

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Усиление изоляции между сайтами в Chrome», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.