Riesgos de la toma de posesión de la cuenta con el relleno automático del código de seguridad de iOS [con vídeo]

Andreas Gutmann, 23 de Febrero de 2021

En los últimos doce meses se han producido cambios significativos en el panorama de la seguridad y la ciberseguridad para las organizaciones que envían códigos de seguridad a través de mensajes de texto SMS a sus clientes con fines de autenticación de usuarios, autenticación de transacciones o vinculación de dispositivos. Este artículo de Andreas Gutmann, investigador del Centro de Innovación de Cambridge de OneSpan, explica los pasos que estas organizaciones pueden dar para mejorar la seguridad de sus servicios y de las cuentas online de sus usuarios.

Elfraude de toma de posesión de cuentas (ATO), por el que un estafador obtiene acceso no autorizado a la cuenta en línea de un usuario, es una de las mayores amenazas de seguridad a las que se enfrentan muchas organizaciones. Entre los métodos de toma de posesión de cuentas más frecuentes se encuentran la ingeniería social, los ataques de tipo man-in-the-middle, los ataques a navegadores web, los ataques a redes WiFi públicas, el malware a través de una página web o un archivo adjunto de correo electrónico y el relleno de credenciales. La defensa más común contra el fraude de toma de posesión de cuentas es el uso de códigos de seguridad para la autenticación de múltiples factores (MFA), la autenticación de transacciones y para lograr la vinculación de dispositivos para aplicaciones móviles. Estos códigos de seguridad suelen enviarse por SMS al teléfono móvil del consumidor. En el pasado descubrimos riesgos de seguridad únicos en la forma en que los iPhones manejan dichos códigos de seguridad utilizando las funciones de autocompletar y Apple parcheó algunas de las vulnerabilidades de autocompletado reportadas a finales de 2020.

Función de autorrellenado de código de seguridad en iOS 14: una solución parcial para las vulnerabilidades de iOS 12

La función de rellenado automático de códigos de seguridad en iOS es una función práctica para eliminar la fricción en la experiencia del usuario y, por lo tanto, mejorar la experiencia del consumidor cuando maneja códigos de seguridad enviados por SMS a un iPhone (y MacBook / iMac si los consumidores comparten SMS entre sus dispositivos). La función extrae automáticamente los códigos de seguridad de los SMS entrantes y ofrece una interfaz para que los consumidores introduzcan esos códigos en sitios web o aplicaciones con un solo toque.

Figura 1: Sugerencia de la función de autorrellenado de códigos de seguridad en iOS para rellenar el código de seguridad 834956 en un campo de formulario de un sitio web (no se muestra en esta imagen) tocando una vez la sugerencia de autorrellenado que aparece encima del teclado.

Figura 1: Sugerencia de la función de autorrellenado de códigos de seguridad en iOS para rellenar el código de seguridad 834956 en un campo de formulario de un sitio web (no se muestra en esta imagen) tocando una vez la sugerencia de autorrellenado que aparece encima del teclado.

Lo más importante es que los consumidores ya no tienen que abrir su aplicación de SMS y leer el SMS cuando siguen una sugerencia de autocompletar. Sin embargo, la propia sugerencia de autocompletar no proporciona información contextual esencial sobre los códigos de seguridad recibidos que podrían leerse en el SMS. Como consecuencia, los consumidores pueden desconocer quién les ha enviado un código de seguridad y con qué propósito. Estas circunstancias pueden ser aprovechadas por actores maliciosos, como ya demostramos aquí.

Posteriormente, la compatibilidad con una tecnología de seguridad llamada Domain Binding se añadió a la función de autorrellenado de códigos de seguridad con el lanzamiento de iOS 14 a finales de 2020. Esto permite al remitente de un SMS especificar el sitio web en el que debe insertarse un código de seguridad. En ausencia de esta especificación en el SMS, la función de autorrellenado del código de seguridad podría sugerir la inserción del código de seguridad en cualquier sitio web. La sintaxis necesaria para la vinculación de los códigos de seguridad en los SMS se visualiza en la siguiente ilustración:

Figura 2: Ilustración de la sintaxis necesaria para la vinculación de dominios con Security Code AutoFill. La primera línea es un texto legible para los consumidores que abren su aplicación de SMS y copian manualmente el código de seguridad. La segunda línea es un código legible por la máquina, por lo que @example.com se refiere al dominio web de https://example.com y #123456 es un código de seguridad destinado a ese dominio.

Figura 2: Ilustración de la sintaxis necesaria para la vinculación de dominios con Security Code AutoFill. La primera línea es un texto legible para los consumidores que abren su aplicación de SMS y copian manualmente el código de seguridad. La segunda línea es un código legible por la máquina, por lo que @example.com se refiere al dominio web de https://example.com y #123456 es un código de seguridad destinado a ese dominio.

Ten en cuenta que iOS 14 no es compatible con los siguientes dispositivos: iPhone 5S, iPhone 6 y iPhone 6 Plus. Estos dispositivos seguirán siendo vulnerables y no se beneficiarán de la solución parcial de Apple mediante la integración de la tecnología de enlace de dominios.

El siguiente vídeo es una grabación de una conferencia que di sobre este tema en la Universidad de Northumbria (Reino Unido). En esta conferencia entro en más detalles sobre las vulnerabilidades de seguridad que encontramos en iOS y la corrección parcial implementada por Apple.

Mejoras para la autenticación multifactorial

