08 de abril de 2024Sala de redacciónSoftware Seguridad/Ciberseguridad Google ha anunciado soporte para lo que se llama V8 Sandbox en el navegador web Chrome en un esfuerzo por abordar los problemas de corrupción de memoria. El sandbox, según el líder técnico de seguridad de V8, Samuel Groß, tiene como objetivo evitar que «la corrupción de la memoria en V8 se propague dentro del proceso del host». El gigante de las búsquedas ha descrito V8 Sandbox como un entorno de pruebas ligero y en proceso para el motor JavaScript y WebAssembly que está diseñado para mitigar las vulnerabilidades comunes de V8. La idea es limitar el impacto de las vulnerabilidades de V8 restringiendo el código ejecutado por V8 a un subconjunto del espacio de direcciones virtuales del proceso («la zona de pruebas») y aislándolo del resto del proceso. Las deficiencias que afectan a V8 representaron una parte importante de las vulnerabilidades de día cero que Google abordó entre 2021 y 2023, con hasta 16 fallas de seguridad descubiertas durante ese período. «El sandbox supone que un atacante puede modificar de forma arbitraria y simultánea cualquier memoria dentro del espacio de direcciones del sandbox, ya que esta primitiva puede construirse a partir de vulnerabilidades típicas de V8», dijo el equipo de Chromium. «Además, se supone que un atacante podrá leer la memoria fuera de la zona de pruebas, por ejemplo, a través de canales laterales del hardware. La zona de pruebas pretende entonces proteger el resto del proceso de dicho atacante. Como tal, cualquier corrupción de La memoria fuera del espacio de direcciones de la zona de pruebas se considera una infracción de la zona de pruebas». Groß enfatizó los desafíos que implica abordar las vulnerabilidades de V8 cambiando a un lenguaje seguro para la memoria como Rust o enfoques de seguridad de la memoria del hardware, como el etiquetado de la memoria, dados los «problemas lógicos sutiles» que pueden explotarse para corromper la memoria, a diferencia de los errores clásicos de seguridad de la memoria como use-after-frees, accesos fuera de límites y otros. «Casi todas las vulnerabilidades encontradas y explotadas en V8 hoy en día tienen una cosa en común: la eventual corrupción de la memoria ocurre necesariamente dentro del montón de V8 porque el compilador y el tiempo de ejecución operan (casi) exclusivamente en instancias de HeapObject de V8», dijo Groß. Dado que estos problemas no pueden protegerse con las mismas técnicas utilizadas para las vulnerabilidades típicas de corrupción de memoria, V8 Sandbox está diseñado para aislar la memoria del montón de V8 de modo que, si se produce alguna corrupción de memoria, no pueda escapar de los límites de seguridad a otras partes del proceso. memoria. Esto se logra reemplazando todos los tipos de datos que pueden acceder a la memoria fuera de la zona de pruebas con alternativas «compatibles con la zona de pruebas», evitando así de manera efectiva que un atacante acceda a otra memoria. La zona de pruebas se puede habilitar configurando «v8_enable_sandbox» en verdadero en gn args. Los resultados comparativos de Speedometer y JetStream muestran que la función de seguridad agrega una sobrecarga de aproximadamente el 1% en cargas de trabajo típicas, lo que permite habilitarla de forma predeterminada a partir de la versión 123 de Chrome, que abarca Android, ChromeOS, Linux, macOS y Windows. «El V8 Sandbox requiere un sistema de 64 bits, ya que necesita reservar una gran cantidad de espacio de direcciones virtuales, actualmente un terabyte», dijo Groß. «La zona de pruebas está motivada por el hecho de que las tecnologías actuales de seguridad de la memoria son en gran medida inaplicables para optimizar los motores JavaScript. Si bien estas tecnologías no logran prevenir la corrupción de la memoria en el propio V8, de hecho pueden proteger la superficie de ataque de la zona de pruebas V8. Por lo tanto, la zona de pruebas es necesaria paso hacia la seguridad de la memoria.» El desarrollo se produce cuando Google destacó el papel de Kernel Address Sanitizer (KASan) en la detección de errores de memoria en el código nativo y ayuda a reforzar la seguridad del firmware de Android, y agregó que utilizó la herramienta basada en compilador para descubrir más de 40 errores. «El uso de compilaciones habilitadas para KASan durante las pruebas y/o la fuzzing puede ayudar a detectar vulnerabilidades de corrupción de memoria y problemas de estabilidad antes de que lleguen a los dispositivos de los usuarios», dijeron Eugene Rodionov e Ivan Lozano del equipo de Android. ¿Encontró interesante este artículo? Síguenos en Twitter  y LinkedIn para leer más contenido exclusivo que publicamos.

Source link