SMS Spoofing Twitter

Hace unos días, Jonathan Rudenberg publicaba una vulnerabilidad en el sistema de publicación a través de SMS de Twitter que podría permitir el envío de tweets en nombre de otra persona con solo conocer su número de teléfono. El efecto de esta vulnerabilidad ya se conoce desde hace varios años.

Twitter dispone de una interfaz SMS con la que, a través de mensajes de texto, un usuario puede publicar actualizaciones y seguir a otros usuarios, entre otras opciones. Para activarla, es necesario enviar un nombre de usuario y contraseña a unos códigos telefónicos que la red social dispone a tal efecto. Una vez hecho esto, el número de teléfono queda asociado a la cuenta de Twitter.

Jonathan Rudenberg afirma en su blog que esa asociación puede ser utilizada para publicar un tweet en la cuenta de otra persona solo conociendo su número de teléfono. El fallo reside en que la interfaz de Twitter confía en la legitimidad del origen del SMS sin pedir ninguna autenticación adicional.

El número de origen de un SMS puede ser fácilmente falseado. Algunos proveedores permiten cambiar el origen del mensaje de texto, así que es posible que un tercero envíe un mensaje con el número de teléfono de la víctima como origen y que Twitter lo publique en su cuenta asociada.

El usuario puede entonces ejecutar todos los comandos disponibles a través de SMS sobre la cuenta de la víctima, entre lo que se incluye el envío de mensajes directos, respuesta a otros usuarios o incluso desactivar la cuenta por completo si se es usuario exclusivo a través de SMS.
Sin embargo, Moxie Marlinspike, en un post en el blog de ingeniería de Twitter, ha dado algunos detalles de la situación. Para utilizar el canal SMS, el usuario tiene la opción de enviar sus comandos a dos tipos de códigos telefónicos.

El código "corto" es un número menor a cinco cifras, disponible en algunos países y proveedores de red móvil (España, por ejemplo, no tiene). Este es el método que utilizan muchos usuarios de Twitter SMS. Estos códigos funcionan dentro de la misma red del operador y no permite cambiar el origen del mensaje. Por tanto no hay posibilidad de spoofing en este caso.

Sin embargo, el resto de países deben enviar sus tweets a un código "largo". Este es un número telefónico normal que sí es vulnerable a spoofing. Por ello, Twitter ofrece una autenticación a través de PIN a los usuarios de estos códigos desde hace varios años, aunque es necesario que el usuario lo active.

Además, si en un país existe un código corto, no se permite al usuario publicar a través del código largo. Por tanto, el impacto de la vulnerabilidad es de menor magnitud, quedando reducido a solo los usuarios que solo puedan enviar sus tweets a un código largo y además no tengan activado el PIN.

Efecto conocido

Si Twitter ofrece activación por PIN, es porque ya fue vulnerable al falseamiento del remitente del SMS. Ya a principios de 2007, Nitesh Dhanjani daba detalles de este problema, lo que desemboco en la implementación de esta doble autenticación. Posteriormente, en 2009, Lance James se hacía eco del mismo fallo, esta vez solo afectando a usuarios de Reino Unido y Alemania. También SecurityByDefault aprovechó este fallo hace algunos años para realizar una divertida broma, con la que publicó un mensaje en una cuenta tan popular como la de @edans.

Parece que los reportes de la vulnerabilidad se han ido dando en zonas donde aún no había disponibles códigos cortos. Por tanto, la publicación no muestra nada nuevo, simplemente que siguen existiendo zonas donde la red móvil hace posible el spoofing en Twitter si no se tiene activado el PIN.

Este mismo fallo se podía encontrar en Facebook y Venmo, una plataforma social de pagos. Estos fueron solucionados antes de la publicación de la vulnerabilidad y no han trascendido más detalles.

Más información:

http://unaaldia.hispasec.com/

SMS Vulnerability in Twitter, Facebook and Venmo
http://titanous.com/posts/twitter-facebook-venmo-sms-spoofing

Twitter and SMS Spoofing
http://engineering.twitter.com/2012/12/twitter-and-sms-spoofing.html

Comentarios