К настоящему времени вы наверняка слышали о «Спектре», зловещем прозванном дефекте безопасности, который затрагивает почти все современные процессоры. И это правильно, так как уязвимость вращается вокруг гнусных приложений и веб-сайтов, получающих доступ к данным из областей, где они действительно не должны. Чтобы справиться с этой проблемой, браузеры разработали различные механизмы безопасности, и одной из таких специфичных для Chrome реализаций является изоляция сайта.

Впервые представленная в Chrome v63 в качестве дополнительной функции безопасности, изоляция сайта теперь работает по умолчанию, начиная с версии 67. С технической точки зрения, она вполне способна смягчить атаки со спекулятивным выполнением (на которых основан Spectre) благодаря изолированным процессам, которые она использует.
Но, как и у всего хорошего, у этого есть своя цена, а точнее, производительность. Итак, улучшит ли отключение изоляции сайта работу Chrome? Стоит ли жертвовать безопасностью? Давай выясним.
Призрак и изоляция сайта
Как и любой другой браузер, Google Chrome позволяет открывать несколько веб-сайтов, используя разные вкладки. До реализации Site Isolation вкладки использовались для совместного использования общих процессов, что имеет смысл, поскольку дублирование задач было бы пустой тратой системных ресурсов. Тем не менее, это идеальная ситуация для злонамеренной атаки, основанной на дефектной конструкции ЦП — Spectre.
Современные микропроцессоры используют спекулятивное выполнение для предварительной загрузки данных из системной памяти в значительно более быстрый кэш ЦП, что позволяет повысить общую производительность. Однако это дает уникальную возможность вредоносному коду заставить ЦП извлечь конфиденциальные данные в свой кэш, используя общие процессы. Как только данные попадают в кэш ЦП, они остаются незащищенными (в отличие от системной памяти) и могут быть легко украдены.
Предположим, у вас открыто несколько вкладок — одна с вашим банковским счетом, а другая с каким-то случайным сайтом. Теоретически последний, при условии, что он имеет злой умысел, может погрузиться в кеш ЦП, используемый первой вкладкой, а затем загрузить и прочитать информацию, начиная от данных для входа в систему и заканчивая криптографическими ключами.
Хотя довольно сложно представить такой инцидент из-за ограниченного кеша ЦП (который составляет лишь крошечную часть по сравнению с системной памятью), вредоносный код вместо этого точно определяет, какие данные нужно украсть, сравнивая разницу между скоростями доступа ЦП. В конце концов, если все происходит быстрее, чем обычно, то это вызвано тем, что данные уже находятся в кеше ЦП в результате точной спекуляции.
После обнаружения уязвимости Spectre браузеры начали использовать различные обходные пути (например, таймеры с более низким разрешением для снижения точности определения скорости доступа к процессору), чтобы предотвратить целевые атаки. Тем не менее, они не являются идеальным средством для противодействия угрозам Spectre, отсюда и причина изоляции сайта.
Изоляция сайта, как следует из названия, полностью изолирует вкладки друг от друга, создавая отдельные процессы для всех фреймов (встроенных внешних ссылок), в том числе общих для других вкладок. Поскольку общие процессы играют большую роль в отслеживании вредоносного кода и считывании информации с других вкладок, использование независимых процессов Site Isolation эффективно снижает такие уязвимости.
В нашем предыдущем примере с включенной изоляцией сайта портал вашего банковского счета работает в совершенно другом процессе и не имеет ничего похожего на другую вкладку. Такая «изоляция» сводит к минимуму возможность кражи информации в случае взлома.
Увеличение нагрузки на память
Таким образом, вы должны задаться вопросом, влияет ли изоляция сайта на производительность из-за дополнительной системной памяти, используемой каждым независимым процессом — вкладка браузера. Согласно блогу Google Online Security, реализация безопасности использует на 10-13% больше оперативной памяти, чем если бы эта функция не была активна изначально.
Проверим, насколько точна эта цифра на практике. Если функция изоляции сайтов не включена, на приведенном ниже снимке экрана показана пара веб-сайтов, использующих много похожих фреймов. Только две вкладки имеют отдельные текущие задачи, без независимых процессов для любого из фреймов.
Примечание:
Те же несколько вкладок с включенной изоляцией сайта показаны на следующем снимке экрана. Как видите, значительно увеличилось количество дополнительных процессов из-за фреймов, используемых каждым сайтом. Кроме того, аналогичные процессы дополнительно разбиваются на два, чтобы снизить вероятность успешной атаки со спекулятивным выполнением. Если вы сделаете математику (не учитывая задачи браузера и обработки графического процессора), оба сайта в конечном итоге будут использовать примерно на 33% больше памяти.
Использование памяти значительно выше заявленного Google. Однако считайте цифру на 10-13% больше средней многолетней. Сайты и даже отдельные веб-страницы различаются по количеству процессов и памяти, требуемой время от времени. Следовательно, приведенный выше сценарий можно считать исключением.
Несмотря на это, изоляция сайта приводит к умеренному или, в данном случае, к значительному увеличению нагрузки на память.
Безопасность против производительности
Отключение изоляции сайта приводит к снижению использования памяти и, возможно, повышению производительности на слабых устройствах. Однако Chrome отлично справляется с управлением доступной памятью, приостанавливая неиспользуемые вкладки. Учитывая, что использование памяти сильно различается от сайта к сайту, однозначного ответа нет. На устройствах с большим объемом системной памяти разница в производительности должна быть незначительной.
Кончик: Кроме того, вы также можете взять на себя ручное управление вкладками от засорения памяти с помощью таких расширений, как The Great Discarder и The Great Suspender.
Но вот загвоздка. Предполагается, что из-за реализации Site Isolation Chrome со временем откажется от ранее существовавших мер противодействия атакам Spectre. Следовательно, его отключение приведет к еще большей подверженности вредоносным атакам.
Взвешивая эти два фактора, потенциальные уязвимости, вызванные Spectre, в сочетании с постоянно растущим использованием персональных данных делают отключение изоляции сайта плохой идеей. Если вы не пользуетесь дешевым компьютером и не используете личные данные, только в этом случае вы должны даже подумать об отключении этой жизненно важной функции безопасности.
Отключение изоляции сайта
Отключение изоляции сайта подвергает ваш компьютер серьезным угрозам безопасности. Однако, если вы хотите продолжить и отключить эту функцию, ниже приведены конкретные шаги для этого.
Предупреждение:
Шаг 1: На новой вкладке введите chrome://flags, а затем нажмите Enter, чтобы получить доступ к экспериментальным флагам Chrome.
Шаг 2: Введите Изоляция сайта в строку поиска и нажмите Enter.
Шаг 3: Вы должны увидеть два флага Chrome с надписью Strict Site Isolation и Site Isolation Trial Opt Out.
- Установите флажок «Строгая изоляция сайта» в положение «Отключено». Для определенных устройств по умолчанию этот параметр может быть отключен — в этом случае ничего не делайте.
- Установите флаг отказа от пробной версии изоляции сайта на отказ (не рекомендуется).
Затем нажмите «Перезапустить сейчас», чтобы применить изменения.
Шаг 5: Изоляция сайта отключена. Для проверки введите chrome://process-internals в новую вкладку и нажмите Enter.
Режим изоляции сайта должен читаться как Отключено, чтобы обозначить подтверждение. Чтобы включить изоляцию сайта позже, вернитесь и измените флаги на прежние, а затем перезапустите Chrome.
Нет, это не стоит риска
Отключение важной функции безопасности Chrome, такой как изоляция сайта, для уменьшения использования памяти не гарантируется. Особенно учитывая то, как каждый сайт по-разному использует память. Таким образом, не следует стремиться к любому незначительному приросту производительности за счет потенциальной стоимости вашей личной информации. Если вы боретесь с производительностью, вы всегда можете рассмотреть возможность использования альтернативного браузера, такого как Firefox Quantum, который имеет гораздо меньший объем памяти по сравнению с Chrome, прежде чем делать что-либо опрометчивое.
