Sophos News

Cuidado usuarios de TikTok: los ciberdelincuentes pueden cambiar tus videos por los suyos

Los desarrolladores de aplicaciones móviles Tommy Mysk y Talal Haj Bakry acaban de publicar un estudio titulado “TikTok vulnerability enables hackers to show users fake videos“.

Hasta donde podemos ver, tienen razón.

(Repetimos sus resultados con una versión de TikTok para Android de hace unos días, 15.5.44; sus pruebas incluyeron las últimas versiones en Android e iOS, numeradas 15.7.4 y 15.5.6 respectivamente).

Utilizamos un enfoque similar a Mysk y Haj Bakry para observar el tráfico de red producido por TikTok: instalamos la app tPacketCapture en Android y luego ejecutamos la aplicación TikTok para ver algunos videos populares.

La aplicación tPacketCapture funciona más bien como tcpdump en un ordenador Unix / Linux, registrando sus paquetes de red en un archivo llamado .pcap (abreviatura de captura de paquetes) que se puede analizar cuando se desee.

Importamos nuestro archivo .pcap de nuevo a Wireshark en Linux, que automáticamente “disecciona” los paquetes capturados para darle una interpretación legible de sus contenidos.

Como era de esperar, gran parte de la conversación de red de TikTok está cifrada usando TLS para crear conexiones HTTPS (HTTP seguro), como puedes ver si extraemos un subconjunto representativo de paquetes de configuración de TLS de nuestro archivo de captura:

 

TIPO                      CONTENIDO

——- ——-

TLSv1.2                Cliente                 Hola

TLSv1.2                Servidor Hola, certificado

TLSv1.2                Estado del certificado, intercambio de claves de servidor, servidor Hola hecho

TLSv1.2                Intercambio de claves de cliente, cambio de especificación de cifrado, handshake cifrado

TLSv1.2                Nuevo ticket de sesión, cambio de especificación de cifrado, handshake cifrado

 

TLSv1.2                Cliente Hola

TLSv1.2                Servidor Hola, certificado, estado del certificado, intercambio de claves de servidor, servidor Hola hecho

TLSv1.2                Intercambio de claves de cliente, cambio de especificación de cifrado, handshake cifrado

TLSv1.2                Nuevo ticket de sesión, cambio de especificación de cifrado, handshake cifrado, datos de la aplicación

 

TLSv1.2                Cliente Hola

TLSv1.2                Servidor Hola

TLSv1.2                Certificado, Estado del certificado, Intercambio de claves de servidor, Servidor Hola hecho

TLSv1.2                Intercambio de claves de cliente, cambio de especificación de cifrado, handshake cifrado

TLSv1.2                Nuevo ticket de sesión, cambio de especificación de cifrado, handshake cifrado, datos de aplicación

 

Por lo visto, los programadores de TikTok ciertamente conocen TLS y saben por qué es importante.

Pero una gran cantidad de contenido que se envía desde la red de entrega de contenido (CDN) de TikTok no está cifrada, ya que esta muestra de paquetes elegida al azar de la captura revela (acortamos las URL porque algunos de ellos eran muy largas):

 

TIPO     CONTENIDO

——-  ——-

HTTP     GET /img/tos-maliva[……………….].webp HTTP/1.1      <–WEBP imagen

HTTP     GET /aweme/100×100/tiktok-obj/[……..].webp HTTP/1.1      <–WEBP imagen

HTTP     GET /b819[….]/5e9533a3/video/tos/[…]&vl=&vr= HTTP/1.1   <–MP4 video

HTTP     GET /971e[….]/5e9533d2/video/tos/[…]&vl=&vr= HTTP/1.1   <–MP4 video

HTTP     GET /img/musically-maliva-obj/1[…….].jpeg HTTP/1.1      <–JPEG imagen

HTTP     GET /obj/musically-maliva-obj/UK_DE_comedy.jpg HTTP/1.1     <–JPEG image

HTTP     GET /img/musically-maliva-obj/1[…….].jpeg HTTP/1.1      <–JPEG image

Los datos obtenidos mediante solicitudes HTTP simples sin cifrar incluyen imágenes de perfil, imágenes fijas de videos y los propios videos.

¿Cuál es el problema?

En este punto, puede que te preguntes: “Si todos los datos transmitidos a través de HTTP ya están disponibles para que alguien los vea, ¿cuál es el problema?”.

Por ejemplo, nos llevó unos segundos extraer estas imágenes de perfil  y fotos de video directamente de los datos no cifrados que encontramos en nuestro volcado de paquetes:

Pero también pudimos ver todo ese contenido en la aplicación sin iniciar sesión; en otras palabras, esas imágenes ya estaban configuradas, por las personas que las subieron, para que fueran visibles para cualquiera que las quisiera ver.

De hecho, cualquiera que simplemente descargue y juegue con TikTok durante unos minutos, como hicimos nosotros.

Sin embargo, como Mysk y Haj Bakry señalaron en su informe, hay dos razones importantes por las que las apps de este tipo deberían usar HTTPS para todo:

De hecho, la publicación de Mysk y Haj Bakry incluye algunos videos cortos que muestran videos falsos de noticias sobre coronavirus insertados en la aplicación TikTok donde ciertamente no esperarías verlos.

Entregaron sus “noticias falsas” al configurar sus propios routers para redirigir las solicitudes de CDN de TikTok a su propio servidor de video.

Pero si la aplicación TikTok usara HTTPS siempre, ese tipo de engaño sería considerablemente más difícil porque el router no tendría el certificado HTTPS correcto para responder al contenido, por lo que la aplicación lo rechazaría.

¿Qué hacer?

Hasta donde podemos ver, TikTok ha cometido el mismo tipo de error de programación que cometió Tinder (y luego arregló rápidamente) en 2018.

El sitio web habitual de TikTok parece utilizar HTTPS para publicar videos; pero su aplicación, quizás por razones de simplicidad y velocidad, no lo hace.

Esa es una buena noticia, porque implica que el CDN de TikTok ya está perfectamente equipado para manejar las solicitudes HTTPS, y por lo tanto, la empresa debería poder actualizar su aplicación rápidamente para llevarla a la década de 2020.

Mientras tanto, repetiremos los consejos que le dimos cuando Tinder tuvo que apresurarse para agregar HTTPS a su aplicación hace dos años: