PDA

Просмотр полной версии : Компания Mozilla представила режим строгой изоляции сайтов для Firefox


Suicide
18.05.2021, 23:24
Компания Mozilla объявила (https://blog.mozilla.org/security/2021/05/18/introducing-site-isolation-in-firefox/) о начале массового тестирования в ночных сборках и бета-выпусках Firefox режима строгой изоляции сайтов, развивавшегося в рамках проекта Fission (https://www.opennet.ru/opennews/art.shtml?num=50106). Режим расширяет применение многопроцессной архитектуры - вместо фиксированного пула процессов, в отдельный процесс выносится обработка каждого сайта. Управление включением режима Fission осуществляется через переменную "fission.autostart=true" в about:config или на странице aboutreferences#experimental.

Напомним, что применяемая в Firefox до настоящего времени многопроцессная модель подразумевала запуск пула процессов-обработчиков: по умолчанию 8 основных процессов для обработки контента, 2 дополнительных непривилегированных процесса для web-контента и 4 вспомогательных процесса для дополнений, взаимодействия с GPU, сетевых операций и декодирования мультимедийных данных. Распределение вкладок по процессам производилось произвольно, например, в одном процессе могла оказаться обработка сайта банка и не заслуживающего доверия сомнительного ресурса.

Новый режим выносит (https://hacks.mozilla.org/2021/05/introducing-firefox-new-site-isolation-security-architecture/) в отдельный процесс обработку каждого сайта с разделением не по вкладкам, а по доменам, что позволяет дополнительно изолировать содержимое внешних скриптов и iframe-блоков. Для раздельной обработки поддоменов типовых сервисов, связанных с разными сайтами, применяется разделение не по формальным, а по фактическим (eTLD) доменам верхнего уровня, отмеченным в списке Public Suffix (https://github.com/publicsuffix/list) (т.е. сайты "a.github.io" и "b.github.io" будут вынесены в разные процессы).

Режим строгой изоляции позволяет защититься от атак по сторонним каналам, например, связанными с уязвимостями класса Spectre, приводящими (https://www.opennet.ru/opennews/art.shtml?num=54751) к утечке информации внутри одного процесса. Утечка обрабатываемых в том же процессе конфиденциальных данных возможна при выполнении не заслуживающего доверия внешнего кода в движках с JIT и в виртуальных машинах. В контексте web-браузеров вредоносный JavaScript-код с одного сайта может получить сведения о паролях, ключах доступа и номерах кредитных карт, введённых на другом сайте, обрабатываемом в том же процессе. Первоначально для защиты от атак по сторонним каналам разработчики браузеров ограничили точность таймера и блокировали доступ к API SharedArrayBuffer, но данные меры лишь усложняли и замедляли проведение атаки (например, недавно был предложен метод (https://www.opennet.ru/opennews/art.shtml?num=54727) извлечения данных из кэша CPU, работающий вообще без JavaScript).

Из других достоинств режима строгой изоляции упоминается снижение фрагментации памяти, более эффективное возвращение памяти операционной системе, минимизация влияния сборки мусора и интенсивных вычислений на страницы в других процессах, повышение эффективности распределения нагрузки на разные ядра CPU, повышение стабильности (крах процесса, обрабатывающего iframe, не потянет за собой основной сайт и другие вкладки).

Среди известных проблем (https://wiki.mozilla.org/Project_Fission), возникающих при использовании Fission, отмечается заметное увеличение потребления памяти, соединений X11 и файловых дескриптров при открытии большого числа вкладок, а также нарушение работы некоторых дополнений, пропадание содержимого iframe при печати и вызове функции записи скриншота, снижение эффективности кэширования документов с iframe, потеря содержимого заполненных, но не отправленных форм при восстановлении сеанса после краха.

18.05.2021

https://www.opennet.ru/opennews/art.shtml?num=55171​