Hace un par de semanas descubrí un fallo de seguridad que afecta a las medidas de privacidad en WhatsApp muy curioso que permitía saltarse una protección de privacidad en la app muy utilizada por todos los usuarios de iPhone, el Screen Lock inmediato con FaceID, y que podía permitir a cualquier usuario leer mensajes de chats que no debería poder ver, lo que haría las delicias de todos esos que quieren espiar WhatsApp a otros.
Como os conté en mi cuenta de Instagram, como siempre hago, lo reporté al equipo de WhatsApp en Facebook, lo reprodujeron, me agradecieron el reporte y me dijeron que para la versión 2.20.71 lo arreglarían, así que como ya está en despliegue, os lo explico en detalle.
Para que se pueda reproducir el problema primero os cuento el entorno en el que se puede reproducir si tienes una versión aún sin parchear en tu iOS, ya que el fallo es en WhatsApp para iPhone hasta las versiones 2.2.70.
Figura 3: Bloqueo de Pantalla inmediato con FaceID. Está en Cuenta -> Privacidad -> Bloqueo de Pantalla |
La característica de Bloqueo de Pantalla o Screen Lock con FaceID en WhatsApp iPhone permite que pongas una protección basada en FaceID para poder ver los chats de WhatsApp. La idea es que si alguien accede a tu terminal iPhone cuando lo tienes desbloqueado e intentas acceder a la app de WhatsApp se te hace una validación por FaceID, lo que hace que no puedas ver los mensajes sin pasar por el reto de FaceID.
Sin embargo, si tienes la configuración por defecto de ver mensajes in-App se puede hacer un trick para lograr el Screen Lock Bypass y ver los mensajes de WhtasApp en tiempo real, que es lo que ahora en esta versión está arreglado por el equipo de desarrollo en la nueva versión.
Screen Lock ByPass en WhatsApp para iPhone
Para hacer el ataque hay que entender que el terminal iPhone está desbloqueado y el atacante intenta ir a ver la pantalla de chats de WhtasApp, pero no puede porque está bloqueada por Screen Lock y FaceID.
Figura 5: WhatsApp protegido por FaceID. |
Para saltarse Screen Lock con FaceID lo que hace el atacante es:
1.- Realiza una llamada desde su teléfono móvil al terminal iPhone de la víctima usando WhtasApp. Esta llamada se cuelga desde el terminal iPhone de la víctima, pero quedará en la lista de llamadas perdidas de iOS.
Figura 6: La llamda del atacante queda en la lista de llamadas de WhatsApp |
2.- Desde la lista de llamadas perdidas del terminal iPhone de la víctima se hace una llamada desde el mismot terminal de la víctima al WhtasApp del atacante, con lo que se abrirá la pantalla de "Ringing" en WhatsApp. Desde el terminal del atacante se acepta la llamada.
3.- Y aquí llega el Bug: Los mensajes de WhatsApp entran en la pantalla de víctima desde la llamada como notificaciones. Es decir, sin haber desbloqueado FaceID, si la llamada se ha lanzado desde la lista de llamadas de iPhone, los mensajes van apareciendo en la pantalla de la llamada.
Figura 7: Si has hecho el proceso bien, podrás ver las notificaciones de mensajes sin haber pasado por FaceID |
Una cosa importante a tener en cuenta es que este bug permite leer los mensajes según van entrando, pero no los antiguos. Y no, no se corrige si no tienes activadas las notificaciones a nivel de sistema operativo - es decir, en el centro de mensajes de iOS -, lo que hace que la protección de Screen Lock sea inútil para los nuevos mensajes que van entrando si están activadas las notificaciones in-App.
Figura 8: Según entren los mensajes los podrás leer |
Facebook ha arreglado este bug en la versión 2.20.71, así que debes actualizar esta versión cuanto antes. Por supuesto, su impacto es limitado y solo en entornos cercanos, pero la privacidad personal es importante y por eso WhatsApp añadió esta característica de Screen Lock que con este proceso fallaba.
El bug es solo para terminales iPhone - en Android no tenían este problema -, pero es una de las opciones a configurar si quieres tener protegido tu WhatsApp a prueba de balas, y evitar que te espíen el WhatsApp personas que no deseas.
Figura 9: Libro de Hacking iOS:iPhone & iPad (2ª Edicón) en 0xWord de Chema Alonso, Ioseba Palop, Pablo Gonzáleez y Alejandro Ramos entre otros. |
Personalmente me alegra ver cómo se lo reporté a Facebook y en dos semanas lo han parcheado, y llegué a él tras ver esa pantalla y conocer cómo son las entrañas de iOS. Han sido muchas veces viendo cómo hackear iOS en iPhone & iPad - por eso hicimos el libro - y después de conocer cómo hace las cosas iOS con temas como DirtyTooth, fue ver esa pantalla de llamar con el FaceID bloqueado... y buscar el entorno de Screen Lock porque seguro que se lo saltaba. Y así fue.
Figura 10: WhatsApp for iPhone Screen Lock ByPass PoC
Os dejo el vídeo que he hecho con mis compañeros del equipo de Ideas Locas para que veáis el proceso completo que os he descrito en un minuto.
Saludos Malignos!
Muy interesante chema, pero una duda, es decir los mensajes que llegan en tiempo real, llegan al teléfono de la víctima? no al del atacante? porque si es así, bueno no creo que haya mucho lio en que la víctima lea sus mensajes mientras habla, ahora que si los mensajes llegan en tiempo real al teléfono del atacante, por supuesto es un riesgo de privacidad.
ResponderEliminarMuchas gracias soy un seguidor tuyo saludos desde Bolivia
Atte:
Miguel Angel Rivero
@El Urbano X, la protección de Screen Lock en WhatsApp ( y en Telegram ) es para evitar que alguien que tenga acceso a tu teléfono (por un descuido o un bug de iPhone que permite saltar passcode ) pueda ver tus mensajes de WhatsApp. Es una medida de defensa en profundidad que está pensada para que nadie con acceso a tu teléfono sin haber pasado por FaceID pueda ver tus mensajes. Este bug anula justo esa medida, y por eso Facebook lo ha arreglado haciendo que ya no se muestren mensajes en la pantalla de llamada si no se ha pasado el desafío de FaceID, como debe ser.
ResponderEliminarSaludos!