Seguro que en más de una ocasión has visitado una página en la que aparece un número de teléfono con un enlace. Si haces click, en iOS el teléfono te mostrará un cuadro de diálogo que te pregunta si deseas llamar o no. Hasta ahí todo normal. Sin embargo, dos investigadores especializados en seguridad informática han descubierto un bug que se aprovecha de esta funcionalidad para realizar llamadas sin avisar.
Pero empecemos por el principio. Apple explica en su documentación para desarrolladores lo que son los Phone Links, que tienen la siguiente forma:
Si os fijáis, tienen la misma sintaxis que un enlace normal, sólo que el destino es un teléfono en lugar de una web. Pero en esa misma página hacen una advertencia bastante relevante: "Cuando el usuario abre una URL con el parámetro tel en una aplicación nativa, iOS no muestra ninguna alerta y comienza la llamada sin avisar al usuario." Es decir, si abres el link en Safari, te preguntará si deseas llamar a ese teléfono, pero si es desde otra app nativa... no pedirá tu confirmación.
¿Qué significa esto? Lo más lógico sería que Apple lo bloquease de alguna forma u obligase a las apps de terceros a mostrar el mismo cuadro de diálogo que ellos muestran, pero la realidad es otra. En Algorithm.dk han probado este bug y, para su sorpresa (y la nuestra) si haces click en un enlace así desde apps como Facebook Messenger, Gmail, Google+, Twitter y un largo etcétera, la llamada comenzará automáticamente.
En la página del investigador podéis ver varios *.gif animados con el proceso en distintas aplicaciones.
Ojo, peligroso también sin hacer click
Sé lo que estáis pensando: vosotros nunca haríais click en una url tan extraña, ¿verdad? Pues tampoco estáis a salvo de este bug. Un simple código javascript puede hacer que con simplemente cargar una página se pueda generar también una de estas llamadas automáticas. El código malicioso se esconde dentro de la web y se ejecuta cuando el usuario entra desde su teléfono, sin más.
El código se puede insertar en una web para que se ejecute con tan sólo entrar a la misma
¿Qué pueden hacer con tu teléfono?
El hecho de que alguien pueda "jugar" así, de manera tan sencilla, con la capacidad de llamar de tu móvil puede ser un auténtico peligro. Sí, tú puedes darte cuenta y llegar a tiempo para colgar antes de que la otra persona descuelgue. Si andas rápido, esto evitará que se realicen posibles llamadas a números premium que a final de mes te den un susto con la factura.
Sin embargo, es una manera fácil de tener localizada a una persona. ¿Que quieres adivinar su número? Basta con enviarle un enlace a una web que parezca inocente pero que tenga el código malicioso. Basta con que el atacante ponga como destino su propio móvil. Aunque cuelgues rápido, puede que la llamada ya se haya establecido y tu número aparecerá en su lista de llamadas perdidas, sin necesidad siquiera de que te descuelguen.
Otras aplicaciones, también en riesgo
Pero las llamadas no son las únicas acciones automáticas que se pueden aprovechar de estos bugs en los enlaces de iOS. Sobre estas líneas os dejamos un vídeo en el que Guillaume Ross explicaba hace unos días cómo es sencillísimo hacer, por ejemplo, que un usuario comience a seguir a otro en Twitter con tan sólo cargar una página. De nuevo, se toma un enlace y mediante iframes se puede hacer que el usuario ejecute, sin quererlo, un comando en el cliente Tweetbot.
Con Facetime, más de lo mismo. Según explica Ross, las llamadas en Facetime de audio no piden confirmación, así que si alguien desea saber la dirección o el teléfono asociado a tu cuenta, sólo tiene que incluir un enlace y conseguir que el usuario objetivo lo pulse o insertarlo vía iframe para que lo cargue automáticamente. "Incluso aunque cuelgues muy rápido, tu información ya está en el teléfono del atacante", explica este investigador.
Con este bug te pueden obligar a seguir a alguien en Twitter, mandar "Yo" sin que tú te enteres y un montón de maldades más
En el caso de Ross, explica que contactó con Apple para explicarle el problema con Facetime y estos respondieron arreglando la vulnerabilidad... en Safari, pero no en Facetime, lo que significa que el problema sigue ahí si el usuario abre el enlace desde cualquier otro lugar. Safari te preguntará si de verdad quieres hacer la llamada (siempre puedes negarte), pero el resto de apps no. ¿Y los navegadores? Desde Chrome le dijeron que no era su problema, sino de Chromium.
Como decimos, Facetime no es la única afectada. Cualquier aplicación que utilice URL Schemes personalizado de iOS está en riesgo. Por ejemplo, Ross muestra cómo hacer un click en un enlace puede poner a cero una calculadora que utiliza estos enlaces. Inocente, sí, ¿qué va a pasar por poner a cero una calculadora o activar una linterna? Pero como ya hemos visto el problema es otro: se pueden hacer llamadas, manejar Twitter, utilizar Facetime...
¿Bug o feature?
Lo más curioso de todo esto, como decía al principio, es que Apple reconoce en sus páginas de ayuda que iOs no muestra alertas por defecto si se trata de enlaces y apps nativas de terceros. ¿Debería? ¿O deberían ser las propias aplicaciones las que se encargaran de solucionarlo? Yo optaría por lo primero: a fin de cuentas, y si bien estaría bien que las apps controlaran estos enlaces, siempre queda la posibilidad de que alguien aproveche esta libertad para usos maliciosos. Al final lo que importa es que el bug sigue ahí (aunque Apple no lo califica como tal) y de momento nadie está haciendo nada al respecto.
Más información | Algorithm.dk y Guillaume Ross
Imagen de cabecera | Gonzalo Baeza H (CC)
Ver 36 comentarios