Ahount

Tu portal de tecnología

Si se inhabilita el aislamiento de sitios en Google Chrome

A estas alturas, seguramente ya habrá oído hablar de «Spectre», el ominoso fallo de seguridad que afecta a casi todas las CPU modernas. Y con razón, ya que la vulnerabilidad gira en torno a aplicaciones y sitios web nefastos que acceden a datos desde áreas donde realmente no deberían. Para hacer frente a este problema específicamente, los navegadores han desarrollado varios mecanismos de seguridad, y una de esas implementaciones específicas de Chrome es el aislamiento de sitios.

Introducido por primera vez en Chrome v63 como una característica de seguridad opcional, el Aislamiento de Sitios ahora se ejecuta por defecto desde la versión 67. Técnicamente hablando, es bastante hábil en mitigar los ataques de ejecución especulativa (en los que Spectre está basado) debido a los procesos en caja de arena que utiliza.

Pero como todo lo bueno, tiene un precio, para ser específicos, el rendimiento. Por lo tanto, ¿la desactivación de Site Isolation mejoraría el funcionamiento de Chrome? ¿Vale la pena el compromiso con la seguridad? Averigüémoslo.

Aislamiento de Espectros y Sitios

Al igual que cualquier otro navegador, Google Chrome permite abrir varios sitios web mediante diferentes pestañas. Antes de la implementación del Aislamiento de Sitios, las pestañas solían compartir procesos comunes, lo cual tiene sentido ya que la duplicación de tareas sería un desperdicio de los recursos del sistema. Sin embargo, esta es una situación ideal para que se produzca un ataque malicioso basado en un diseño de CPU defectuoso – Spectre.

Los microprocesadores modernos utilizan la ejecución especulativa para pre-cargar datos de la memoria del sistema en el caché de la CPU, que es considerablemente más rápido, como medio para mejorar el rendimiento general. Sin embargo, esto ofrece una oportunidad única para que el código malicioso incite a la CPU a recuperar datos sensibles en su caché mediante la explotación de procesos compartidos. Una vez que los datos están en el caché de la CPU, se dejan desprotegidos (en contraste con la memoria del sistema) y pueden ser robados fácilmente.

Supongamos que tienes un par de pestañas abiertas – una con tu cuenta bancaria, y la otra con algún sitio al azar. En teoría, la última, siempre que tenga intenciones maliciosas, puede bucear en la caché de la CPU utilizada por la primera pestaña, y luego cargar y leer información que va desde los detalles de inicio de sesión hasta las claves criptográficas.

Aunque es bastante difícil imaginar que un incidente de este tipo tenga lugar debido a la limitada caché de la CPU (que es sólo una fracción diminuta en comparación con la memoria del sistema). En cambio, el código malicioso determina exactamente qué datos robar comparando la diferencia entre las velocidades de acceso de la CPU. Después de todo, si las cosas son más rápidas de lo normal, entonces eso es causado por los datos que están en el caché de la CPU ya por una especulación precisa.

Al descubrir la vulnerabilidad de Spectre, los navegadores empezaron a utilizar varias soluciones alternativas (como temporizadores de menor resolución para reducir la precisión de la determinación de las velocidades de acceso a la CPU) para lanzar ataques dirigidos. Sin embargo, no son un medio perfecto para contrarrestar las amenazas basadas en Spectre, de ahí la razón del aislamiento del sitio.

El aislamiento del sitio, como su nombre lo indica, aísla completamente las pestañas entre sí creando procesos separados para todos los iframes (enlaces externos incrustados), incluyendo aquellos que son comunes a otras pestañas. Dado que los procesos compartidos desempeñan un papel importante en la ayuda al código malicioso al supervisar y leer la información de otras pestañas, el uso de procesos independientes por parte de Site Isolation funciona bien para mitigar dichas vulnerabilidades.

Si examinamos nuestro ejemplo anterior, con el Aislamiento de sitios activado, el portal de su cuenta bancaria se ejecuta en un proceso completamente distinto y no comparte nada con la otra pestaña. Este «aislamiento» reduce al mínimo la posibilidad de robar información en caso de infracción.

Incremento de la memoria de sobrecarga

Por lo tanto, debe preguntarse si el aislamiento del sitio tiene un costo para el rendimiento debido a la memoria adicional del sistema utilizada por cada proceso independiente – pestaña del navegador. De acuerdo con el Blog de Seguridad en Línea de Google, la implementación de la seguridad utiliza hasta un 10-13% más de RAM que si la característica no está activa en primer lugar. Eso significa que es mejor que lo habilites.

