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

ActualidadRedes Socialesapps

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:

  • Privacidad. Cualquier persona que detecte tráfico de TikTok puede decir fácilmente qué videos estás viendo, qué perfiles has encontrado y el orden en que te estás moviendo por el sitio. Eso revela algo sobre ti: tus gustos, disgustos y preocupaciones, por ejemplo; tal vez incluso insinúa algo sobre tus amigos y familiares. Y simplemente no hay excusa para que las aplicaciones permitan que otras personas en la red hagan inferencias de ese tipo a través del simple rastreo de la red.
  • Autenticidad. Cualquiera que pueda desviar sus solicitudes web a un servidor propio, el propietario de la red Wi-Fi en su edificio o casa, por ejemplo, podría modificar el tráfico HTTP sin ser detectado, para que pueda mostrar videos falsos en lugar de los que se supone que veríamos. Recuerda que HTTPS no solo cifra el tráfico que recibes para que otras personas no puedan espiarlo, sino que también protege su integridad para que no pueda ser manipulado en el camino.

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:

  • Para usuarios de TikTok. Ten cuidado con los videos que ves en la app, ya que podrían cambiarse con bastante facilidad. Si es un video de alguien tirando a Mentos en una taza de inodoro llena de Diet Pepsi (spoiler: ¡gran desastre!), la falsificación no importa mucho. Pero si estás buscando consejos sobre la pandemia del coronavirus, no confíes en los videos de TikTok, al menos hasta que solucionen este problema. Si te preocupa cuánto podrían saber sobre ti otras personas en tu red al espiar tus hábitos de visualización de TikTok, deja de usar la app y utiliza su web.
  • Para los programadores de TikTok. Ya tienes todas las imágenes y videos en servidores seguros, así que deja de buscar atajos (supongo que pensasteis que aceleraría un poco la aplicación móvil al tener las imágenes sin cifrar). Cambia la app para use HTTPS siempre.
  • Para todos los ingenieros de software. No permitas que los gerentes de productos de apps móviles te obliguen a tomar atajos de seguridad. Si externalizas el desarrollo móvil, no permitas que el equipo de diseño te convenza de dejar que el formulario se ejecute antes que la función. En 2020, HTTPS no es “bueno tenerlo en una versión futura”, sino es algo que no debes tener ya siempre.

4 Comentarios

Leave a Reply

Your email address will not be published.