Cómo podrían haber inundado tu teléfono con spam de Microsoft

ActualidadMicrosoft

Microsoft tiene una página web de ayuda para configurar Outlook en el móvil, donde puedes escanear un código QR, que te lleva al enlace de descarga correspondiente…

… o introducir tu número de teléfono y recibir un SMS con el enlace:

Al igual que el investigador de seguridad italiano Luca Epifanio, nuestro primer pensamiento fue: “¿Qué pasa si alguien decide poner el número de teléfono de otra persona y luego enviarlo una y otra vez?”

Eso sería bastante malo: malo para el destinatario, cuyo teléfono se inundaría de mensajes de texto no deseados, y malo para Microsoft, que parecería ser un vulgar spammer.

(También podría terminar mal para la persona que desencadenó todo el spam, si lo detiene la policía o los reguladores, pero eso es otro problema).

Lo probamos con nuestro propio número de teléfono, usando varios navegadores de varios países (utilizamos el proxy Tor, así que surgíamos en Internet desde lugares semi aleatorios), y nos alegramos de notar, al igual que Luca Epifanio, que después de tres mensajes, ya no funcionaba.

El sitio web de Microsoft aceptará el número por cuarta, quinta, sexta vez, y así sucesivamente, pero simplemente y silenciosamente deja de enviar mensajes de texto una vez que recibe tres mensajes. (No sabemos cuánto tiempo lleva levantar el bloqueo, pero ciertamente evitó que enviáramos spam a voluntad).

Intentamos enviar muchos mensajes desde varias ubicaciones.

Solo aparecieron los tres primeros.

Bueno, Luca se preguntó si la detección del “mismo número” de Microsoft era muy robusta, y si se podría evitar fácilmente.

Utilizando un proxy web instalado localmente, espió su propio tráfico web para ver cómo se veían los datos en el camino desde su navegador a Microsoft.

Para su sorpresa, descubrió que al volver a reproducir la solicitud web original con un carácter no alfabético al final, como una estrella (*) o un signo más (+), obtendría tres posibilidades más para enviar mensajes de texto al mismo número.

Luego podría elegir otro carácter y obtener tres intentos más, y así sucesivamente, lo que le permitiría eludir el límite de tres mensajes sin problemas, simplemente produciendo nuevas solicitudes HTTP con una pequeña modificación cada vez.

Solo los dígitos importan en el número de teléfono al que se envía el mensaje, pero, como Luca sugirió en un correo electrónico que nos envió, parece que la “verificación de número” de Microsoft se realizó con los caracteres extraños incluidos.

En otras palabras, el número no se estaba recortando a su forma correcta más simple (lo que se llama canonicalización en jerga) antes de que se registrara, probara y utilizara.

Como resultado, números que son iguales en la práctica parecían diferentes en teoría, lo que permite evitar el límite de mensajes.

Este es un tipo de problema similar al que Google experimentó en 2017, cuando una aplicación de adware que afirmaba falsamente que era del proveedor WhatsApp, Inc. pudo escabullirse de las comprobaciones de validación de Play Store simplemente agregando un carácter de espacio al nombre de empresa.

Visualmente, no se notaba la diferencia, por lo que la nueva aplicación parecía legítima, pero programáticamente los nombres de las dos empresas tenían diferentes longitudes y contenían diferentes caracteres, por lo que la nueva aplicación no fue reconocida como una impostora y fue admitida de todos modos.

¿Qué hacer?

La buena noticia es que no tienes que hacer nada: Luca informó de manera responsable a Microsoft, quien solucionó el problema.

Intentamos agregar caracteres redundantes a nuestro propio número de teléfono hoy, y no pudimos enviar ningún mensaje después del tercero.

Luca también recibió un pago de recompensa por errores, con el resultado final de que todos ganaron.

Creemos que las lecciones a aprender son:

  • La búsqueda de errores no se trata solo de piratería de código máquina e ingeniería inversa. No necesitas utilizar un depurador y un desensamblador para realizar un trabajo de ciberseguridad útil y productivo.
  • Los errores pueden ser engañosamente simples. En este caso, un solo carácter que normalmente se ignoraría fue suficiente para omitir un límite importante. Si eres un programador, no olvides probar las cosas obvias, así como todos esos “casos esquineros” complejos con los que tienes que lidiar.
  • El informe responsable de errores realmente funciona. Si encuentra errores, es tentador causar un gran revuelo al revelarlos por un momento de gloria, pero como Luca ha demostrado aquí, puedes hacer lo correcto, ayudar los demás y aún obtener reconocimiento, sin convertir los problemas de seguridad en pesadillas.

Leave a Reply

Your email address will not be published.