Un equipo de investigadores de la Universidad de Wisconsin-Madison ha subido a Chrome Web Store una extensión de prueba de concepto que puede robar contraseñas en texto plano del código fuente de un sitio web.
Un examen de los campos de entrada de texto en los navegadores web reveló que el modelo de permiso de grano grueso que sustenta las extensiones de Chrome viola los principios de privilegio mínimo y mediación completa.
Además, los investigadores descubrieron que numerosos sitios web con millones de visitantes, incluidos algunos portales de Google y Cloudflare, almacenan contraseñas en texto sin formato dentro del código fuente HTML de sus páginas web, lo que permite que las extensiones las recuperen.
Fuente del problema.
Los investigadores explican que el problema se refiere a la práctica sistémica de dar a las extensiones del navegador acceso ilimitado al árbol DOM de los sitios que cargan, lo que permite acceder a elementos potencialmente sensibles, como los campos de entrada del usuario.
Dada la falta de un límite de seguridad entre la extensión y los elementos de un sitio, la primera tiene acceso ilimitado a los datos visibles en el código fuente y puede extraer cualquiera de sus contenidos.
Además, la extensión puede abusar de la API DOM para extraer directamente el valor de las entradas a medida que el usuario las ingresa, evitando cualquier ofuscación aplicada por el sitio para proteger las entradas confidenciales y robando el valor mediante programación.
El protocolo Manifest V3 que Google Chrome introdujo y adoptó la mayoría de los navegadores este año limita el abuso de API, prohíbe que las extensiones obtengan código alojado de forma remota que podría ayudar a evadir la detección y evita el uso de declaraciones de evaluación que conducen a la ejecución de código arbitrario.
Sin embargo, como explican los investigadores, Manifest V3 no introduce un límite de seguridad entre las extensiones y las páginas web, por lo que el problema con los scripts de contenido persiste.
Cargar una prueba de concepto en la tienda web
Para probar el proceso de revisión de la Web Store de Google, los investigadores decidieron crear una extensión de Chrome capaz de realizar ataques de captura de contraseñas e intentar cargarla en la plataforma.
Los investigadores crearon una extensión que se hace pasar por un asistente basado en GPT que puede:
Capturar el código fuente HTML cuando el usuario intenta iniciar sesión en una página mediante una expresión regular.
Abusar de los selectores de CSS para seleccionar campos de entrada de destino y extraer las entradas del usuario utilizando la función ‘.value’.
Realizar una sustitución de elementos para reemplazar campos ofuscados basados en JS con campos de contraseña no seguros.
La extensión no contiene código malicioso obvio, por lo que evade la detección estática y no recupera código de fuentes externas (inyección dinámica), por lo que es compatible con Manifest V3.
Esto resultó en que la extensión pasara la revisión y fuera aceptada en la tienda web de Google Chrome, por lo que los controles de seguridad no lograron detectar la amenaza potencial.
El equipo siguió estándares éticos para garantizar que no se recopilaran ni se hicieran mal uso de datos reales, desactivando el servidor de recepción de datos y manteniendo activo solo el servidor de orientación de elementos.
Además, la extensión se configuró como «no publicada» en todo momento para que no acumulara muchas descargas y se eliminó rápidamente de la tienda luego de su aprobación.
Potencial de explotación
Mediciones posteriores mostraron que de los 10.000 sitios web principales (según Tranco), aproximadamente 1.100 almacenan contraseñas de usuario en formato de texto sin formato dentro del HTML DOM.
Otros 7.300 sitios web del mismo conjunto se consideraron vulnerables al acceso a la API DOM y a la extracción directa del valor de entrada del usuario.
El artículo técnico que los investigadores de la Universidad de Wisconsin-Madison publicaron a principios de esta semana afirma que aproximadamente 17.300 extensiones en Chrome Web Store (12,5%) obtienen los permisos necesarios para extraer información confidencial de sitios web.
Varios de ellos, incluidos bloqueadores de publicidad y aplicaciones de compras ampliamente utilizados, cuentan con millones de instalaciones.
Finalmente, el análisis mostró que 190 extensiones (algunas con más de 100.000 descargas) acceden directamente a los campos de contraseña y almacenan valores en una variable, lo que sugiere que es posible que algunos editores ya estén intentando explotar la brecha de seguridad.
Fuente y redacción: underc0de.org