- A través de la exposición de IdentifyMobile, el CCC pudo ver en tiempo real SMS con contraseñas de un solo uso, en un caso en el que se filtraron más de 198 millones de SMS de más de 200 empresas
- El 2FA por SMS es un mecanismo auxiliar que ayuda cuando solo se robó la contraseña, pero la seguridad real también depende en gran medida del nivel de gestión del proveedor de envío de SMS
- IdentifyMobile expuso en internet códigos de autenticación, números telefónicos de destinatarios, nombres de remitentes y algunos datos de cuentas, y se podía acceder simplemente adivinando el subdominio
idmdatastore - Google, Amazon, Facebook, Microsoft, Telegram, Airbnb, FedEx y DHL, entre otras, estuvieron dentro del alcance; solo con el feed en tiempo real era posible secuestrar números de WhatsApp o intentar transacciones financieras e inicios de sesión en servicios
- La autenticación de dos factores por SMS es mejor que usar solo contraseña, pero son más seguros los métodos que dependen menos de las redes móviles y de los operadores de SMS, como las contraseñas de un solo uso basadas en apps o los tokens de hardware
Las debilidades del 2FA por SMS que reveló la exposición de IdentifyMobile
- El 2FA por SMS exige tanto la contraseña que conoce el usuario como un código SMS que demuestra acceso al número telefónico
- Se usa como una capa adicional para impedir el secuestro de cuentas cuando solo se filtró la contraseña
- El SMS puede incluir códigos válidos por poco tiempo, como códigos de verificación de WhatsApp o TAN para transferencias bancarias
- La autenticación basada en SMS ya está expuesta a varias vías de ataque
- Se pueden interceptar SMS mediante SIM swapping
- Se pueden explotar vulnerabilidades SS7 de las redes móviles
- Mediante phishing, se puede hacer que el usuario entregue directamente la contraseña de un solo uso
- Desde 2013, el CCC recomienda no usar SMS como medio de autenticación de dos factores
- En este caso, el proveedor de envío de SMS pudo convertirse en un punto débil de la cadena de autenticación sin que el atacante tuviera que apuntar directamente a la red de telecomunicaciones ni al usuario
- IdentifyMobile es un proveedor que envía grandes volúmenes de SMS para varias empresas y servicios
- Este proveedor tenía acceso al contenido de los SMS, que incluía códigos de autenticación
- El CCC pudo acceder a datos en tiempo real con solo adivinar el subdominio
idmdatastore
Alcance de la exposición y riesgos reales
- Los datos expuestos incluían no solo el contenido de los SMS, sino también números telefónicos de destinatarios, nombres de remitentes y, en algunos casos, otros datos de cuentas
- Las empresas afectadas fueron más de 200, incluidas aquellas que confiaron su seguridad de autenticación a IdentifyMobile de forma directa o a través de otros proveedores de servicios
- Google, Amazon, Facebook, Microsoft
- Telegram, Airbnb, FedEx, DHL
- En total se filtraron más de 198 millones de SMS
- Solo con el feed en tiempo real eran posibles varios escenarios de abuso
- Secuestro de números de WhatsApp
- Si se conocía la contraseña, realizar transacciones financieras sin acceso al teléfono
- Si se conocía la contraseña, iniciar sesión en varios servicios
- En general, para un abuso real todavía se necesitaba la contraseña, pero los datos también incluían enlaces de 1-click login
- En algunas grandes empresas afectadas, el alcance protegido por IdentifyMobile se limitaba a servicios específicos
- La negligencia de IdentifyMobile expuso a empresas y clientes a un riesgo considerable
- El CCC no almacenó los datos, pero no se puede descartar que otras personas hayan accedido
Métodos de autenticación que se pueden elegir en lugar de SMS
- Cuando esté disponible, es más seguro usar contraseñas de un solo uso generadas en una app o tokens de hardware en lugar de SMS
- Estos métodos no dependen de la red móvil
- Tampoco dependen de proveedores de envío de SMS como IdentifyMobile
- Aun así, la autenticación de dos factores es mejor que usar solo una contraseña
1 comentarios
Opiniones en Hacker News
Hace poco, un conocido cayó en un phishing de Google Ads: el atacante compró anuncios para búsquedas como “BANKNAME login”, clonó con mucho detalle la página de inicio de sesión del banco y, por detrás, estaba haciendo un ataque de retransmisión.
Cuando ingresó el código de autenticación de dos pasos de la app del teléfono, la pantalla lo rechazó y pidió un código nuevo, pero en realidad el segundo código era un código de aprobación para agregar un nuevo destinatario de “pay anyone”, y con eso le sacaron el dinero.
Siempre pensé que la autenticación de dos pasos por SMS era débil a nivel de protocolo, pero en este caso quizá el método por SMS del banco, que envía un mensaje distinto al agregar un nuevo destinatario que al iniciar sesión, habría sido mejor.
Lo ideal sería no usar una simple app generadora de tokens, sino generar tokens por tipo de transacción, como un token para iniciar sesión y otro para agregar destinatarios, y hacer que no puedan reemplazarse entre sí. Me da curiosidad si alguien ha visto un banco que ofrezca autenticación de dos pasos de este nivel.
Tal vez las passkeys vuelvan irrelevante este problema, porque establecen una conexión física con hardware local. Por cierto, la víctima al final recuperó el dinero.
Si quieres mejorar tu postura de seguridad, instalar un bloqueador de anuncios es una de las mejores medidas. Recomiendo mucho configurar uBlock Origin a amigos o familiares que no son muy técnicos.
La pantalla de la app de Australia puede verse aquí, y las apps de EE. UU. y Reino Unido son parecidas: https://www.hsbc.com.au/content/dam/hsbc/au/images/ways-to-b...
HSBC ofrece esto desde hace años, y no entiendo bien por qué todavía no es un estándar o por qué otros bancos de EE. UU. no lo han adoptado.
Entonces no entiendo por qué son tan estrictos con los anuncios normales, pero venden anuncios a páginas de phishing que se hacen pasar por un banco y apuntan a quienes buscan ese banco.
“Usa una extensión de bloqueo de anuncios cuando hagas búsquedas en Internet. La mayoría de los navegadores de Internet permiten agregar extensiones, incluidas extensiones de bloqueo de anuncios. Estos bloqueadores de anuncios pueden activarse y desactivarse dentro del navegador, lo que permite mostrar anuncios en ciertos sitios web y bloquearlos en otros.”
[0] https://www.ic3.gov/Media/Y2022/PSA221221
Desde hace mucho sospecho que las empresas que obligan a usar autenticación de dos pasos por SMS no se toman en serio la seguridad; simplemente quieren tu número de teléfono y usan la autenticación de dos pasos como teatro de seguridad para obtenerlo.
Además, es un identificador que uno entrega directamente a cada persona que conoce, así que se puede decir que parece un mal sistema.
Hace más difícil crear cuentas nuevas para evadir bloqueos, y facilita vincular comportamientos indebidos que aparecen en varias cuentas.
Creo que se subestima cuánto han contribuido los spammers al deterioro de Internet.
También es más fácil de dar soporte.
NIST lleva bastante tiempo diciendo explícitamente que no se use autenticación de dos pasos por SMS.
NIST SP 800-63B §5.1.3.3
https://pages.nist.gov/800-63-3/sp800-63b.html#pstnOOB
Cliente: “¿A qué se refieren con una app de autenticación de dos pasos? ¿No se suponía que el código llegaba a mi teléfono?”
Soporte: “Así es, pero ahora ya no damos soporte a la autenticación de dos pasos por SMS.”
Cliente: “Pero no tenía problemas cuando el código me llegaba al teléfono.”
Soporte: “Sí, pero NIST recomienda no usar autenticación de dos pasos por SMS.”
Cliente: “¿Qué es NIST? Esto es muy frustrante. Necesito entrar a mi cuenta.”
Lamentablemente, casi todos los bancos te obligan a usar SMS. Es porque las apps bancarias se niegan a ejecutarse en teléfonos rooteados. Qué gran logro de seguridad.
En mi país, casi todos los bancos obligan a usar autenticación de dos pasos basada en app, sin alternativa por SMS.
Si no quieres comprar y cargar un teléfono aparte, no te queda más que usar el único banco que no lo exige.
En un teléfono rooteado, se abre la posibilidad de que otras apps espíen y roben información bancaria.
Parece bastante razonable que una app bancaria no se ejecute en un teléfono cuya seguridad está comprometida.
Sin embargo, GrapheneOS no entra en esta categoría, porque las builds oficiales de GrapheneOS no tienen permisos de root.
El texto mezcla dos problemas con implicaciones de seguridad distintas
Los enlaces de 1-click login son preocupantes, y servicios como WhatsApp pueden ser secuestrados con solo acceder a los SMS
Pero los códigos de autenticación en dos pasos son relativamente menos preocupantes. Como son un segundo factor, el atacante también necesita la contraseña
En un caso así, vería con mucha menos alarma el uso de SMS y el riesgo de interceptación
En el Reino Unido, parece que casi todas las transacciones de banca en línea ahora se verifican por SMS. Da la impresión de que lo exige la ley, y reemplazó al sistema anterior de verificación con tarjeta bancaria + lector de tarjetas + PIN
El método anterior no solo era más seguro, sino que tampoco dependía de tener un teléfono en funcionamiento con señal
Espero que algún día se reconozca que esto fue un error terrible y se corrija, pero no tengo muchas expectativas
Estoy de acuerdo en que el lector de tarjetas era útil sin conexión. Pero casi nunca me acordaba de llevar ese dispositivo, así que a menudo me quedaba bloqueado durante los viajes
Suecia resolvió este problema hace mucho con BankID
https://en.wikipedia.org/wiki/BankID
Es sorprendente lo que se puede lograr con un poco de cooperación entre instituciones públicas y privadas. Es la única forma de iniciar sesión y hacer autenticación en dos pasos en servicios gubernamentales y en la mayoría de los bancos, y funciona bien
Cuesta creer que no todos los países tengan un sistema así; más aún, que no exista uno así para toda la UE
Aun así, no me hago demasiadas ilusiones
https://ec.europa.eu/digital-building-blocks/sites/display/E...
Parece que los mensajes del bucket de S3 se actualizaban cada 5 minutos: https://www.zeit.de/digital/datenschutz/2024-07/it-sicherhei...
Sin embargo, CCC se equivocó al definir esto como un problema exclusivo de 2FA por SMS. Lo afectado no fue solo Twilio Verify (API de autenticación en dos pasos), sino todos los SMS enviados a través de este proveedor
Esto parece más un problema de seguridad del proveedor, por no proteger correctamente un repositorio de datos sensibles, que un problema de SMS en sí
Esa ruta de ataque específica ni siquiera existe con esas tecnologías
Varias instituciones financieras donde trabajo exigen autenticación en dos pasos por SMS y no ofrecen opciones HOTP/TOTP. Es una locura