Sitios Web Susceptibles A Ataques XSS Debido A Una Falla En La Implementación De OAuth
Salt Labs, la división de investigación de la empresa de seguridad API Salt Security, ha descubierto y publicado detalles de un ataque de XSS que podría afectar a millones de sitios web en todo el mundo.
No se trata de una vulnerabilidad de producto que se pueda reparar de forma centralizada. Es más bien un problema de implementación entre el código web y una aplicación muy popular: OAuth, utilizada para inicios de sesión sociales. La mayoría de los desarrolladores de sitios web creen que el flagelo de XSS es algo del pasado, resuelto mediante una serie de mitigaciones introducidas a lo largo de los años. Salt demuestra que no es necesariamente así.
Con una menor concentración en los problemas de XSS y una aplicación de inicio de sesión social que se utiliza ampliamente y se adquiere e implementa fácilmente en minutos, los desarrolladores pueden perder de vista el objetivo. Hay una sensación de familiaridad aquí, y la familiaridad genera errores.
No es un problema con OAuth, sino en la implementación de OAuth dentro de los sitios web. Salt Labs descubrió que, a menos que se implemente con cuidado y rigor (y rara vez lo hace), el uso de OAuth puede abrir una nueva ruta XSS que evite las mitigaciones actuales y pueda llevar a la apropiación total de la cuenta.
Salt Labs ha publicado detalles de sus hallazgos y metodologías, concentrándose en solo dos empresas: HotJar y Business Insider. La relevancia de estos dos ejemplos es, en primer lugar, que son empresas importantes con fuertes actitudes de seguridad y, en segundo lugar, que la cantidad de PII potencialmente almacenada por HotJar es inmensa. Si estas dos grandes empresas implementaron mal OAuth, entonces la probabilidad de que sitios web con menos recursos hayan hecho algo similar es inmensa.
(Para ser justos con HotJar, debemos señalar que la empresa tardó solo tres días en solucionar el problema una vez que Salt Labs se lo comunicó).
Aquí nos centraremos en HotJar debido a su saturación en el mercado, la cantidad de datos personales que recopila y su bajo reconocimiento público. "Es similar a Google Analytics, o tal vez un complemento de Google Analytics. Registra una gran cantidad de datos de sesión de usuario para los visitantes de los sitios web que lo utilizan, lo que significa que casi todo el mundo utilizará HotJar en sitios como Adobe, Microsoft, Panasonic, Columbia, Ryanair, Decathlon, T-Mobile, Nintendo y muchos otros nombres importantes". Es seguro decir que millones de sitios web utilizan HotJar.
El propósito de HotJar es recopilar datos estadísticos de los usuarios para sus clientes. "Pero por lo que vemos en HotJar, registra capturas de pantalla y sesiones, y monitorea los clics del teclado y las acciones del mouse. Potencialmente, hay mucha información confidencial almacenada, como nombres, correos electrónicos, direcciones, mensajes privados, detalles bancarios e incluso credenciales, y usted y millones de otros consumidores que tal vez no hayan oído hablar de HotJar ahora dependen de la seguridad de esa empresa para mantener su información privada".
HotJar utiliza OAuth para permitir inicios de sesión sociales. Si el usuario elige "iniciar sesión con Google", HotJar lo redirecciona a Google. Si Google reconoce al supuesto usuario, lo redirecciona de nuevo a HotJar con una URL que contiene un código secreto que se puede leer. Básicamente, el ataque es simplemente un método para falsificar e interceptar ese proceso y obtener secretos de inicio de sesión legítimos.
Para combinar XSS con esta nueva función de inicio de sesión social (OAuth) y lograr una explotación funcional, se utilizam un código JavaScript que inicia un nuevo flujo de inicio de sesión OAuth en una nueva ventana y luego lee el token de esa ventana. Google redirecciona al usuario, pero con los secretos de inicio de sesión en la URL. El código JS lee la URL de la nueva pestaña (esto es posible porque si tienes un XSS en un dominio en una ventana, esta ventana puede llegar a otras ventanas del mismo origen) y extrae las credenciales OAuth de ella.
Básicamente, el "ataque" requiere solo un enlace diseñado a Google (imitando un intento de inicio de sesión social de HotJar pero solicitando un "token" en lugar de una simple respuesta de "código" para evitar que HotJar consuma el código de una sola vez); y un método de ingeniería social para persuadir a la víctima de hacer clic en el enlace y comenzar el ataque (con el código siendo entregado al atacante). Esta es la base del ataque: un enlace falso (pero es uno que parece legítimo), persuadir a la víctima de hacer clic en el enlace y recibir un código de inicio de sesión procesable.
"Una vez que el atacante tiene el código de una víctima, puede iniciar un nuevo flujo de inicio de sesión en HotJar pero reemplazar su código con el código de la víctima, lo que lleva a una toma de control total de la cuenta", informa Salt Labs.
La vulnerabilidad no está en OAuth, sino en la forma en que muchos sitios web implementan OAuth. Una implementación totalmente segura requiere un esfuerzo adicional que la mayoría de los sitios web simplemente no comprenden ni implementan, o simplemente no tienen las habilidades internas para hacerlo.
A partir de sus propias investigaciones, Salt Labs cree que es probable que haya millones de sitios web vulnerables en todo el mundo. La escala es demasiado grande para que la empresa investigue y notifique a todos individualmente. En cambio, Salt Labs decidió publicar sus hallazgos, pero combinándolos con un escáner gratuito que permite a los sitios web de usuarios de OAuth verificar si son vulnerables.
El escáner está disponible aquí.
Proporciona un escaneo gratuito de dominios como un sistema de alerta temprana. Al identificar con anticipación los posibles problemas de implementación de XSS de OAuth, Salt espera que las organizaciones los aborden de manera proactiva antes de que se conviertan en problemas mayores.
Fuente: SecurityNews
Via: blog.segu-info.com.ar