Una vulnerabilidad de clickjacking afecta a los gestores de contraseñas
Durante la DEF CON 33 se reveló un nuevo método de ataque que pone en jaque la seguridad de los gestores de contraseñas integrados como complementos de navegador.
La técnica, que afecta a herramientas tan populares como 1Password, Bitwarden, LastPass, KeePassXC-Browser, NordPass, ProtonPass o Keeper, abre la puerta a la filtración de credenciales, datos personales, tarjetas de crédito e incluso contraseñas de un solo uso utilizadas en la autenticación de dos factores.
¿Sigue siendo el clickjacking una vulnerabilidad explotable hoy en día? Muchos programas de recompensas por errores incluyen esta vulnerabilidad en la sección «fuera de alcance» y, en el mejor de los casos, la aceptan, pero no la recompensan. Esto se debe a que existen numerosas protecciones disponibles que reducen significativamente su impacto. Se puede afirmar que una vulnerabilidad común de clickjacking web ya se ha solucionado y es fácil defenderse de ella.
El resultado de mi investigación es que el clickjacking sigue siendo una amenaza para la seguridad, pero es necesario pasar de las aplicaciones web a las extensiones del navegador, que son más populares hoy en día (administradores de contraseñas, billeteras de criptomonedas y otras).
Cómo funciona el ataque contra los gestores de contraseñas
El problema radica en la forma en que los complementos insertan sus cuadros de diálogo directamente en el DOM de la página visitada. Esto significa que, si un atacante logra inyectar JavaScript malicioso en el sitio (por ejemplo, explotando una vulnerabilidad XSS), puede manipular no solo el contenido del sitio, sino también los elementos añadidos por el propio gestor de contraseñas.
De esta manera, es posible volver transparente el cuadro de confirmación y superponerlo con un falso diálogo creado por el atacante. El usuario, creyendo aceptar un aviso de cookies, cerrar un banner publicitario o completar un captcha, en realidad estaría aprobando la autocompletación de sus credenciales por parte del gestor de contraseñas. El resultado: los datos se completan en un formulario invisible y terminan enviados al servidor del atacante.
Ejemplos y escenarios de ataque
Un caso práctico fue demostrado con issuetracker.google.com, que presentaba una vulnerabilidad XSS. Mediante tres clics aparentemente inofensivos en solicitudes ficticias, los investigadores lograron obtener no solo las credenciales de inicio de sesión, sino también el código de autenticación de dos factores.
Además de explotar vulnerabilidades XSS, el ataque puede extenderse a servicios que permiten crear subdominios. Como la mayoría de los gestores de contraseñas autocompletan credenciales en todos los subdominios del dominio principal, un atacante podría aprovechar esta característica para filtrar información.
El riesgo no se limita a contraseñas: los datos personales y financieros guardados en los gestores también quedan expuestos. En el caso de las tarjetas de crédito, la filtración incluye número, fecha de vencimiento y código de seguridad, lo que convierte esta técnica en una amenaza crítica.
Impacto y respuesta de los desarrolladores
El investigador probó 11 complementos de navegador con un total de 39,7 millones de instalaciones activas, y todos resultaron vulnerables. Algunos fabricantes ya han publicado parches que intentan mitigar el ataque de manera parcial, como NordPass, ProtonPass, RoboForm, Dashlane, Keeper, Enpass y Bitwarden. Sin embargo, otros como 1Password, LastPass, iCloud Passwords y KeePassXC-Browser aún no han lanzado soluciones definitivas.
La postura de 1Password es especialmente llamativa: la compañía sostiene que el problema es de naturaleza estructural y no puede resolverse completamente desde el complemento. Según sus desarrolladores, la solución debe venir del propio navegador, o bien implementando confirmaciones explícitas antes de autocompletar cualquier dato. De hecho, en su próxima versión añadirán una opción para mostrar solicitudes de confirmación para todos los tipos de datos, aunque esta no estará habilitada por defecto.
Propuestas de protección contra el ataque
Entre las soluciones técnicas propuestas se encuentran el uso de Shadow DOM en modo cerrado, la monitorización de transparencia de elementos mediante la API MutationObserver, el bloqueo de superposiciones de capas o la utilización de la API Popover para mostrar los diálogos de forma segura.
El propio autor del estudio sugiere que, a nivel de navegador, se debería implementar una API dedicada para proteger a los gestores de contraseñas frente a ataques de clickjacking. Mientras tanto, la medida más efectiva para los usuarios de navegadores basados en Chromium es activar el modo de acceso al sitio bajo demanda en la configuración de los complementos. Esto limita el acceso del gestor a la página únicamente tras hacer clic en su icono junto a la barra de direcciones.
Como alternativa, se recomienda desactivar el autocompletado automático y copiar las credenciales manualmente, aunque esto abre la posibilidad de nuevas fugas a través del portapapeles compartido.
Fuente: https://marektoth.com