lunes, 16 de febrero de 2009

XSS Woms: El terror de las redes sociales

Hoy vamos a hablar de los XSS Worms, un nuevo peligro en la red que combina una de las vulnerabilidad es más comunes que podemos encontrar y un vector de propagación de una magnitud calificada en algunos casos como "mayor que el envio de mails entre listas de correo".



En una red donde encontramos una gran cantidad de vulnerabilidad es de tipo XSS (algunos auditores estiman de porcentajes cercanos al 80%) en aplicaciones web, no es de extrañar que también podamos encontrarlos en las famosas "redes sociales". Las redes sociales son uno de los proyectos con más éxito de la actualidad, con cifras astronómicas (véase los más de 180 millones de usuarios que se estiman que tiene Myspace), consistente en que un usuario tiene un espacio personal, con su perfil, subida de fotos suyas, etc.. y un listado de amigos a los que agrega y con los que mantiene una interrelación a través de la red.


Esta interrelación con esos "amigos" no queda ahí, ya que cuando visitamos los perfiles de nuestros amigos, podemos ver sus amigos (en la mayoría de redes) y al entrar al de alguno de ellos los amigos de sus amigos... y así sucesivamente podemos tener una basta colección de perfiles visitados. Desconozco el número de amigos de promedio qeu suele tener cada usuario, pero lo que sí es seguro que si aplicamos la exponencialida d de poder visitar los perfiles de otros usuarios hablamos de cifras indudablemente de una magnitud increíble, y podemos acceder a ellas con un simple click...


Volviendo a la parte que nos interesa, si encontramos un campo vulnerable a XSS permanente, tal como puede ser el nombre, la descripción, el título de una foto o algun otro que aparezca en el perfil que tus amigos y otras personas ven, podríamos "atacar" a todas esas personas.

Muchas personas estarán pensando en un cookie stealing a gran escala, pero siento deciros que entonces hablaríamos de la explotación prototípica que hacemos de los xss, a parte, de que estas redes ya incorporan sistemas de sesiones (no pongo la mano en el fuego, pero creo que por ejemplo tuenti ya las usa) en los cuales, la asignación de un identificador (ID) se realiza a partir de funciones de tiempo, por lo cual probablemente nos sea de poca utilidad. Pero como bien acabo de decir, esto sería un uso vulgar y común de un XSS y que no aporta nada nuevo, pero... ¿Y si usaramos el XSS como un vehículo de propagación y lanzamiento de algún payload? Y si por ejemplo... ¿Hacemos que cada persona que mire tu perfil se "infecte" y agregue a su perfil también el código malicioso?


Bien bien, en esto consisten los XSS Worms, en difundirse a través de los visitantes de tu perfil y al mismo tiempo introducir algún payload (P.e.: poner un lnk de descarga de un troyano a través de la simulación de que es el propio dominio que requiere la instalación de algún objeto, mandar MPs con SPAM, explotar alguna vulne de los navegadores, etc...).


Los XSS Worms tienen una velocidad de propagación muy alta, aquí os dejo un screenshoot de un gráfico de la propagación de Samy, el más famoso XSS worm que atacó la red de Myspace:
La propagación está basada en el fenómeno que ya he comentado antes, el hecho de que si yo (individuo A) tengo coloco en mi perfil el código malicioso, si 7 personas ven mi perfil en el último cuarto de hora (individuos A'), ellos tambíen quedarán infectados. Si en el siguiente cuarto de hora, el perfil de esas siete personas, es observador por otras siete personas (individuos A'' ), tendremos que en media hora tendremos un total de infectados (TI), de:

Ti = ( A' )2 + A' => Ti = 56

Como vemos, en el supuesto de 7 personas (que incluso podríamos considerarlo como un promedio bajo de visitas recibidas en un cuarto de hora) estamos hablando de que en sólo media hora tenemos 56 personas infectadas... imaginad cuando pasen 12 horas la cantidad de gente infectada que existiría. Es por ello, que Samy marcó un hito en la historia convirtiendose en el malware con la velocidad de propagación más rapida de toda la historia.



Ahora vayamos al meollo de las cosas, ¿en qué consiste un XSS Worms?. Un worm de este tipo, suele tener un source suele tener dos grandes apartados. El primero de ellos, es la parte encargada de la infección del visitante, consistente normalmente en un código en AJAX cuyo objetivo es que cuando el visitante ejecuta el código malicoso en su navegador, se envíe desde este una petición de tipo POST que agregue en el formulario vulnerable a XSS el código malicioso del worm, así tendremos asegurada la propagación de los A' hacia los A'' y de estos a los A''' y así sucesivamente.


La otra parte es el payload. Un payload, en términos de virus (e incluso en exploits, por ejemplo cuando conseguimos shell explotando un BoF) se trata de los efectos malificiosos que provoca. Un efecto devastador, (a parte de los payloads que podemos imaginar) es la gran cantidad de tráfico que podemos generar con nuestro gusano. Y por gran cantidad, estamos hablando de llegar a producir denegaciones de servicios provocadas por los recursos consumidos.


Otra característica a tener en cuenta a la hora de programar un worm es el uso de tecnicas de ofuscación de código y bypass para saltar los filtros... a parte de tener portabilidad en el mayor número de navegadores posibles, de esta forma la probabilidad de infectar usuarios es de 98 sobre cada 100. Por último todo esto debe de venir acompañado de un bajo peso. En este sentido, navegando por uno de esos links que llegan a mis manos en las multiconversac iones que mantengo con S e t h y Plaga ( en las cuales normalmente siempre sacamos algo de provecho (véase hacer este pequeño paper)) encontré cierto concurso de Ha.ckers.org que ganaron Giorgio Maone and Sirdarckcat con un XSS Worm de 161 bytes.

En conclusión, podemos decir que nunca hay que menospreciar un XSS, puesto que podemos lograr mil cosas, desde subir una XSS Shell, robos de identidad a gran escala, hasta lograr un DoS en sites "relativamente importantes", tal y como son hoy en día las redes sociales.
5 0verl0ad Labs: XSS Woms: El terror de las redes sociales Hoy vamos a hablar de los XSS Worms, un nuevo peligro en la red que combina una de las vulnerabilidad es más comunes que podemos encontrar y...

No hay comentarios:

< >