La compañía Mozilla ha anunciado el inicio de pruebas masivas en las versiones nocturnas y beta de Firefox para el modo de estricta aislamiento de sitios, que se ha desarrollado en el marco del proyecto Fission. Este modo amplía la aplicación de la arquitectura multiproceso: en lugar de un grupo fijo de procesos, se crea un proceso separado para cada sitio. El control para activar el modo Fission se gestiona a través de la variable «fission.autostart=true» en about:config o en la página about:preferences#experimental.
Recordemos que el modelo multiproceso utilizado en Firefox hasta ahora implicaba el lanzamiento de un grupo de procesos de manejadores: por defecto 8 procesos principales para el procesamiento de contenido, 2 procesos adicionales no privilegiados para contenido web y 4 procesos auxiliares para complementos, interacción con la GPU, operaciones de red y decodificación de datos multimedia. La distribución de las pestañas entre los procesos se hacía de manera aleatoria, por ejemplo, en un mismo proceso podrían estar el procesamiento del sitio del banco y un recurso dudoso sin reputación.
El nuevo modo separa el procesamiento de cada sitio en un proceso diferente, dividiendo no por pestañas, sino por dominios, lo que permite aislar adicionalmente el contenido de scripts externos y bloques iframe. Para el procesamiento separado de subdominios de servicios comunes relacionados con diferentes sitios, se aplica una separación no por formas formales, sino por hechos (eTLD). dominios de nivel superior, que están marcados en la lista Public Suffix (es decir, los sitios «a.github.io» y «b.github.io» se ubicarán en procesos diferentes).
El modo de estricta aislamiento permite protegerse contra ataques por canales secundarios, por ejemplo, relacionados con vulnerabilidades de la clase Spectre, que conducen a filtraciones de información dentro de un mismo proceso. La filtración de datos confidenciales procesados en el mismo proceso es posible al ejecutar código externo no confiable en motores con JIT y en máquinas virtuales. En el contexto de los navegadores web, el código JavaScript malicioso de un sitio puede obtener información sobre contraseñas, claves de acceso y números de tarjetas de crédito ingresados en otro sitio que se procesa en el mismo proceso. Inicialmente, para protegerse contra ataques a través de canales laterales, los desarrolladores de navegadores limitaron la precisión del temporizador y bloquearon el acceso a la API SharedArrayBuffer, pero estas medidas solo complicaban y ralentizaban la realización de ataques (por ejemplo, recientemente se propuso un método para extraer datos de la caché de la CPU que funciona sin JavaScript en absoluto).
Entre las otras ventajas del modo de estricta aislamiento se menciona la reducción de la fragmentación de memoria, la devolución más eficiente de memoria al sistema operativo, la minimización del impacto de la recolección de basura y cálculos intensivos en páginas en otros procesos, el aumento de la eficiencia en la distribución de carga en los diferentes núcleos de la CPU, y una mayor estabilidad (el bloqueo del proceso que maneja el iframe no arrastrará consigo al sitio principal y otras pestañas).
Entre los problemas conocidos que surgen al usar Fission se destaca el aumento notable en el consumo de memoria, conexiones X11 y descriptores de archivos al abrir un gran número de pestañas, así como la interrupción del funcionamiento de ciertos complementos, la desaparición del contenido del iframe al imprimir y al usar la función de captura de pantalla, la disminución de la eficiencia en el almacenamiento en caché de documentos con iframe, y la pérdida de contenido en formularios completados pero no enviados al recuperar la sesión tras un bloqueo.
Fuente: opennet.ru
