A Mozilla anunciou o início de testes em larga escala nas versões noturnas e beta do Firefox no modo de estrita isolamento de sites, desenvolvido no âmbito do projeto Fission. Este modo expande a aplicação da arquitetura multiprocessada — em vez de um pool fixo de processos, um processo separado é criado para cada site. A ativação do modo Fission é feita através da variável "fission.autostart=true" em about:config ou na página about:preferences#experimental.
Vale lembrar que o modelo multiprocessado usado no Firefox até agora implicava na execução de um pool de processos manipuladores: por padrão, 8 processos principais para processamento de conteúdo, 2 processos adicionais não privilegiados para web e 4 processos auxiliares para complementos, interação com GPU, operações de rede e decodificação de dados multimídia. A distribuição de guias entre os processos era feita de maneira aleatória, por exemplo, um processo poderia lidar com o site de um banco e um recurso duvidoso.
O novo modo aloca o processamento de cada site em um processo separado, dividindo não por guias, mas por domínios, o que permite isolar ainda mais o conteúdo de scripts externos e blocos iframe. Para o processamento separado de subdomínios de serviços típicos relacionados a diferentes sites, aplica-se a divisão não por formalidades, mas por realidades (eTLD). domínios de nível superior, marcados na lista Public Suffix (ou seja, os sites "a.github.io" e "b.github.io" serão alocados em processos diferentes).
O modo de estrita isolamento permite proteção contra ataques por canais laterais, por exemplo, relacionados a vulnerabilidades do tipo Spectre, que podem levar ao vazamento de informações dentro de um único processo. O vazamento de dados confidenciais processados no mesmo processo pode ocorrer durante a execução de código externo duvidoso em motores com JIT e em máquinas virtuais. No contexto dos navegadores web, códigos JavaScript maliciosos de um site podem obter informações sobre senhas, chaves de acesso e números de cartões de crédito inseridos em outro site, que está sendo processado no mesmo processo. Inicialmente, para proteger contra ataques de canal lateral, os desenvolvedores de navegadores limitaram a precisão do temporizador e bloquearam o acesso à API SharedArrayBuffer, mas essas medidas apenas dificultavam e tornavam mais lentos os ataques (por exemplo, recentemente foi proposto um método para extrair dados do cache da CPU que funciona sem JavaScript).
Entre outras vantagens do modo de estrita isolação, menciona-se a redução da fragmentação de memória, uma devolução mais eficiente da memória ao sistema operacional, a minimização do impacto da coleta de lixo e de cálculos intensivos em páginas de outros processos, o aumento da eficiência na distribuição de carga entre diferentes núcleos de CPU e a melhoria da estabilidade (a falha do processo que manipula um iframe não comprometerá o site principal e outras abas).
Entre os problemas conhecidos que surgem com o uso do Fission, destaca-se o aumento notável no consumo de memória, conexões X11 e descritores de arquivos ao abrir um grande número de abas, bem como a falha de algumas extensões, a perda de conteúdo de iframes ao imprimir e ao chamar a função de captura de tela, a diminuição da eficiência no cache de documentos com iframes, e a perda do conteúdo de formulários preenchidos, mas não enviados, ao restaurar a sessão após uma falha.
Fonte: opennet.ru