Comprobemos la exactitud de esta cifra en la práctica. Sin el Aislamiento de Sitios habilitado, la captura de pantalla de abajo muestra un par de sitios web que usan muchos iframes similares. Sólo las dos pestañas tienen tareas en curso separadas, sin procesos independientes para ninguno de los iframes.

Nota: Las capturas de pantalla se muestran usando el Administrador de Tareas integrado de Chrome. Para acceder a él, abre el menú de Chrome, apunta a Más Herramientas y luego haz clic en Administrador de Tareas.

El mismo par de pestañas, con el Aislamiento del Sitio activado, se muestran en la siguiente captura de pantalla. Como puede ver, hay un incremento significativo en el número de procesos adicionales debido a los iframes utilizados por cada sitio. Además, los procesos similares se dividen en dos para mitigar las posibilidades de un ataque de ejecución especulativa exitoso. Si se hacen las cuentas (sin tener en cuenta las tareas del navegador y del proceso de la GPU), ambos sitios terminan utilizando alrededor de un 33% más de memoria.

El uso de la memoria está muy por encima de lo que indica Google. Sin embargo, considere la cifra de 10-13% más de un promedio a largo plazo. Los sitios, e incluso las páginas web individuales, difieren en el número de procesos y en la memoria requerida de vez en cuando. Por lo tanto, el escenario anterior puede ser considerado más bien como un atípico.

Independientemente de ello, el aislamiento del sitio resulta en un aumento moderado, o en este caso, significativo, de la sobrecarga de memoria.

Seguridad vs. Rendimiento

La desactivación de Site Isolation resulta en una disminución del uso de la memoria y posiblemente aumenta el rendimiento en los dispositivos de gama baja. Sin embargo, Chrome es bastante hábil en la gestión de la memoria disponible mediante la suspensión de las pestañas no utilizadas. Teniendo en cuenta que el uso de la memoria varía drásticamente de un sitio a otro, no hay una respuesta definitiva. En los dispositivos con una alta memoria del sistema, las diferencias en el rendimiento deberían ser insignificantes.

Consejo: Además, también puedes encargarte de gestionar manualmente las pestañas de la memoria atascada con el uso de extensiones como The Great Discarder y The Great Suspender.

Pero aquí está el truco. Debido a la implementación del Aislamiento de Sitios, se supone que Chrome debe abandonar las contramedidas preexistentes contra los ataques de Spectre a lo largo del tiempo. Por lo tanto, desactivarlo va a causar aún más exposición a los ataques maliciosos.

Considerando los dos, las vulnerabilidades potenciales causadas por Spectre, combinadas con el uso cada vez mayor de datos personales, hacen que desactivar el aislamiento del sitio sea una mala idea. A menos que esté navegando en una máquina de gama baja y no haga uso de datos personales en absoluto, sólo entonces debería considerar la posibilidad de desactivar esta característica de seguridad vital.

Desactivando el aislamiento del sitio

Desactivar el aislamiento del sitio expone a su equipo a importantes amenazas de seguridad. Sin embargo, si desea seguir adelante y desactivar la función, a continuación se indican los pasos específicos para hacerlo.

Advertencia: Con el Aislamiento del Sitio desactivado, absténgase de utilizar datos personales de navegación en cualquier sitio web. Lo mismo ocurre con el almacenamiento de información sensible en Chrome, como las contraseñas.

Paso 1: En una nueva pestaña, escribe chrome://flags, y luego presiona Enter para acceder a las banderas experimentales de Chrome.

Paso 2: Escriba Site Isolation en la barra de búsqueda, y luego presione Enter.

Paso 3: Deberías ver dos banderas de Chrome etiquetadas como Strict Site Isolation y Site Isolation Trial Opt Out.

  • Ponga la bandera de Aislamiento estricto del sitio en Desactivado. Algunos dispositivos específicos pueden tener esto establecido como Desactivado por defecto – si ese es el caso, no haga nada.
  • Establezca la bandera de Prueba de Aislamiento de Sitios en Opt-Out (No recomendado).

A continuación, haga clic en Relanzar ahora para aplicar los cambios.

Paso 5: El aislamiento del sitio está ahora desactivado. Para verificarlo, teclea chrome://process-internals en una nueva pestaña y luego pulsa Intro.

El Modo de Aislamiento del Sitio debe leerse como Desactivado para denotar confirmación. Para habilitar el Aislamiento de Sitios en un momento posterior, regrese y cambie las banderas a como estaban antes, y reinicie Chrome.