DESARROLLADOR

Cómo el código WebAssembly opaco aumenta el riesgo de ataques Spectre en línea

Después de que se descubrieron los ataques de Spectre y Meltdown, los creadores de navegadores agregaron nuevas protecciones para defenderse de ellos. Pero el código de WebAssembly podría hacer que todo su arduo trabajo se fuera por el desagüe.

Después de que se revelaran las vulnerabilidades de Spectre y Meltdown en enero, los proveedores de navegadores se apresuraron a crear mitigaciones para evitar que las vulnerabilidades fueran explotadas por páginas web creadas con fines malintencionados, ya que los investigadores desarrollaron una prueba de concepto basada en JavaScript que lee la memoria del proceso del navegador host. . Las mitigaciones más importantes contra este ataque incluyen deshabilitar o reducir la precisión de los contadores de tiempo en el navegador.

Informes de seguridad de lectura obligada

Por ejemplo, a partir de Firefox 57, Mozilla redujo la precisión de performance.now() a 20 microsegundos y, a partir de Firefox 59, se reduce aún más a 2 milisegundos de forma predeterminada, aunque los usuarios pueden habilitar una configuración adicional en la configuración de privacidad para bloquear el reconocimiento de huellas dactilares del usuario, lo que reduce la precisión a 100 milisegundos. Esto funciona porque Spectre y Meltdown son ataques de canal lateral que requieren una observación y manipulación precisas de los temporizadores para poder explotarlos con éxito.

Según la firma de seguridad Forcepoint, el nuevo estándar WebAssembly representa una amenaza para estas mitigaciones. Como su nombre lo indica, WebAssembly es un formato de ensamblaje de clase de código ejecutable en páginas web. Puede compilar programas en lenguajes de alto nivel como C/C++ en códigos de bytes que se ajustan a la especificación WebAssembly, y la velocidad de ejecución es más rápida que JavaScript. Este proyecto es el sucesor de asm.js y Native Client específicos del proveedor.

LEER  Cómo usar GitHub para iOS para obtener sus repositorios de GitHub sobre la marcha

En una publicación de blog reciente, John Bergbom de Forcepoint citó el potencial de una versión futura de WebAssembly para obtener soporte para subprocesos con memoria compartida, ya que podría sortear las limitaciones de precisión del temporizador implementadas a principios de este año, aunque los desarrolladores de WebAssembly retrasaron la introducción del característica para evitar su uso como un temporizador de alta precisión como parte del ataque Spectre.

Consulte también: Política de actualización del sistema (Tech Pro Research)

En lo que respecta a la seguridad, las preguntas planteadas por WebAssembly no terminan ahí. Los scripts de ejecución automática en el navegador los hacen particularmente dañinos en formato binario en comparación con JavaScript. Como señaló Bergbom en la publicación, si bien JavaScript se puede ofuscar, aún se puede desofuscar con relativa facilidad en comparación con WebAssembly.

Además, «no hay muchas herramientas disponibles públicamente para analizar los binarios de Wasm», dijo Bergbom en la publicación. «Del mismo modo, actualmente hay poca documentación sobre cómo analizar las aplicaciones Wasm. Esto significa que, en su mayor parte, las aplicaciones Wasm desconocidas pueden ser una especie de caja negra para los analistas humanos. Es posible que los investigadores solo necesiten analizar el tráfico de red, sin comprender el funcionamiento interno del código».

WebAssembly también se considera un vector para los ataques de cryptojacking basados ​​en navegador, ya que las ganancias de rendimiento proporcionadas por WebAssembly aumentan en gran medida el retorno de la inversión para tales ataques.

Conclusiones clave para los líderes tecnológicos:

  • Dado que WebAssembly es un formato no legible por humanos, presenta mayores desafíos para los investigadores de seguridad y brinda más cobertura para que los actores maliciosos implementen ataques.
  • Los proveedores de navegadores han reducido la precisión de los temporizadores y han limitado la capacidad de construir temporizadores de alta precisión en un intento por reducir el riesgo de ataques de Spectre.

Como el codigo WebAssembly opaco aumenta el riesgo de ataques

LEER  Cómo reparar el error de enumeración USB de VirtualBox y la instalación del paquete de extensión

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba