- Una vulnerabilidad en la que, solo con el username de una cuenta de Instagram, se podía engañar a la IA de soporte al cliente de Meta para restablecer la contraseña y secuestrar la cuenta; múltiples cuentas conocidas, incluida la de Obama White House, resultaron afectadas
- El atacante se conectaba usando una VPN o proxy cerca de la ciudad de la víctima para evadir las sospechas del algoritmo de seguridad y luego le decía a la IA de soporte que "la cuenta había sido hackeada", solicitando que el código de verificación se enviara a un correo arbitrario
- Ese código se enviaba sin verificación adicional de si ese correo había sido usado antes por el usuario, y cuando el atacante devolvía el código, se le entregaba directamente el enlace para restablecer la contraseña: un restablecimiento de contraseña de autenticación cero (zero auth)
- Como este flujo de recuperación se procesaba como un reinicio total de la cuenta por parte del supuesto propietario, se saltaba el 2FA existente, y la invalidación de sesiones y el cambio de contraseña ocurrían sin notificaciones
- El problema central fue la falta de guardrails: la IA de soporte de una empresa valuada en 1.5 billones de dólares podía cambiar el correo vinculado solo con pedirlo; ya fue parcheado, pero estuvo activo durante varias semanas o meses
Flujo de secuestro de cuenta
-
Paso 01 — Suplantación de ubicación e inicio de la solicitud de soporte
- Para iniciar el ataque solo hace falta el username de la cuenta objetivo, y la ubicación del usuario puede obtenerse fácilmente por varias vías, como el perfil público o la sección "About"
- Al conectarse mediante una VPN o proxy cerca de la ciudad de la víctima, se disfraza la región de la solicitud como normal para que el algoritmo de seguridad de Instagram no sospeche
- Si la solicitud parece venir de la región correcta, basta con decirle a la IA de soporte de Meta que la cuenta fue hackeada y pedir que el código de verificación se envíe a un correo arbitrario controlado por el atacante
-
Paso 02 — Y eso es todo
- En la práctica, eso era todo; es el primer caso de restablecimiento de contraseña de autenticación cero visto en producción
- No había verificación adicional para confirmar si el correo proporcionado había sido realmente usado por el usuario
- Cuando la IA enviaba el código de seguridad al correo del atacante, este lo devolvía para completar la verificación, y la plataforma entregaba un nuevo enlace de restablecimiento de contraseña, transfiriendo así el control total
-
Verificación con selfie en video
- La IA de Instagram podía pedir o no una selfie en video (video selfie) para probar la identidad
- Se reporta ampliamente que su capacidad de detección actualmente no es muy alta, y que basta con animar con IA fotos públicas del feed del objetivo para pasarla
Ni el 2FA lo detiene
- Como el sistema trataba este flujo de recuperación de alto privilegio como un reinicio completo de la cuenta por parte del propietario "real", en ese proceso se omitía por completo el 2FA existente
- Las sesiones existentes se invalidaban y la contraseña se cambiaba, pero no había ninguna notificación por correo, SMS ni push
- El verdadero propietario ya no podía iniciar la recuperación porque el correo y el número de teléfono quedaban mapeados al atacante, y sin nadie a quien escalar el caso, terminaba peleando con el chat para intentar recuperar el control
- Si tu cuenta estaba dentro del A/B test que activaba la opción de soporte con IA, ni siquiera podías desactivarla
Auge del mercado negro
- Varios grupos de Telegram del mercado negro ofrecían servicios de "account takeover" con costos altos y tiempos de entrega rápidos
- Los handles cortos (short handle) pueden valer desde cientos de miles hasta millones de dólares, así que no sorprende que exista este mercado
- En casos reales, cuentas como
heyse comerciaban o se abusaba de cuentas comoobamawhitehouseyocmssf(cuenta del Chief Master Sergeant de la Fuerza Espacial de EE. UU.) con fines de propaganda
Actualmente ya está parcheado
- Parece que Meta ya lo parcheó y que los grupos de Telegram también se calmaron, pero este método habría estado activo durante varias semanas o meses
- El problema de fondo es que una empresa valuada en 1.5 billones de dólares, sin guardrails sólidos, permitía que su IA de soporte cambiara el correo vinculado de cualquier persona si se lo pedían con suficiente cortesía
1 comentarios
Opiniones en Hacker News
En la cadena de seguridad de las grandes empresas, las solicitudes a soporte siempre han sido el eslabón más débil
Antes ya me pasó que una persona desactivó la autenticación en dos pasos y entregó mi cuenta, así que no me parece tan sorprendente que un LLM haga lo mismo
Lo que me molesta es el simple hecho de que personal de soporte de bajo nivel pueda desactivar la autenticación en dos pasos, porque eso destruye el propósito del procedimiento
Si es fail secure, en cuanto pierdes el correo la cuenta queda bloqueada para siempre; si es fail safe, perder el correo no bloquea la cuenta para siempre, pero alguien puede fingir esa situación y quedarse con la cuenta
Es como un controlador electrónico de puertas: si se queda sin energía, la puerta o sigue cerrada o sigue abierta; en un incendio debe quedar abierta para que la gente salga, pero un ladrón podría cortar la energía y entrar
Una puerta que queda bloqueada permanentemente durante un apagón solo se permite en casos extremos donde la seguridad es la prioridad absoluta, e incluso una cuenta de Instagram no es tan importante como una puerta en una emergencia de incendio
Peor aún, más adelante, aparentemente después de que cambiaran su sistema de soporte, el mismo atacante volvió a intentar quedarse con mi cuenta y de hecho la tomó durante unas horas, comprometiendo incluso mi cuenta de Twitter
Esto pasó más o menos cuando fElon hizo despidos masivos y eliminó la autenticación en dos pasos basada en teléfono de las cuentas
Crazy Domains y Newfold Digital (antes EIG) son realmente de lo peor, y al final incluso perdí mi nombre de usuario OG porque fElon se lo llevó para usarlo en tonterías de Grok
[1] https://news.ycombinator.com/item?id=47913341
[2] https://news.ycombinator.com/item?id=47859496
[3] https://news.ycombinator.com/item?id=47856983
Necesitábamos borrar urgentemente un volumen de almacenamiento para liberar espacio, pero como era una operación destructiva estaba bloqueada de forma que el proveedor tenía que actuar como una segunda llave, junto con nuestra llave
Nosotros nunca habíamos dejado bien configurado eso, y yo ni siquiera había iniciado sesión alguna vez en su cuenta de soporte
El proveedor dijo que dos contactos autorizados de nuestro lado tenían que confirmar la operación, y en la práctica el procedimiento consistió en que un colega que estaba atendiendo una incidencia Sev1 me invitara a una llamada de Zoom
La persona de soporte me pidió mi autenticación en dos pasos, pero como nunca la había configurado y ni siquiera había un correo registrado donde pudiera recibirla, la persona —que parecía ser subcontratada— decidió que bastaba con pegar el código en el chat de Zoom para que yo lo leyera de vuelta y así continuar con el proceso
En ese momento estaba tan sorprendido que no lo pensé a fondo, pero era interesante que pudieran ver el código generado esperado y escribirlo directamente en su propio sistema
Al final sí evitaron que un Sev1 empeorara a Sev0, pero en general era una estructura extremadamente vulnerable a ataques de ingeniería social y ataques internos
No creo que le den esta clase de privilegios de bypass a agentes evidentes de soporte de nivel 1 o 2; más bien deben mantenerlo oculto de otra manera, con necesidad de escalar a permisos más altos pero pudiendo resolverlo en minutos y no en horas
Aun así, cuanto más grande es una organización, más difícil se vuelve ese equilibrio
La cuenta de Facebook de mi padre probablemente fue hackeada por phishing, y no había absolutamente nadie con quien se pudiera hablar para recuperarla
La basura humana que la robó incluso publicó contenido ilegal, así que la cuenta y unos 10 años de recuerdos personales fueron eliminados sin ningún proceso de apelación, y era imposible hablar con una persona real de Meta
Solo había páginas de FAQ desesperantemente inútiles
Recomiendo muchísimo descargar y respaldar los datos personales de todas las cuentas de redes sociales tuyas y de tu familia
A estas grandes empresas no les importan los usuarios más allá de mostrarles anuncios de baratijas chinas de envío directo y TikToks basura hechos con IA
¿O sea que un agente de IA tenía acceso privilegiado capaz de eliminar la autenticación en dos pasos, ignorar el correo de la cuenta y entregársela al solicitante?
Honestamente, es una negligencia tan grave que casi da para sospechar que el equipo que implementó esa “función” intentó causar el mayor daño posible a Meta de la forma más discreta antes de sus despidos programados
Casi da pena que nadie haya intentado también borrar toda la tabla de producción
Habría bastado con hacerse pasar por un SRE con muchos privilegios, alegar que había que resolver un bug fatal de producción y que la única solución era borrar la base de datos
https://www.cia.gov/static/5c875f3ec660e092cf893f60b4a288df/...
Yo estaba entre los primeros 6000 usuarios de Instagram, y hace años me robaron mi nombre de usuario literal
El equipo de soporte para cuentas verificadas reconoció el problema, pero dijo que no podía hacer nada
Esta vez fue abuso de IA, pero en mi caso fue abuso del soporte subcontratado: alguien pagó para que cambiaran manualmente mi nombre de usuario y luego se lo transfirieran a otro usuario
Si no existe soporte humano responsable y no hay consecuencias penales para el empleado que viola esto, siempre habrá una forma de acceder a las cuentas
La cuenta de Instagram vinculada seguía intacta, pero cuando intenté usar el soporte de Meta Verified rechazaron todas mis solicitudes diciendo que ya había agotado toda mi cuota de soporte
Estoy aguantando hasta que venga un banco a comprarlo
No tiene sentido que a una IA le hayan dado permisos de herramienta para enviar correos a direcciones arbitrarias
Que pueda enviar códigos de autenticación en dos pasos según la solicitud del usuario, bueno, eso puede tener sentido, pero solo debería poder presionar un botón que envíe el correo de autenticación en dos pasos a la dirección vinculada a la cuenta, y el resto debería manejarlo código escrito a mano
No hay razón para que la IA tenga acceso al código de autenticación en dos pasos en sí, al asunto del mensaje, al cuerpo ni a la dirección del destinatario
No entiendo por qué le dieron esos permisos
El mismo flujo podría haberse codificado de forma estática, y de hecho puede que así haya sido
No está claro cuánto hizo realmente el chatbot aquí
No digo que este caso sea necesariamente así, pero sí tengo una hipótesis sobre lo que pudo haber pasado
Por lo que he visto hasta ahora, parece que Meta AI Support Assistant, o “MAISA”, tenía a) una llamada de herramienta para iniciar verificación por correo a un punto de contacto vinculado a cierto correo, número de teléfono o cuenta, y b) una llamada de herramienta para generar un enlace de restablecimiento de contraseña basado en un intento de verificación por correo
No tuve acceso al código real, pero creo que el handle o ID del intento de verificación por correo y el código de verificación ingresado por el usuario se pasaban a la llamada de herramienta de “generar enlace de restablecimiento de contraseña”, y esa llamada no validaba correctamente que el correo usado en ese intento de verificación perteneciera a la cuenta, lo que permitió una toma de cuenta
La llamada de herramienta de MAISA para generar el enlace de restablecimiento de contraseña debería haber fallado si recibía un intento de verificación correspondiente a un correo no vinculado a la cuenta
Cuando probé algo parecido en Facebook, al parecer sí daba error y lo bloqueaba, pero es posible que en Instagram hayan hecho un cambio para permitir también correos antiguos, desvinculados recientemente, para que el atacante pueda recuperar cuentas comprometidas
Eso implicaría usar correos que ya no están conectados a la cuenta actual y establecerlos como correo principal del usuario
También es posible que un cambio en la llamada de herramienta de MAISA haya invocado la API equivocada, o que hubiera algo que permitiera usar cualquier intento exitoso de verificación por correo, y que los ingenieros no añadieran suficientes pruebas end-to-end metiendo intentos de verificación por correo no relacionados en la llamada de herramienta
Creo que ahí es donde más hay que enfocarse
Las llamadas de herramientas de agentes cuyo output puede verse influido por un atacante deben tratarse como APIs externas públicas accesibles para cualquiera, y probarse de esa manera
Claro, todo esto es especulación, no refleja las múltiples señales usadas para evaluar la validez de un intento de recuperación de cuenta y podría estar bastante equivocado, pero desde mi experiencia trabajando mucho con seguridad de Meta, esta es la explicación más cercana de lo que pudo haber hecho posible este incidente
Como si alguien hubiera dicho “haz que un agente de IA pueda ayudar con el restablecimiento de contraseñas” y no hubiera habido ninguna revisión humana del cambio
Hace unos años también comprometieron mi cuenta de Facebook después de desactivar la autenticación en dos pasos basada en TOTP
En ese momento no me dio nada de confianza la política de seguridad de Facebook, y este nuevo ataque solo reafirma esa impresión
Asignar ingenieros junior al soporte de seguridad es ridículo
En parte porque la gente joven a veces no entiende lo letal que puede ser la seguridad, y también porque no valora tanto la privacidad
Dijeron que era el “primer restablecimiento de contraseña no autenticado de verdad que veían en producción”, pero LinkedIn ya había tenido algo así antes
No recibí una respuesta adecuada, quizás porque fue antes de que existieran recompensas por hallazgos, pero al final sí lo arreglaron
Funcionaba así
LinkedIn asumía que si podías leer un correo enviado a cierta dirección, entonces esa dirección era tuya y podía añadirse a la cuenta
Entonces, si yo enviaba una invitación de LinkedIn a cierta dirección de correo y la otra persona hacía clic en el botón para aceptar la invitación, esa dirección se añadía a la cuenta de esa persona
Si enviaba una invitación a una dirección bajo mi control, por ejemplo foo@example.com, y luego mandaba a otra persona el enlace del botón de invitación dentro de un correo falsificado, en cuanto esa persona hacía clic, foo@example.com se añadía en secreto a su cuenta
Cuando recibía la respuesta de que se habían hecho amigos, también podía saber que a esa cuenta de usuario se le había añadido una dirección de correo que yo conocía, y luego podía usar el foo@example.com al que envié el primer correo para hacer un restablecimiento completo de contraseña
Descubrieron esto cuando alguien invitó a toda una lista de correo, y tras hacer clic vieron que la dirección de la lista de correo se había añadido de repente a las cuentas de varias personas
“Si la solicitud parece venir de la región correcta, le dices a la IA de soporte de Meta que la cuenta fue hackeada y que envíe el código de verificación a una dirección de correo cualquiera controlada por el atacante”; o sea, ¿qué demonios está haciendo Instagram?
No entiendo por qué enviarían el restablecimiento a un correo cualquiera en vez de a la cuenta correspondiente
Suena al resultado de soporte por IA, no de una persona real, y la situación parece ser “si estás en una cuenta de prueba A/B con la opción de soporte por IA activada, te tocó mala suerte, y ni siquiera puedes desactivarla”
Me preguntaba por qué había recibido hasta 15 correos de restablecimiento de contraseña de Instagram durante el fin de semana
Gracias a eso recordé que tenía una cuenta de Instagram y de inmediato intenté iniciar sesión para borrarla
Era una cuenta creada cuando Instagram recién salió, nunca la usé y me había olvidado por completo de ella
Pero me topé con la extraña situación de que tenía que iniciar sesión desde un dispositivo en el que hubiera iniciado sesión antes, y como han pasado más de 10 años, ya no existe ningún dispositivo que probablemente haya usado para crear la cuenta o acceder a ella
Sí tenía acceso tanto al correo como al número de teléfono usados en la cuenta, pero eso no fue suficiente
Fue tan ridículamente incompetente que terminé presentando una queja bajo la CCPA
Fueron creadas sin número de teléfono y sé la contraseña, pero cuando intento iniciar sesión las marcan como actividad sospechosa y no hay un flujo de recuperación viable
Siempre me hace pensar un poco ver que muchos abusos son tan tontos que yo ni siquiera habría intentado hacerlos
¿Basta con pedir la contraseña y de verdad funciona?
Las implicaciones de este incidente son bastante inquietantes
¿Meta les dio a agentes acceso privilegiado de lectura y escritura sobre cuentas de usuarios sin revisión humana?
Es una locura
De alguna manera, una de las credenciales de mi cuenta alterna de Facebook quedó fusionada con otra cuenta alterna que usaba antes
O sea, puedo iniciar sesión en una cuenta con el correo de la otra, y esa fusión parece seguir vigente
Parece que Meta determinó de algún modo que las dos cuentas pertenecen a la misma persona