Entras en tu aplicación favorita, te aparece un enlace para que vincules tu cuenta con Dropbox para tener acceso a tus archivos, tú das permiso y las dos aplicaciones hacen todo automáticamente sin que tu intervengas. Parece algo perfecto y sin ningún problema ¿verdad? Pues en realidad esta simple acción que realizan miles de aplicaciones de iOS es un grave problema de seguridad y privacidad. Todo reside en las URL Scheme.
Una URL Scheme (o esquema de URL) es, explicándolo directamente, un tipo de URL que se puede implantar en diversos sistemas y que en iOS es personalizable por las aplicaciones como haya decidido el desarrollador utilizarlas. Hay algunas, digamos, estándar como tel:// que nos permiten llamar a teléfonos desde cualquier aplicación, pero hay otras como tweetbot:// o byword:// que realizan únicamente acciones relacionadas con sendas aplicaciones. Ambas, tanto las estándar como las personalizadas, presentan en iOS graves problemas de seguridad y privacidad
El problema de la no interacción del usuario
Para comprender cómo una simple "personalización" de las URL puede presentar un problema de seguridad y privacidad grave tan sólo tenemos que hacer un ejercicio de imaginación. Pensemos que estamos trabajando en un documento en Google Docs compartido y un compañero escribe una URL, cuando la pulsamos en nuestro iPhone o iPad, la aplicación de Google Docs nos enseña la web en su visor personal y automáticamente nos hace una llamada a un número desconocido de tarificación adicional, el cual nos coge en el momento y nos empieza a cobrar.
¿Cómo ha ocurrido esto? Pues de una manera muy simple: la URL que escribió nuestro compañero en Google Docs contenía un script que ejecutaba automáticamente la URL tel://XXXX siendo XXXX el número de tarificación adicional. De esta manera iOS entendió que la web quería llamar a ese número y realizó la acción sin preguntarnos y terminando siendo timados de arriba a abajo. Este fallo de seguridad no sólo ocurre con las llamadas, si no que gracias a la posibilidad de que cada aplicación tenga sus propias URL Scheme se pueden hacer acciones tales como seguir a gente en Twitter o sobreescribir archivos sin que el usuario se de cuenta, tan sólo sabiendo como funciona la URL Scheme de cada aplicación.
De quién es la culpa y cómo solucionarlo
Muchos estaréis pensando ahora mismo que la culpa es de Apple cuando es todo lo contrario. En los manuales de programación para iOS Apple especifica claramente que iOS no avisa a la hora de "ejecutar" las URL Scheme, ya que es labor del desarrollador implantar estos avisos en los casos que lo consideren oportuno. Debido a esto, tienen que ser los propios dueños de las aplicaciones los que corrijan este error, y entre ellos están nombres tan grandes como Dropbox, Google+ y Facebook.
¿Cómo se puede solucionar? Por parte del usuario no hay más manera que vigilar bien los enlaces que pulsamos en iOS. Como ya dijimos, la solución tiene que venir por parte de los desarrolladores, implantando un aviso en estos pasos intermedios que ahora se hacen automáticamente cuando no deberían.
Si tenéis curiosidad por saber hasta qué niveles llega este fallo de seguridad y privacidad, Guillaume K. Ross realizó una interesante charla hace unos días en el BSidesLV 2014 en la que demuestra cómo utilizan algunas aplicaciones las URL Scheme y cómo se pueden utilizar para hacer el mal. Está en inglés pero las imágenes hablan por sí solas
Más información | Algorithm.dk, Iron Geek
Foto | NEC
Ver 23 comentarios