1400 tweets al minuto La monitorización del fallo de seguridad de Twitter minuto a minuto.
Si no lo viviste, como fue mi caso y el de miles de usuarios, seguramente a estas alturas ya te habrás enterado de "la que se montó" en la mañana del Martes 21 de Septiembre (hora española) con un supuesto ataque a Twitter.
Cientos de blogs se hicieron eco de la noticia mientras otros intentábamos entender lo que ocurría proporcionando información a través del propio Twitter sobre lo que estaba ocurriendo. Usuarios como @execute_ (que me avisó de lo de ocurría) @mmadrigal, @cssbarcelona o @javig, y yo mismo twitteamos durante toda "la crisis" intentando evitar que la gente entrase en el servicio vía web.
La noticia, como ya he dicho, se pudo leer en cientos de blogs y sitios de noticias, sophos.com (que fue donde primero pudimos obtener alguna información), el propio blog de @mmadrigal (de los primeros en arrojar algo de luz en español), Bitelia, Genbeta, Pizcos.net de @pizcos (con un claro resumen), etc.
Finalmente se ha descubierto que todo surgió a partir de una "broma" de un usuario australiano, que sin quererlo, destapó la "caja de Pandora" y abrió la puerta a que otros usuarios, no con tan "inocentes intenciones", aprovechasen la vulnerabilidad que él había descubierto para otros menesteres.
Como ya se avisó en su momento, la vulnerabilidad tan sólo afectaba a los usuarios de Twitter por web en su versión, digamos antigua, por lo que desde los clientes y desde la versión móvil se podía ver el código "malicioso" que estaba ocasionando el desastre:
Como verás, entre esos tweets extraños hay algunos que simplemente se limitan a mostrar un tamaño desproporcionado de la tipografía, mientras que otros, los que incluyen el término "onmouseover", son los que hacían que tan sólo con situar el puntero del ratón sobre un tweet se retwittease sin nuestro consentimiento.
Ya hemos hablado en otra ocasión de Cham.tl, herramienta en la que colaboro junto a @JMChia y @Raul_SP. Desde un primer momento, pusimos a trabajar la maquinaria de la herramienta para monitorizar lo que se estaba produciendo en Twitter. Por supuesto, monitorizamos los hashtag #twitterfail y #cssinjection, puesto que el primero es el más utilizado cuando algo ocurre en el servicio y el segundo parecía definir perfectamente lo que estaba ocurriendo. Además, y observando el código de los tweets "extraños" incluimos el término "onmouseover" que era el verdadero causante del caos.
El informe resultante es escalofriante:
Puedes ver el informe completo e interactivo aquí y descargarlo aquí.
Si observamos con detalle las gráficas, veremos que hasta alrededor de las 12:00 AM (hora española) el número de menciones del término "onmouseover" no es destacable (con una media de 40/50 menciones cada 5 minutos). En ese momento, empieza a cobrar importancia y se difunde el usuario @rainbowTwtr (cuenta ya eliminada), que como indica Wwwhatsnew, podía ser parte del origen de todo.
Alrededor de la 1:30 PM, vemos en la gráfica que las menciones de "onmouseover" empiezan a aumentar, hasta llegar a las 1142 cada 5 minutos, momento en el cual se disparan por completo hasta alcanzar en su punto más álgido, las 6917 menciones cada 5 minutos que se reflejan a las 15:20 PM, casi 1400 tweets al minuto...una barbaridad!!
Momentos antes, @niw, ingeniero de software de Twitter dijo aquello de GO!, y a los pocos minutos, las menciones, y por lo tanto, los RTs involuntarios dejaron de aparecer y violentar nuestro Timeline. En el gráfico podemos observar cómo las menciones disminuyen incluso mucho más rápido de lo que incrementaron su número.
Una curiosidad que podemos extraer también del gráfico de menciones es el "tiempo de reacción" de los principales blogs y medios que difundieron la noticia, se trata del "repunte" en las menciones del término onmouseover que se vuelve a registrar a las 19:30 PM, cuando ya se sabía a ciencia cierta qué había ocurrido y los titulares incluían esa palabra.
Si nos fijamos en el apartado de palabras más usadas, observamos que las que más se repiten son las combinaciones que nos obligaban a retwittear sin consentimiento, es decir, update-form.submit" y extareafirst.valthis.innerhtml$.status-update-form.submit", tal y como nos explica @JMChia:
"En el informe se pueden ver que los fallos más explotados son los de enviar tweets sin el permiso del usuario. El más efectivo en propagarse fue el de @Matsa (actualmente con la cuenta suspendida) con más de 60000 RTs, seguido por @bandoche con 11383. Además se puede apreciar cómo la cadena “style="color#000” aparece 21118 veces, esta instrucción le manda la orden al navegador de cambiar el fondo al tweet a negro, haciendo imposible leer el contenido del tweet y provocando que más usuarios cayeran infectados y twitearan automáticamente el gusano."
Otro dato curioso que podemos extraer es que aunque el 95,6% de los tweets fueron en inglés, el país que más participación tuvo fue Brasil, con un total de 6604 tweets con los términos monitorizados, un ejemplo más del increible potencial que tienen los usuarios brasileños (recordemos trends topics como CALA BOCA FERNANDO ALONSO).
También es interesante observar, en el campo de usuarios más participativos, que @javascript8 (con 101 tweets) y @xsstest_null (con 35) se trataban de cuentas típicas "de prueba", de hecho ésta última ya no existe, mientras que también aparecen otros usuarios, como es mi caso, que participamos con hasthtag #twitterfail o #cssinjection.
P.D.- Muchas gracias a @JMChia por su aportación xD