Firefox mejorará la seguridad en su versión 46 gracias a W^X

Escrito por Rubén Velasco

La mayoría de los compiladores JIT (Just in Time) utilizan los permisos RWX (lectura-escritura-ejecución) para todas las páginas de memoria. Esto mejora notablemente el rendimiento y evita una sobrecarga en el sistema ya que por defecto todas las páginas tienen los mismos permisos, evitando tener que elegir un permiso concreto para cada entrada de memoria. Tanto Firefox como Safari y Google Chrome utilizan compiladores JIT que, aunque es beneficioso en algunos aspectos, supone una baja seguridad a la hora de ejecutar, por ejemplo, código JavaScript.

Para intentar mejorar la seguridad de Firefox respecto a diferentes ataques y contra la corrupción de memoria, Mozilla ha implementado un nuevo sistema de permisos en la versión 46 de la rama Nightly: W^X.

W^X, pronunciado como “Write XOR Execute“, es una medida de seguridad que permite configurar las páginas de la memoria con los permisos de escritura o ejecución, pero nunca con ambos permisos a la vez. Esta medida de seguridad lleva presente en los sistemas operativos OpenBSD desde el año 2003.

W^X hace que todas las páginas de la memoria generadas por el código compilado por JIT sean de solo lectura y ejecución por defecto, es decir, no modificables, sin permisos de escritura. Si el navegador tiene que realizar alguna modificación en ellas, entonces se hace una llamada para que dicha página pase a tener permisos de escritura, pero a la vez se eliminarán los permisos de ejecución sobre la misma.

Cuando la tarea de escritura haya finalizado, se configurará la página con permisos de lectura y ejecución, hasta que sea necesario volver a escribir en ella.

Rendimiento de Firefox tras la inclusión del sistema de permisos W^X

Como hemos dicho, la principal razón por la que se asignan permisos RWX a las páginas de memoria es por el rendimiento, siendo este superior a tener que procesar, una a una, cada una de las páginas y cambiar sus permisos constantemente según sea necesario. Sin embargo, las pruebas realizadas en Firefox tras la inclusión de los permisos W^X han sido satisfactorias.

Según los tests de rendimiento Kraken y Octane, apenas se ha perdido un 1% de rendimiento en comparación a los permisos RWX. Otros tests de rendimiento más antiguos como SunSpider muestran una pérdida de un 4% en el rendimiento del navegador. Valores inapreciables para los usuarios que suponen un aumento más que notable en la seguridad del navegador, especialmente teniendo en cuenta la gran cantidad de ataques que se están llevando a cabo últimamente a través de lenguajes como JavaScript.

Mozilla tiene previsto incluir esta característica en las versiones 46 de cada rama de su navegador. Por lo tanto, cuando la Beta alcance la versión 46 incorporará esta medida de seguridad, al igual que cuando se libere la versión estable de Firefox 46.

¿Qué opinas de esta medida de seguridad? ¿Merece la pena sacrificar un 1% del rendimiento del navegador para mejorar la seguridad del mismo?

Quizá te interese:

Fuente > gHacks

Últimos análisis

Valoración RZ
10
Valoración RZ
8
Valoración RZ
9
Valoración RZ
9
Valoración RZ
10
Valoración RZ
9
Valoración RZ
10
Valoración RZ
7