El uso de códigos QR lleva ya tiempo entre nosotros, y desde el punto de vista de la seguridad siempre ha planteado varios retos, debido, principalmente, a que muchos usuarios no revisan hacia dónde les redirigen. Con el tiempo, se han desarrollado aplicaciones o incluso funciones nativas en el propio sistema operativo de los dispositivos móviles que ayudan a previsualizar hacia dónde se nos quiere redirigir, pero, tal y como vamos a comprobar, esto tampoco garantiza completamente la seguridad.
Problemas en iOS 11 para leer códigos QR
Con el lanzamiento de iOS 11 hace unos meses, Apple introdujo la capacidad de leer códigos QR de forma nativa, sin necesidad de utilizar una aplicación específica para ello. De esta forma, los usuarios podrían escanear estos códigos, ver hacia dónde les redirigen y abrir los enlaces en su navegador.
Hasta aquí todo parecen ventajas, pero el investigador Roman Mueller ha demostrado la existencia de una vulnerabilidad que permite engañar al dispositivo haciéndole creer que va a redirigir al usuario a una web legítima, cuando en realidad le está dirigiendo a un sitio web que no tiene nada que ver.
Esto se consigue modificando la URL de una forma específica para engañar al software incluido en la cámara de los iPhone. Al parecer, el proceso encargado de leer los códigos QR integrado en la cámara no identifica correctamente las direcciones web, tal y como sí lo hacen la mayoría de navegadores. En una prueba de concepto en el que el investigador preparó una URL en un formato especial dentro de un código QR sucedió lo siguiente:
El software lector de QR incorporado en la cámara del iPhone no interpretó bien la URL «https://xxx\@facebook.com:443@infosec.rm-it.de/» y pensó que el dominio real era “facebook.com” y “xxx\” el usuario que debía enviarse a esa dirección. Sin embargo, si introdujéramos esa misma URL en un navegador como Safari, este interpretará toda la cadena “xxx\@facebook.com” como el usuario y “443” como la contraseña que debe enviarse para acceder al dominio “infosec.rm-it.de”, aunque no hagan falta estos datos de registro para poder ver la web.
Demostración práctica del fallo al al leer el código QR – Fuente: infosec.rm-it.de
Posibles problemas de seguridad y mitigaciones
El uso de códigos QR con direcciones URL especialmente creadas por un atacante para engañar al lector de códigos integrado en la cámara de los iPhone puede utilizarse, principalmente, para redirigir a usuarios desprevenidos a sitios web de phishing. Una vez que el usuario está aparentemente convencido de que se encuentra en una web legítima, puede introducir sus credenciales de acceso y estas serían robadas por los delincuentes.
Para evitar este tipo de situaciones es muy recomendable activar, siempre que sea posible, el doble factor de autenticación. De esta forma, aunque hayamos introducido nuestro nombre de usuario y contraseña en una web falsificada, los atacantes no podrán acceder a esta al no disponer del código de verificación que obtendremos en nuestro móvil, bien a través de una aplicación de terceros o mediante mensajes SMS.
No obstante, cabe recordar que no hace falta que los delincuentes se aprovechen de fallos como el que acabamos de recordar, puesto que muchos usuarios siguen sin verificar los sitios a los que son redirigidos, confiando plenamente en códigos QR que pueden haber sido modificados por atacantes. En el caso de dispositivos Android esta situación se agrava, puesto que en muchas ocasiones es posible que se llegue a descargar malware en el dispositivo, especialmente si hablamos de versiones antiguas de este sistema operativo.
Con respecto a los usuarios de iOS que se pregunten cuándo estará disponible una solución a este fallo, el investigador informó al equipo de seguridad de Apple acerca de esta vulnerabilidad el 23 de diciembre de 2017, pero en el momento de escribir estas líneas el fallo seguía presente.
Conclusiones
El descubrimiento de fallos de seguridad como este que acabamos de analizar no hace sino allanar el camino a grupos de delincuentes que quieran aprovecharse de la pobre concienciación que siguen teniendo muchos usuarios cuando tienen que lidiar con códigos QR. Es importante que verifiquemos estar ante el sitio web que queremos estar y, ante la duda, introducirlo de forma manual en el móvil o en otro dispositivo.