- Como la interfaz de restablecimiento de contraseña muestra parte del número de teléfono para verificar la cuenta, es posible recopilar fragmentos del número en varios servicios solo con una dirección de correo electrónico
- Como cada servicio tiene criterios distintos para enmascarar PII, al combinar los dígitos expuestos por eBay, Paypal, Yahoo, LastPass, Google, Facebook, Twitter, Hotmail y Steam, queda revelada una parte considerable de un número telefónico estadounidense de 10 dígitos
- Usando los datos públicos de asignación de números de NANPA y la National Pooling Administration, se pueden reducir mucho los candidatos según código de área, prefijo de central y bloque de número de abonado
- Los servicios como Amazon y Twitter, que muestran parte del correo electrónico al iniciar un restablecimiento de contraseña con un número telefónico, pueden usarse para comparar los números candidatos restantes con la pista de correo enmascarada
- La exposición de números telefónicos puede derivar en SIM swapping, ataques SS7, compromiso del buzón de voz, rastreo de ubicación y spoofing de identificador de llamadas; por eso, en las pistas de recuperación es más seguro mostrar etiquetas definidas por el usuario en lugar de fragmentos de PII
Fuga de información creada por la interfaz de restablecimiento de contraseña
- Los procesos de restablecimiento de contraseña de muchos sitios web, después de ingresar el correo electrónico, muestran opciones de recuperación como enlace por email, código por SMS o código por llamada telefónica
- Al mostrar la opción de SMS o llamada telefónica, muchas interfaces exponen parte del número de teléfono para que el usuario pueda identificarlo
- Si se conoce la dirección de correo electrónico, se pueden iniciar los flujos de restablecimiento de contraseña de varias cuentas y obtener algunos dígitos del número telefónico
- El problema es que no existe una forma estándar de enmascarar información de identificación personal (PII) como los números telefónicos, y la implementación queda a criterio de los desarrolladores de cada servicio
- En el caso de Paypal, al restablecer la contraseña se muestran el primer dígito y los últimos cuatro, pero en el desafío de 2FA después de iniciar sesión solo se muestran los últimos tres
- A un atacante que solo conoce el correo se le exponen 5 de los 10 dígitos
- A un atacante que conoce el correo y la contraseña solo se le muestran 3 dígitos
Diferencias de enmascaramiento por servicio y efecto de combinación
- Se revisaron los procesos de restablecimiento de contraseña de varios sitios populares para comparar si pueden iniciarse solo con el correo, si admiten restablecimiento basado en móvil y cuántos dígitos exponen
- El patrón de exposición varía según el servicio
- eBay: los primeros 3 dígitos y los últimos 2
- Paypal: el primer dígito y los últimos 4
- Yahoo: el primer dígito y los últimos 2
- LastPass: los últimos 4
- Google, Facebook, Twitter, Hotmail, Steam: los últimos 2
- Si existen cuentas tanto en eBay como en LastPass, solo con la dirección de correo se pueden conocer 7 dígitos de un número telefónico de 10 dígitos
- Solo con esta combinación, el rango para inferir el número baja de 1.000 millones de posibilidades a 1.000
Reducir candidatos con el sistema telefónico de EE. UU.
- Un número telefónico de EE. UU., sin contar el código de país, se compone de 3 campos
- código de área (area code o NPA)
- prefijo de central (exchange o Central Office Code)
- número de abonado (subscriber number)
- La información obtenida con la combinación de eBay y LastPass corresponde al código de área y al número de abonado; los 3 dígitos faltantes no son números aleatorios, sino el prefijo de central
- NANPA administra el plan de numeración de la red telefónica pública de Canadá, Estados Unidos y sus territorios, y algunos países del Caribe
- NANPA ofrece listas de códigos de área y sus prefijos de central correspondientes como datos públicos, que pueden consultarse o descargarse como archivos parseables
- Si por cada código de área se conservan solo los prefijos de central realmente asignados, se reducen los candidatos
- En el código de área 415 de San Francisco, no hay 1.000 prefijos de central posibles sino 784, por lo que se pueden excluir 216
- El código de área 907 de Alaska tiene 625 prefijos de central asignados
- El código de área 253 de Tacoma tiene 458 prefijos de central asignados, por lo que se puede excluir más de la mitad
Cómo aprovechar también los bloques de números de abonado
- Además del código de área y el prefijo de central, también se pueden reducir más los candidatos usando parte del número de abonado como criterio
- La National Pooling Administration administra el pooling de números y ofrece registros públicos sobre bloques asignados
- El pooling de números es un método que, en zonas de crecimiento, asigna números en bloques de 1.000 unidades en lugar de bloques de 10.000
- Por ejemplo, si en 415-272-XXXX solo está asignado un bloque específico 415-272-9XXX, se pueden excluir 415-272-[0-8]XXX y dejar solo 9XXX como candidatos
- Con este método, los números válidos posibles se reducen de 10.000 a 1.000
Candidatos restantes y restablecimiento de contraseña inverso
- Si un objetivo de la zona de Tacoma tiene cuentas de eBay y LastPass, primero se recopilan 7 dígitos y luego, con NANPA, se excluyen 542 para acotar a 458 candidatos
- Al comprobar con datos de la National Pooling Administration si los bloques están asignados, en el ejemplo los posibles números telefónicos candidatos se reducen a 445
- Para reducir aún más los candidatos restantes, se pueden usar fuentes de datos externas como motores de búsqueda, pipl, BeenVerified, Spokeo o servicios de búsqueda inversa de teléfonos
- En el addon de Twilio de WhitePages, era posible proporcionar solo el número telefónico y pagar 10 centavos para obtener información personal
- Como estos métodos son difíciles de considerar 100% confiables, se reutiliza el mismo flujo de restablecimiento de contraseña en sentido inverso
Servicios que dan una pista de correo a partir del número telefónico
- Amazon y Twitter permiten iniciar un restablecimiento de contraseña ingresando un número telefónico y muestran parte de la dirección de correo a la que se enviará el enlace de restablecimiento
- Amazon muestra la primera y la última letra del nombre de usuario, y el dominio completo; además, por la cantidad de asteriscos se puede conocer la longitud del nombre de usuario
- Twitter muestra las dos primeras letras del nombre de usuario y la primera letra del dominio; además, por la cantidad de asteriscos se puede conocer la longitud
- El flujo de ataque es el siguiente
- Iniciar el restablecimiento de contraseña en varios sitios con el correo del objetivo y recopilar partes del número telefónico
- Excluir códigos de área, prefijos de central y bloques de números de abonado inexistentes usando datos públicos de NANPA y la National Pooling Administration
- Intentar restablecimientos de contraseña con los números telefónicos candidatos restantes y comparar los caracteres del correo enmascarado con el correo del objetivo
- Siguiendo este procedimiento, se puede obtener un número telefónico de 10 dígitos asociado a una dirección de correo sin hacer ni una llamada
email2phonenumber y phonerator
- email2phonenumber es una herramienta que, al ingresar parte de un número telefónico, elimina códigos de área y prefijos de central inexistentes para generar una lista de posibles números válidos
- La herramienta usa las funciones de restablecimiento de contraseña de Amazon y Twitter para probar números telefónicos y comparar el correo enmascarado mostrado con el correo ingresado
- Aleatoriza los parámetros de las solicitudes, imita el comportamiento de un usuario y también admite el uso de servidores proxy
- Además de Amazon y Twitter, hay varios servicios que admiten restablecimiento de contraseña basado en número telefónico, y la herramienta planea aceptar soporte para servicios adicionales mediante pull requests
- phonerator se planeó como un servicio en línea que reunía datos de sistemas telefónicos por país para generar listas de números posibles, y luego fue publicado
- La dirección prevista era ofrecer soporte multinacional, más detalles, registros históricos y filtros avanzados
- Si se conocen datos como operadora, región o periodo de posesión del número, pueden usarse para reducir más los candidatos
Un problema mayor en países con números telefónicos cortos
- Aunque se trató principalmente el caso de números estadounidenses, en los sistemas telefónicos de otros países el mismo enmascaramiento puede exponer más información
- Los números móviles de España empiezan con 6 y recientemente también se usa 7; su longitud total es de 9 dígitos
- Si servicios como eBay o LastPass no reducen el enmascaramiento para ajustarlo a números más cortos, en objetivos de España solo LastPass puede revelar 5 de 9 dígitos
- En países que usan números telefónicos de 7 dígitos, como Islandia, Estonia y San Salvador, 5 de los 7 dígitos de clientes de eBay podrían quedar expuestos a alguien que solo conoce el correo
- Si se combinan cuentas de eBay y LastPass, en esos países se podría obtener el número telefónico completo solo con la dirección de correo
Ataques derivados de obtener el número telefónico
- Conocer el número telefónico puede convertirse en el punto de partida de varios ataques de seguridad y privacidad
- Algunos vectores de ataque posibles son los siguientes
- SIM swapping: mediante ingeniería social, extorsión, insiders de la operadora, etc., se transfiere el número a la SIM del atacante y se usa para restablecer contraseñas o evadir 2FA
- Ataques SS7: en varias conferencias de seguridad se ha demostrado que, abusando del viejo protocolo usado para la interacción entre operadoras, es posible rastrear ubicación o interceptar comunicaciones
- Ataques al buzón de voz: el compromiso del buzón de voz puede afectar la seguridad de las cuentas
- Rastreo de ubicación: ya se ha tratado por separado el problema del rastreo de ubicación basado en números telefónicos
- Spoofing de identificador de llamadas: se puede falsificar el número llamante mediante servicios en línea y usarlo para ingeniería social
Mitigaciones propuestas y respuesta pública
- El simple enmascaramiento que muestra parte de la PII no es suficiente
- En países con números telefónicos cortos, el mismo número de dígitos enmascarados expone una proporción mayor de la información
- En correos electrónicos, tampoco basta con ocultar solo el nombre de usuario; el dominio puede revelar el lugar de trabajo, y el TLD puede revelar información como si alguien es estudiante o el país
- Una alternativa es permitir que el usuario configure etiquetas para sus correos o números telefónicos
- Ej.: “correo personal”, “teléfono del trabajo”
- En las pistas de restablecimiento de contraseña se muestra la etiqueta, no fragmentos de PII
- Conviene que los usuarios no proporcionen su número telefónico si no es estrictamente necesario y, si lo es, pueden considerar usar un número virtual como Google Voice o una SIM separada
- Durante el proceso de divulgación responsable, se contactó a servicios que mostraban más de 2 dígitos o exponían código de área y prefijo de central
- LastPass actualizó la máscara para mostrar solo los últimos 2 dígitos
- eBay cambió a un esquema que muestra el primer dígito y los últimos 2, aunque no es perfecto
- Yahoo estaba revisando el riesgo y las mitigaciones en ese momento
- Paypal consideró que mostrar 5 dígitos a alguien que solo conoce el correo era un comportamiento diseñado intencionalmente y decidió no tomar medidas
1 comentarios
Opiniones de Hacker News
Le compré autopartes a una persona que era medio estafadora: recibió el dinero durante semanas, pero no me envió todo lo que había pedido.
Como hablamos en varias plataformas, cada una iba revelando pedacitos de su identidad y, al juntar todo, el panorama completo encajó.
Llamé a su trabajo, que era del mismo sector que las piezas que vendía, para pedirle que me enviara las partes, y también pregunté de forma casual si su empleador estaba involucrado en esa venta; de inmediato cambió de actitud y al día siguiente me mandó todo lo que había comprado, más algunos extras.
Simplemente necesitaba un punto de presión.
Una pieza que falta en el artículo es, solo para EE. UU., la base de datos CNAM.
CNAM es la base de datos que usan las telefónicas para mostrar un identificador de llamadas en texto como "SMITH JOHN" en lugar de "+1 (555) 123-4567".
Las consultas no son gratis, pero debe de haber alguna forma relativamente barata de procesar unos cientos de números, y como muchas veces el nombre y el email se parecen, también se puede crear un algoritmo para elegir al candidato más probable.
Los datos suelen estar equivocados de formas interesantes, pero aun así son bastante útiles.
curl./usr/local/bin/curl -s -X GET "https://lookups.twilio.com/v1/PhoneNumbers/…; -u $accountsid:$authtoken | /usr/local/bin/jq '.'No recuerdo el costo exacto, pero quizá sea alrededor de 1 centavo por consulta; también muestra la operadora y si es celular o línea fija.
Cambié el CNAM y lo verifiqué con la consulta de números de Twilio; en principio deberías usar el nombre real de una persona, pero en la práctica es un sistema basado en la honestidad.
[1] https://www.t-mobile.com/support/tutorials/device/app/ios/to...
[2] https://www.twilio.com/code-exchange/lookup
Uso mi nombre real en mi dirección de email, y mi número de teléfono también está publicado en varios directorios telefónicos.
En Suecia, salvo que te opongas explícitamente, la práctica estándar es que tu dirección y tu número de teléfono sean públicos y buscables; es básicamente la información que estaba en las guías telefónicas de los 80 trasladada a internet en los 90.
Esta información personal pública puede ser útil, pero también puede usarse mal.
Aun así, como hay mucha PII pública —SSN, dirección, teléfono, cumpleaños—, la gente no necesita tratar esta información como si fuera secreta; más bien se necesitan identificaciones y eID adecuados para que saber unos cuantos números no facilite suplantar a otra persona.
Si alguien quiere mi número de teléfono, puede tomar un email con mi nombre y apellido, buscar en un sitio de búsqueda a 100 personas con el mismo nombre y, con solo saber la ciudad y una edad aproximada, reducir los candidatos a unos pocos.
Los registros públicos muestran cumpleaños, autos, ingresos e incluso las personas registradas en la misma dirección, así que recopilar información de fuentes abiertas en Suecia no es difícil.
Me sorprende que PayPal muestre un número de 5 dígitos, incluido el código de área, a alguien que solo conoce la dirección de email, y que en cambio le muestre solo 3 dígitos al atacante si conoce la contraseña de la víctima.
También es raro que lo consideren “funciona según lo previsto” y no hagan nada.
Me pregunto cómo los estafadores obtienen números desde LinkedIn o cómo los relacionan con números de otras fuentes; en una empresa, los empleados siguen cayendo en mensajes de texto falsos del CEO.
La molestia de usar una dirección de email y un número de Google Voice distintos para cada servicio terminó valiendo la pena.
+de Gmail para crear direcciones combinadas.Para los servicios externos se ve como
gary+FqZWMK@gmail.com, y en mi buzón conviertoFqZWMKen el nombre del servicio, como Netflix, para crear automáticamente carpetas ordenadas.Como controlo por completo el mapeo, también puedo enviar varias direcciones aleatorias a una bandeja “desechable” que, después de cierto tiempo, pasa automáticamente a tratarse como spam.
Para usar una segunda SIM, en Estados Unidos todavía se necesita un dispositivo dual SIM, que sigue siendo relativamente de nicho.
Muchos sitios detectan y bloquean los números VoIP, pero en Android todavía no hay una buena forma de enviar y recibir correctamente mensajes SMS del operador desde una computadora de escritorio.
La interfaz web de Google Messages olvida el dispositivo con demasiada frecuencia como para usarla en serio, y si más adelante se agrega un bloqueo de VoIP, puede generarse un problema del huevo y la gallina en el que también se bloquea la autenticación de dos factores por SMS y ya no se puede recuperar la cuenta.
También hay servicios, como la farmacia de Harris Teeter, que no verifican si el número es realmente alcanzable, así que aceptan números VoIP, pero el sistema no puede llamar ni enviar mensajes y terminas sin recibir avisos de recetas.
Cambió la forma en que mi teléfono y mi laptop interactúan, y quizá sea mi proyecto de código abierto favorito.
Puedes usar la laptop como teclado, responder mensajes de cualquier app que envíe notificaciones o mandar archivos más rápido y mejor que de cualquier otra forma.
Tiene el tamaño de uno de esos dispositivos 2FA tipo tarjeta de códigos de antes, y al principio el motivo fue que mi esposa seguía tomando mi celular real para recibir códigos de seguridad de cuentas compartidas.
También mejora un poco la seguridad operativa frente a usar mi número de teléfono real.
En mi experiencia, el único sitio que los bloqueaba era Discord.
Personalmente prefiero usar un correo dedicado menos obvio para cada cuenta, como
ebpnw@mydomain.com, de modo que el atacante también tenga que adivinar el correo.Los iPhone dual SIM existen desde el iPhone XS, iPhone XS Max y iPhone XR.
Fuente: https://support.apple.com/en-us/HT209044
Ya van al menos 6 generaciones de iPhone dual SIM con al menos una eSIM.
Este tipo de filtraciones de información no coordinadas es un problema más profundo.
Muchos lugares comparten los últimos cuatro dígitos del SSN, pero los primeros cinco a menudo podían inferirse fácilmente a partir de la fecha de nacimiento y el estado de nacimiento, y los primeros números indicaban el estado en el que se emitió el número.
Incluye a la mayoría de los adultos actuales, pero aun así conviene hacer la distinción.
No impiden en absoluto el rastreo ni la recolección de datos por parte del gobierno y grandes organizaciones, y cada vez que hay que hacer algo importante seguimos atados a un sistema de identificación nacional provisional de facto, sin ninguno de los beneficios de un sistema nacional de identificación bien hecho.
Genera una enorme cantidad de sufrimiento y pérdida de tiempo sin ningún motivo.
Siempre me pregunté cómo justifican los investigadores de seguridad publicar herramientas automatizadas de generación de número de teléfono a partir de correo electrónico como la de esta entrada de blog.
Es muy probable que estas herramientas tengan muchos más usos malos o espeluznantes que buenos.
Me pregunto si lo consideran aceptable porque es “investigación” y de todos modos está en una zona gris, o si hablaron con las empresas que exponían las vulnerabilidades y sienten que ya fueron neutralizadas, así que está bien.
Un buen ejemplo es Firesheep: bastaba con ejecutar un plugin de Firefox en una red Wi-Fi pública para capturar de inmediato las sesiones de usuarios de la misma red que habían iniciado sesión por HTTP.
En ese momento, Facebook usaba HTTP de forma predeterminada, y cuando este plugin se volvió noticia, la presión hizo que prácticamente de la noche a la mañana pasaran a exigir HTTPS, y muchas empresas siguieron el ejemplo.
No es exagerado decir que esa divulgación adelantó considerablemente la adopción de HTTPS.
No sé si esta divulgación tendrá ese nivel de impacto, pero creo que es mejor que estas técnicas no sean conocidas solo por black hats.
Se puede evaluar: “¿publicar esta información genera más beneficios que daños?”
Gracias a la información que Martin Vigo publicó en 2019, pude informar a empleadores y a mis clientes actuales sobre un modelo de amenaza adicional que deben considerar al definir sus métodos de restablecimiento de contraseñas.
En su defensa, la prueba de concepto publicada originalmente era bastante limitada, requería una cuenta de Twilio, lo que elevaba la barrera de entrada, y si se usaba para delitos también dejaba pistas para los analistas.
Parece ser un secreto a voces que muchas de las personas que entran en ciberseguridad lo hacen porque les gusta romper la seguridad de formas ingeniosas más que ayudar realmente a otros a estar seguros.
Dicho eso, la investigación de seguridad es legal y hackear objetivos al azar es ilegal.
Cuando haya acciones legales, también será más difícil que una empresa se defienda diciendo que no sabía.