Las vistas previas de enlaces o links en las aplicaciones de chat pueden vulnerar la privacidad y seguridad de los usuarios, según concluyeron los especialistas en sistemas Talal Haj Bakry y Tommy Mysk tras una investigación publicada recientemente. Esta vulnerabilidad está presente en varios sistemas de mensajería, pero los más populares que la sufren son Facebook Messenger e Instagram.
“Repasaremos algunos de los errores que encontramos al investigar cómo se implementa esta función en las aplicaciones de chat más populares en iOS y Android”, se lee al comienzo del informe donde se detalla cómo diferentes formas de mostrar esos links pueden propiciar la filtración de direcciones IP, exponer enlaces enviados en chats con cifrado de extremo a extremo o descargar datos en segundo plano, sin que el usuario lo sepa.
No es la primera vez que estos investigadores evalúan la seguridad de aplicaciones. De hecho descubrieron que TikTok estuvo leyendo los portapapeles de los usuarios de Apple. Ya en febrero habían develado que cualquier dato que se copiara al portapapeles en un dispositivo iOS podía ser leído por cualquier aplicación que estuviera activa.
Qué son y cómo se crean las vistas previas de links
Cuando se envía un enlace a un artículo, foto, video, acceso a descarga o cualquier otro contenido online, el destinatario del mensaje verá, en muchos casos, una vista previa de ese material. Esto requiere que el enlace vaya a algún sitio, por ejemplo un servidor, para que éste luego devuelva la vista previa que se verá en la app de mensajería del destinatario.
El punto en cuestión es cómo es se articula ese circuito que permite generar la vista previa. Porque si no se cuida la manera en que se realiza, se podrían exponer los datos privados de los usuarios, ya que el contenido podría descargarse en los servidores de la plataforma.
En esta investigación, publicada el 25 de octubre, Bakry y Mysk hicieron un detalle exhaustivo de varias apps populares donde mencionan que tanto Facebook Messenger como Instagram se destacaron porque para mostrar la vista previa de los links, las apps descargan en sus servidores el contenido, con lo cual terminan teniendo un potencial acceso a ese contenido.
Si bien no son las únicas plataformas que hacen esto para poder mostrar el preview, lo cierto es que, a diferencia de otras, descargan en sus servidores el contenido completo, en el caso de que se trate de fotos o videos, e incluso archivos de varios gigabytes de peso.
“Todavía no nos queda claro por qué los servidores de Facebook harían esto cuando todas las demás aplicaciones ponen un límite a la cantidad de datos que se descargan”, se menciona en la investigación.
Lo ideal, para cuidar la seguridad de los usuarios al menos en relación a este ítem, sería que las aplicaciones no generen una vista previa del enlace enviado. Simplemente deberían mostrar el link tal como se envío ya que en este caso la app no hará ninguna acción salvo que el usuario toque ese link y decida ser redirigido al contenido correspondiente. Las aplicaciones analizadas por los investigadores que siguen este enfoque son Signal, Threema, Tik Tok y WeChat.
Las diferentes formas de generar una vista previa y los riesgos que implican
Los investigadores analizaron otro enfoque que emplean algunas apps para mostrar enlaces de forma previa y que, a su parecer, es una opción segura. Se trata de las apps iMessage, Viber, WhatsApp y Signal (cuando se opta por esta opción en el menú de ajustes) que cuando se envía un link, la app descarga lo que hay en el enlace, crea un resumen y una imagen de vista previa del sitio web, el cual es enviado como un archivo adjunto junto con el enlace. Cuando la aplicación en el extremo receptor recibe el mensaje, mostrará la vista previa tal como la recibió el remitente sin tener que abrir el enlace. De este modo, el receptor estaría protegido en caso de que el link sea malicioso.
Cuando se puede filtrar la dirección IP
Hay un enfoque que los investigadores catalogan como especialmente peligroso y es que cuando el destinatario recibe un link, la app abre ese enlace automáticamente (incluso antes de que se toque el link) para crear una vista previa. Para hacer esto, la app debe conectarse al servidor que lleva al link y preguntar qué hay en ese enlace.
Cuando eso ocurre, el servidor accede a la dirección IP del teléfono del usuario, un dato que podría caer en manos de un atacante para saber la ubicación precisa de esa persona. En el informe se detalla que se encontró esta vulnerabilidad en dos apps, cuyos nombres no se mencionan, que fueron alertadas sobre el tema y ya están trabajando para resolver la situación.
El riesgo de que los datos queden almacenados en servidores
Hay otras aplicaciones que toman un enfoque intermedio entre los mencionados previamente. La plataforma envía el link a un servidor externo y le pide que genere una vista previa. Luego el servidor enviará la vista previa al emisor y al destinatario.
En principio esto parece adecuado porque ni el receptor ni el emisor abren el link y por lo tanto se evita el problema de la filtración de IP sin embargo, según advierten los investigadores, hay otros problemas.
“Supongamos que está enviando un enlace privado de Dropbox a alguien y no quiere que nadie más vea su contenido. Con este enfoque, el servidor deberá hacer una copia (o al menos una copia parcial) de lo que está en el enlace para generar la vista previa. Ahora la pregunta es: ¿el servidor conserva esa copia? Si es así, ¿cuánto tiempo se conserva? ¿Qué más hacen estos servidores con estos datos? Este enfoque no debería funcionar para aplicaciones que usan cifrado de extremo a extremo, donde ningún servidor entre el remitente y el receptor debería poder ver lo que hay en el chat (al menos en teoría, de todos modos)”, se menciona en el texto.
Las aplicaciones que emplean este tipo de enfoque son Discord, Hangouts, Line, LinkedIn, Slack, Twitter, Zoom, Facebook e Instagram. Los links que se comparten en chats pueden tener información privada que sólo se desea que vea el destinatario final. Puede haber contratos, facturas, estudios médicos. Las aplicaciones que emplean el método mencionado para crear vistas previas podrían afectar la privacidad de los usuarios al enviar links compartidos en un chat a sus servidores.
“Aunque la aplicación confía en estos servidores, los usuarios no tienen ninguna indicación de que los servidores estén descargando lo que encuentren en un enlace. ¿Los servidores están descargando archivos completos o solo una pequeña cantidad para mostrar la vista previa? Si están descargando archivos completos, ¿guardan los servidores una copia y, de ser así, por cuánto tiempo? ¿Se almacenan estas copias de forma segura o las personas que administran los servidores pueden acceder a las copias? Además, algunos países tienen restricciones sobre dónde se pueden recopilar y almacenar los datos del usuario, sobre todo en la Unión Europea, según lo exige el GDPR”, analizan los investigadores.
Todas las apps mencionadas dos párrafos antes, salvo Instagram y Facebook Messenger, descargan entre un 15 MB y un 50 MB de datos de los archivos para generar la vista previa. Instagram y Facebook Menssenger, como se explicó anteriormente, no tienen ese límite y no queda claro por qué necesitan descargar volúmenes mayores para realizar la tarea de mostrar un enlace previa.
Los servidores de Facebook Messenger e Instagram, ambos propiedad de Facebook, fueron los únicos que no pusieron límite a la cantidad de datos que se descargan. Para probar esto, los investigadores alojaron un archivo de 2.6 GB en su servidor y enviaron un enlace a ese archivo a través de un mensaje directo de Instagram.
En el momento en que se envió el link , varios servidores de Facebook inmediatamente comenzaron a descargar el archivo del servidor de los investigadores. “Como no se trataba de un solo servidor, ese archivo de 2,6 GB se descargó varias veces. En total, los servidores de Facebook descargaron aproximadamente 24,7 GB de datos de nuestro servidor”, explican en su publicación.
De todos modos, los investigadores recalcan que incluso un límite bajo de descarga como puede ser 15 MB cubre la mayoría de los archivos que usualmente se comparten por chat. De ahí que si los servidores guardan copias podría ser un riesgo para los usuarios en caso de que eventualmente esos servidores sean afectados en su seguridad.
En el caso de Slack, por ejemplo, confirmaron que solo almacenan en caché las vistas previas de enlaces durante unos 30 minutos.
Por otra parte, los investigadores encontraron particularmente preocupante el caso de Line, una app de mensajería privada con cifrado de punta a punta. Según analizaron en su informe, cuando la app abre un mensaje cifrado y encuentra un link, lo envía un servidor para generar una vista previa. Line fue advertido sobre esto pero continuará con su práctica. De todos modos, actualizó su sección de preguntas frecuentes para incluir este dato que el usuario sepa cómo deshabilitar la vista previa de enlaces, si así lo desea.
¿Qué conclusiones se saca sobre este tema? Los investigadores destacan que los desarrolladores de aplicaciones deben siempre considerar las implicancias de seguridad y privacidad que entran en juego cada vez que se genera una función. Algo tan sencillo como producir la vista previa de un link puede exponer información privada si no se plantea de forma segura.