Envío de registros, alertas y datos de telemetría a través de un diodo de datos

Descubre cómo
Utilizamos inteligencia artificial para traducir el sitio web y, aunque nos esforzamos por garantizar la precisión, es posible que las traducciones no sean siempre 100 % exactas. Agradecemos tu comprensión.

Solucione las vulnerabilidades de Google Chrome conEndpoint MetaDefender

Por OPSWAT
Última actualización:
Comparte esta publicación

Nos complace presentar una serie de entradas de blog sobre análisis técnico centradas en diversas vulnerabilidades y exposiciones comunes (CVE), identificadas y solucionadas gracias a nuestras tecnologías avanzadas de detección de amenazas. Toda la investigación corre a cargo de los estudiantes de posgrado que participan en el programa de becas OPSWAT , puesto en marcha en septiembre de 2023.

Fotografías de Tri Luong y Khoi Ta, de la Universidad de Ciencias de Ho Chi Minh
Los estudiantes participaron en el programa OPSWAT .

En este blog, explicaremos el vulnerabilidad CVE-2019-13720 de Google Chrome y cómo las organizaciones pueden protegerse contra los ataques que aprovechan esta vulnerabilidad.

¿Qué es Google Chrome y cuándo se fundó?  

Google Chrome es un navegador web multiplataforma desarrollado por Google y lanzado oficialmente el 2 de septiembre de 2008. Se creó como parte de los esfuerzos de Google por desarrollar un navegador mejor y más moderno. En aquel momento ofrecía muchas funciones nuevas, como la navegación por pestañas, el modo de incógnito y la sincronización con los servicios de Google. Desde su lanzamiento, se ha convertido en uno de los navegadores web más populares del mundo. Se estima que, en 2021, Google Chrome cuenta con unos 3200 millones de usuarios.

Debido a la popularidad de Google Chrome, este se ha convertido en un foco de atención para la investigación y los ataques, atrayendo tanto a hackers éticos como a hackers maliciosos. Entre las vulnerabilidades más comunes identificadas en Google Chrome se encuentran la denegación de servicio (DoS), la fuga de información y la ejecución remota de código, entre otras. En cuanto a la vulnerabilidad de ejecución remota de código, existen dos tipos en Google Chrome: con escape del entorno aislado y sin escape.

¿Qué es CVE-2019-13720?

CVE-2019-13720 es una vulnerabilidad de tipo «Use After Free» (UAF) de WebAudio en Google Chrome anterior a la versión 78.0.3904.87 que permite a un atacante remoto explotar potencialmente una corrupción del montón (heap) a través de una página HTML manipulada. Cuando la víctima accede a una página web maliciosa o abre una página HTML manipulada en un navegador Google Chrome vulnerable, el código malicioso se ejecuta en el dispositivo de la víctima. Este CVE fue informado por primera vez por Anton Ivanov y Alexey Kulaev en 2019.

Fragmento que muestra una calificación de gravedad alta según el NIST-NVD, con puntuaciones básicas y cadenas de caracteres relacionadas con una vulnerabilidad de ciberseguridad
Información sobre CVE-2019-13720 en el NVD del NIST

Desde un punto de vista técnico, una vulnerabilidad de tipo «use-after-free» puede ser explotada debido a una condición de carrera entre los subprocesos «Render» y «Audio» del componente de audio de Qt WebEngine, lo que permite a atacantes remotos ejecutar código shell de WebAssembly y, por consiguiente, comprometer el dispositivo de la víctima. La solución a este problema consiste en que todos los usuarios de Qt WebEngine actualicen a la última versión.

Las fases de ataque

Infografía sobre un ataque de phishing en cuatro pasos que detalla la creación de una URL, el envío de un correo electrónico de phishing, la apertura del código HTML por parte de la víctima y la ejecución remota de código
Los procesos de ataque

Los atacantes crean una URL especial con el código HTML malicioso y envían un correo electrónico de phishing con el enlace a la víctima. Cuando la víctima abre el correo electrónico y hace clic en el enlace, se ejecuta el código malicioso, lo que permite al atacante hacerse con el control del sistema afectado. Los detalles sobre las tácticas de ejecución remota de código, tal y como aparecen en un documento HTML, se pueden consultar aquí.

¿Qué son las vulnerabilidades de «uso tras liberación» (UAF) y de «heap spray»?

Una vulnerabilidad UAF es un tipo de fallo de seguridad que se produce cuando un programa sigue utilizando memoria después de que esta haya sido liberada. Esto puede dar lugar a diversas consecuencias negativas, como la corrupción de datos, la ejecución de código arbitrario y fallos del sistema.

La pulverización de memoria (heap spraying) es una técnica de inyección de carga útil que consiste en escribir varios bytes en diferentes ubicaciones a lo largo del montón de memoria. Esto implica inyectar una carga útil manipulada (es decir, datos maliciosos) en el montón de memoria, asegurándose de que el flujo de ejecución salte a la memoria pulverizada en lugar de al código original de la aplicación. El objetivo de este ataque suele ser obtener el control del registro EIP. 

Diagrama que muestra la asignación de memoria antes y después de un ataque de «heap spraying», con el error de flujo de control indicado
Visualización de la técnica de pulverización en montón

¿Qué es WebAssembly?

WebAssembly, a menudo abreviado como Wasm, es un nuevo formato de instrucciones binarias que sirve como destino portátil para la compilación de lenguajes de alto nivel como C/C++, lo que permite que se ejecuten a una velocidad casi nativa en el motor JavaScript de un navegador web. 

Diagrama de flujo de la conversión de código de C/C++ a navegador mediante Emscripten, WebAssembly, JS Glue Code y HTML App
Compilación de código en WebAssembly

Sin embargo, dado que WebAssembly puede compilarse a partir de lenguajes que no son seguros en cuanto a la memoria, como C/C++, pueden introducirse en los binarios de WebAssembly compilados de forma cruzada vulnerabilidades de programación habituales, como desbordamientos de búfer o vulnerabilidades de cadenas de formato. Esta posibilidad de que se incluyan vulnerabilidades en los módulos de WebAssembly ha aumentado la superficie de ataque de las aplicaciones web actuales.

Diagrama que muestra cómo JS y WA comparten la memoria lineal en un entorno de ejecución
Diseño de una aplicación típica con WebAssembly

¿Qué es una vulnerabilidad por condición de carrera?

Una vulnerabilidad por condición de carrera en el software se produce cuando varios procesos o subprocesos intentan acceder simultáneamente a un recurso compartido, lo que provoca resultados impredecibles o interrupciones operativas debido a la sincronización del acceso. Cuando un programa presenta una vulnerabilidad por condición de carrera, puede dar lugar a diversos problemas, como fallos de la aplicación, corrupción de datos, resultados incorrectos o incoherencias. Los atacantes pueden aprovechar esta vulnerabilidad para obtener acceso no autorizado, filtrar información, escalar privilegios o provocar fallos en el sistema.  

Clasificada como una vulnerabilidad de condición de carrera, una vulnerabilidad TOCTTOU aprovecha el intervalo de tiempo que transcurre entre la comprobación y el uso de un recurso.

Diagrama que muestra una vulnerabilidad TOCTOU (Time of Check to Time of Use) en una aplicación que está siendo explotada por un ataque
Ilustración de una condición de carrera en un programa informático. Fuente: Devopedia 2020 (*) TOCTOU (Time of Check to Time Of Use)

¿Cómo funciona CVE-2019-13720?

Para aprovechar esta vulnerabilidad, el investigador adjunta código JavaScript a un archivo HTML. Cuando un usuario ejecuta el archivo HTML, el script intenta localizar la dirección filtrada creando dos subprocesos (el subproceso principal y el subproceso de audio) que gestionan los mismos datos del búfer. A continuación, la dirección filtrada del temporary_buffer_object en ReverbConvolverStage se utiliza para obtener el puntero del feedforward_array en IIRFilterNode (que comparte la misma superpágina con el Convolver). Posteriormente, el investigador intenta obtener el puntero del feedforward_array en el segundo UAF de activación.

Flujo del proceso de un exploit: Activación de UAF, segunda activación de UAF, «heap spray», escritura de código shell, activación del módulo WebAssembly, ejecución de la carga útil
Proceso de detección de «uso tras liberación»

WebAssembly se encarga de la ejecución del código shell. Para habilitar la ejecución del código shell, el investigador intenta liberar el IIRFilter y escribe en el GCPreventer hasta que consigue controlar dónde se realizan las nuevas asignaciones sin necesidad de utilizar sprays. Finalmente, el investigador escribe el código shell en la región Just-In-Time (JIT) de la memoria. En consecuencia, al producirse un evento de error del lector de archivos, el módulo WebAssembly ejecutará el código shell.

Para ejecutar el código de shell asociado a esta vulnerabilidad, el usuario debe desactivar el entorno de aislamiento en la versión vulnerable de Chrome. 

Mensaje de advertencia del navegador: «Estás utilizando una opción de línea de comandos no compatible: -no-sandbox. Esto afectará a la estabilidad y la seguridad».

Cuando se ejecuta el código de shell, se abre automáticamente el Bloc de notas en el dispositivo de la víctima.

Pantalla de error en un navegador web con el mensaje «¡Vaya, algo ha salido mal al mostrar esta página web!», junto a una ventana abierta del Bloc de notas

Método de remediación

MetaDefender Endpoint, una solución de seguridad para dispositivos finales diseñada por OPSWAT, permite a los usuarios detectar y proteger sus sistemas frente a estos ataques. Una vez que el usuario desactiva la Sandbox Privacy Sandbox (--no-sandbox), MetaDefender Endpoint detectar CVE y aplicar los últimos parches de Google Chrome. A continuación, el usuario puede actualizar Google Chrome a la última versión manualmente o activar la función de «actualización automática» en la Patch Management para que OPSWAT MetaDefender Endpoint actualiceEndpoint el navegador tan pronto como haya nuevos parches disponibles.

Para evitar la exposición a código malicioso, los usuarios deben utilizar herramientas de filtrado de correo electrónico para detectar ataques de phishing y evitar hacer clic en enlaces desconocidos que aparezcan en los mensajes de correo electrónico.

Características y ventajasEndpoint del producto MetaDefender Endpoint

  • Revisar y corregir las aplicaciones en riesgo. Las aplicaciones vulnerables o desactualizadas se pueden consultar en laEndpoint MetaDefender Endpoint .
  • Comprueba que la protección antimalware esté correctamente configurada en el sistema operativo.
  • Garantizar el cumplimiento de las normas de seguridad de la organización.
  • Garantía de cifrado del disco duro.
  • Verificación de parches del sistema operativo.
  • Varias opciones para el análisis de malware y la publicación de avisos de ausencia de malware en los dispositivos finales.
Endpoint MetaDefender Endpoint que muestra una lista de vulnerabilidades críticas de Google Chrome con números CVE y puntuaciones
Endpoint de MetaDefender Endpoint

MetaDefender Endpoint la gestión de Endpoint y la aplicación de parches a aplicaciones se puede descargar aquí.


¡Mantente al día con OPSWAT!

Regístrate hoy mismo para recibir las últimas novedades de la empresa, historias, información sobre eventos y mucho más.