A fondo
¿En qué consiste el problema de seguridad de YouTube con las listas privadas?
Quizá hayas escuchado hablar estos últimos días sobre un problema de seguridad en YouTube. O, para ser más exactos, de privacidad. Un problema que podría haber expuesto las listas privadas de los usuarios, permitiendo de este modo que un hipotético atacante pudiera acceder, por ejemplo, a la lista completa de los vídeos que hemos visto, a los que tenemos guardados para ver más tarde, la lista de favoritos y la de vídeos subidos a YouTube por el usuario.
Lo primero que debes saber es que el problema de seguridad fue detectado por David Schutz, un investigador de seguridad que previamente ya ha encontrado otros problemas en la plataforma de vídeo de Google (y, por supuesto, los ha reportado de manera responsable a la misma antes de divulgarlos) y que, como en aquellas ocasiones, en este caso también informó a YouTube sobre el problema de seguridad que afecta de manera directa a cualquier usuario del servicio.
La otra buena noticia es que, aunque ha sido ahora cuando el problema de seguridad se ha hecho público, Schutz informó sobre el mismo a YouTube en octubre de 2019, una primera parte del mismo fue resuelta en noviembre de 2019, y una segunda parte que había quedado pendiente fue finalmente solventada en algún momento del año pasado. Por lo tanto, hablamos de un problema de seguridad que ya no está activo y no es explotable, según afirma el investigador que lo descubrió en la publicación en la que informa sobre el mismo.
¿Y en qué consistía el problema, y qué podemos aprender de él? Esto es, sin duda, lo más interesante, puesto que nos recuerda que la combinación de un iframe y una API pueden aportar un sinfín de funciones adicionales a una página web, pero que los responsables de dichos componentes deben esmerarse en garantizar que sean seguros, pues de lo contrario es posible encontrar sistemas para emplearlos con fines ilícitos.
API de YouTube, práctica pero no 100% fiable
Tal era el caso del problema de YouTube. A la hora de añadir un vídeo del servicio a una página web hay dos opciones: la primera y más empleada es añadir un iframe con un código generado automáticamente por la plataforma. La otra, más compleja, es emplear la API de YouTube. De este modo, podemos generar una interacción entre la página web en la que se aloja el iframe y el contenido del mismo. Por ejemplo, podremos añadir controles de reproducción fuera del iframe, por poner un ejemplo básico.
El problema es que, aunque solemos entender un iframe como un compartimento estanco, totalmente aislado del espacio que lo aloja, en realidad la API establece una conexión segura con el mismo, de modo que las interacciones entre iframe y web anfitriona puedan llevarse a cabo. Y es precisamente en esa conexión que rompe el aislamiento donde es posible explorar para detectar problemas de seguridad, como el hallado por Schutz.
En concreto, y tras algunas pruebas, el investigador comprobó que podía emplear la API para añadir un reproductor de YouTube en una web y, mediante las funciones de la misma, recuperar el contenido de las listas privadas automáticas de YouTube, que son las cuatro que mencioné al principio: Favoritos, Ver más tarde, Historial de reproducción y Vídeos subidos. Una fuga de privacidad que un hipotético atacante podría emplear con diversas intenciones.
El primer y más obvio ejemplo es, claro, revisar todo nuestro historial de reproducciones, vídeos pendientes y favoritos de YouTube, una información con la que es posible trazar un perfil bastante concreto de nuestros intereses, posicionamiento ideológico en múltiples aspectos, etcétera. Un perfil que, posteriormente, podría ser empleado con todo tipo de fines.
Otro caso no tan común pero sí muy interesante es el de obtener información sobre vídeos privados. Pongamos el ejemplo de un Youtuber que sube sus vídeos a la plataforma pero los mantiene como privados por diversas razones (cumplir con una planificación previa, chequear si el sistema de control de copyright de YouTube lo valida o identifica algún problema que haya que resolver antes de hacerlo público, etcétera). En ese caso el atacante no podrá ver el vídeo en sí, claro, pero sí que podrá obtener su nombre y descripción cuando todavía es privado, una información que puede utilizar, por ejemplo, para publicar contenido sobre el mismo tema anticipándose a la planificación del usuario espiado.
Ahora bien, el caso más evidente de la utilidad de este agujero de seguridad lo encontramos en los vídeos no listados. Recordemos que al subir un vídeo a YouTube podemos optar entre tres opciones de visibilidad:
- Público: Como indica su nombre, estos vídeos son públicamente accesibles, se pueden encontrar en las búsquedas en YouTube, pueden ser sugeridos como contenido relacionado, etcétera, su visibilidad es completa.
- Oculto: Solo las personas que tengan la URL de acceso al vídeo podrán acceder al mismo. No es indexado por YouTube y, por lo tanto, no aparece en resultados de búsqueda ni se muestra como sugerencia de contenido relacionado.
- Privado: Solo los usuarios autorizados pueden acceder al mismo. Aún si dispones de la URL del vídeo, solo si tu cuenta de usuario de YouTube ha sido autorizada podrás ver el vídeo. Obviamente tampoco son indexados, no se muestran en resultados de búsqueda y tampoco en vídeos relacionados.
El modo de vídeo oculto es bastante común entre usuarios que quieren compartir un vídeo con sus contactos, sin necesidad de aprobar previamente su acceso, pero que no desean que lo pueda ver todo el mundo. Y es que resulta bastante sencillo de gestionar, pues tan solo hay que compartir la URL con las personas elegidas y éstas podrán acceder sin restricciones, a diferencia de lo que ocurre con el modo privado, en el que es necesario autorizar, una a una, a cada una de las personas que quieran acceder al mismo.
Seguro que en este punto ya has visto el potencial peligro de un problema de seguridad como este. Efectivamente, tener acceso a las listas de reproducción generadas automáticamente por YouTube permitía al atacante obtener las URL de acceso a vídeos ocultos, ya sea los que el usuario haya podido publicar, y que se encontrarán en su lista de vídeos subidos, o aquellos de los que haya recibido el enlace y haya abierto, que se mostrarán en la lista del historial de reproducción.
Poco (por no decir nada) podían hacer los usuarios frente a este problema. YouTube genera esas listas de manera automática, por lo que la única opción era no emplearlas para añadir contenido (favoritos y ver más tarde), limpiarla constantemente (historial) y, directamente, no subir vídeos a la plataforma (vídeos subidos).
Las compañías que, como es el caso de YouTube, gestionan información privada de los usuarios y, al tiempo, ofrecen herramientas de integración de sus funciones en páginas web de terceros, deberían revisar siempre el funcionamiento de sus API, teniendo en cuenta todos los posibles escenarios de uso, y especialmente aquellos en los que un atacante podría intentar aprovechar las funciones de integración para acceder a datos privados.