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

Ver fuente

Related Post