Los casos de uso de la autenticación multifactorial son los principales beneficiarios de la adición de la tecnología de vinculación de dominios a la función de rellenado automático de códigos de seguridad. Las organizaciones que utilizan códigos de seguridad enviados por SMS para mejorar la protección durante el inicio de sesión de sus clientes en el sitio web pueden utilizar la función de rellenado automático de códigos de seguridad con la vinculación de dominios para ofrecer una experiencia de uso y seguridad al cliente.

Consejo de seguridad:

Las organizaciones con estos casos de uso deberían adoptar la tecnología de vinculación de dominios y adaptar el diseño de sus correspondientes SMS. En el caso (poco frecuente) de que las organizaciones utilicen códigos de seguridad por SMS para la AMF en aplicaciones móviles, he incluido un consejo de seguridad adicional a continuación.

Cambios necesarios para la vinculación de dispositivos

La tecnología de vinculación de dominios, tal y como la ha implementado Apple, no admite casos de uso para aplicaciones móviles en los iPhones, es decir, las organizaciones sólo pueden especificar sitios web, pero no aplicaciones móviles, como el lugar donde debe introducirse un código de seguridad. Por lo tanto, las sugerencias de autocompletar dichos códigos de seguridad podrían aparecer en otras aplicaciones y sitios web, como los sitios web de phishing.

Consejo de seguridad:

Para remediar este problema, las organizaciones podrían redactar el SMS correspondiente de manera que los códigos de seguridad no sean reconocidos como tales por iOS. Las organizaciones pueden evaluar diferentes diseños enviándose a sí mismas un SMS. Si el código de seguridad está subrayado con una fina línea gris, iOS lo reconoce como un código de seguridad. Por ejemplo, las organizaciones pueden anteponer unas letras que identifiquen a su organización a sus códigos de seguridad en los SMS y rellenar previamente esas letras en el campo del formulario correspondiente donde debe introducirlo el cliente. Una implementación de este tipo para el Banco A podría utilizar "BA-124680" al transmitir el código de seguridad "124680" y luego rellenar previamente los símbolos "BA-" en el campo del formulario correspondiente en su aplicación. Sin embargo, aunque actualmente iOS no reconoce tales construcciones como códigos de seguridad, no podemos excluir la posibilidad de que esto cambie en el futuro. Por lo tanto, será necesario vigilar activamente esta evolución.

Ramificaciones para la autentificación de las transacciones

La autenticación de transacciones es el caso de uso menos compatible con la función de rellenado automático de códigos de seguridad y conlleva los mayores riesgos para las organizaciones que envían códigos de seguridad por SMS.

El primer problema es que la tecnología de vinculación de dominios no es apropiada para aliviar los riesgos de seguridad típicos asociados a la autenticación de transacciones, para la cual la principal preocupación de seguridad es la manipulación de transacciones más que el phishing. Dado que la función de autorrellenado de códigos de seguridad descontextualiza los códigos de seguridad, los usuarios seguirían sin poder verificar que sus transacciones no han sido manipuladas al utilizar dicha función.

Otro problema es que si la función de autocompletar el código de seguridad detecta una cantidad de dinero en una moneda reconocida, muestra esta cantidad junto a la sugerencia de autocompletar, pero la función no reconoce muchas monedas. En consecuencia, los clientes de un país con una moneda reconocida (por ejemplo, en el Reino Unido) podrían acostumbrarse a ver esta información cada vez que autoricen una transacción. Sin embargo, si un adversario cambiara la moneda a una no reconocida al manipular una transacción (por ejemplo, cambiar la moneda de la libra esterlina GBP a la corona sueca SEK), el cliente podría ser engañado haciéndole creer que se trata de un código de autorización multifactor.

Figura 3: La imagen de la izquierda muestra una sugerencia de autocompletar un código de seguridad de autorización de transacción vinculado a una transacción por valor de 100 GBP. La imagen de la derecha muestra una sugerencia de autocompletar un código de seguridad de autorización de transacción vinculado a una transacción por valor de 1500 SEK.

Figura 3: La imagen de la izquierda muestra una sugerencia de autocompletar un código de seguridad de autorización de transacción vinculado a una transacción por valor de 100 GBP. La imagen de la derecha muestra una sugerencia de autocompletar un código de seguridad de autorización de transacción vinculado a una transacción por valor de 1500 SEK.

Consejo de seguridad:

Las organizaciones podrían redactar los SMS correspondientes de forma que los códigos de seguridad para la autorización de transacciones no sean reconocidos como códigos de seguridad por iOS. Puede encontrar más información sobre este enfoque en los consejos de seguridad para los casos de uso de la vinculación de dispositivos.

Además, considere la posibilidad de utilizar mecanismos de seguridad más fuertes que los códigos de seguridad enviados por SMS:

  • Para la autentificación de transacciones en la banca online, se podrían utilizar autentificadores basados en software o hardware.
  • Para la autentificación de las transacciones en los pagos en línea, se podría utilizar la autentificación fuera de banda (OOB) o los códigos dentro de la aplicación para la autentificación de las transacciones en lugar de los códigos de seguridad por SMS.
Fraude de robo de cuenta: cómo proteger a sus clientes y su negocio
PAPEL BLANCO

Fraude de robo de cuenta: cómo proteger a sus clientes y su negocio

Al ofrecer un desglose de las principales técnicas de fraude de adquisición de cuentas, este libro electrónico cubre el enfoque de seguridad de múltiples capas necesario para proteger las cuentas de sus clientes.

Detener la toma de control de cuenta

Andreas es investigador en el Centro de Innovación Cambridge de OneSpan y trabaja en la intersección de FinTech con usabilidad, seguridad y privacidad. Es becario de acciones Marie Skłodowska-Curie de la Comisión Europea y actualmente está cursando un doctorado en el University College London.