Analizando la privacidad real de las fotos de Facebook

La semana pasada se publicó en El Mundo una noticia en la que se hablaba de que la privacidad que Facebook aplica a las fotos que subimos a la red social, de la que @mkpositivo se hizo eco a través del twitter.

En la noticia se indica que, cualquier usuario, sin necesidad de estar registrado en Facebook, puede acceder a cualquier foto hospedada en la red social, previo conocimiento de su URL.

Veámoslo mejor con un ejemplo. A continuación se puede ver una foto subida por mí a Facebook. Se puede ver como en la configuración de visibilidad aparece compartida únicamente con mis amigos.

Si pulsamos con el botón derecho encima de la foto y seleccionamos la opción “Propiedades” en Internet Explorer, “Ver información de la imagen” en Firefox, o “Copiar URL de imagen” en Chrome, podemos obtener la URL de la foto. Luego solo es necesario pegarla en otro navegador distinto, o acceder tras hacer cerrado la sesión.

Podéis hacer la prueba con la foto que aparece en la captura anterior, cuya URL es: http://a1.sphotos.ak.fbcdn.net/hphotos-ak-ash4/227889_1039700604242_1577350655_1313941_1002_n.jpg

Comprobado que tenemos acceso sin problemas al servidor de fotos, solo nos falta saber los nombres de los ficheros para obtener todas las fotos de amigos y no tan amigos.

Un pequeño análisis

He realizado un pequeño análisis sobre las fotos que he subido a la red social, que no pretende ser exhaustivo ni completo, y estos son mis hallazgos:

  • Existen al menos dos granjas de 8 dominios que contienen fotos, siendo todos ellos réplicas. Según he podido comprobar, la misma foto se abre igualmente si cambiamos desde a1.sphotos.ak.fbcdn.net a a8.sphotos.ak.fbcdn.net, así como desde photos-a.ak.fbcdn.net hasta photos-h.ak.fbcdn.net, sin mayores problemas.
  • La carpeta donde residen los ficheros es constante, excepto los cuatro últimos caracteres, que pueden tomar cualquier valor alfanumérico. En el ejemplo, la carpeta donde están hospedadas las fotos es hphotos-ak-ash4, pero cambiando estos caracteres por otros cualquiera también se consigue acceso.
  • El tercer número que aparece en el nombre del fichero es el ID (número) de usuario. Si os habéis generado un nombre de usuario de Facebook, para saber vuestro número de usuario debéis acceder a la URL http://graph.facebook.com/, y en el resultado aparecerá vuestro número de usuario. Si no os habéis creado un nombre de usuario, el número aparecerá en la barra de direcciones al seleccionar vuestro perfil.
  • También he verificado que, de los cuatro grupos de números restantes que forman el nombre del fichero, hay dos que se incrementan de forma constante, y otros dos cuyo patrón no he podido averiguar.
  • Por último, la letra antes de la extensión cambia entre las siguientes letras, dependiendo del tamaño en que se visualice la imagen: [o,n,b,q,a,s,t]

Con todos estos datos, queda confirmado que, a pesar de que extraer el nombre de una foto de Facebook no es trivial, un ligero análisis ha demostrado que existen partes comunes que pueden reducir significativamente la complejidad de un ataque que busque extraer fotografías de alguien importante, como por ejemplo, el que parece ser el perfil personal de Mariano Rajoy.

Tras esto, y a petición del editor del blog, he hecho algunas comprobaciones más mediante una mínima prueba de fuerza bruta. El resultado en la parte positiva (o negativa, depende de la perspectiva de cada uno) es que no he podido dar con ninguna otra foto a partir de la primera, pero no he apreciado ningún tipo de descenso del rendimiento ni bloqueo de peticiones, a pesar de haber hecho algunos miles de peticiones en pocos minutos, por lo que entiendo que no estarán ejerciendo ningún control. Si el control de volumen es realmente así de “relajado”, cabría analizar hasta qué punto un ataque de fuerza bruta distribuido, cuyo objetivo fuese la obtención de fotografías y no inhabilitar el servicio, podría ser viable. En cualquier caso, dejamos eso para el lector aventurado, con mucho tiempo libre y potenciales ganas de problemas.

¿Por qué ocurre esto? Entiendo que, dadas las ingentes cantidades de información que procesa Facebook cada segundo, sus desarrolladores han tenido que llegar a un compromiso entre privacidad y experiencia de usuario, haciendo que el peso del control de acceso recaiga sobre la página principal de la red social, dejando a los servidores de fotos como meros repositorios y centros de procesamiento multimedia, sobre los que no se ejerce ningún control de acceso. ¿Qué os parece esta medida? ¿Estamos siendo demasiado paranoicos? ¿Piensan que “lo mismo da” ya que se tiene acceso a la foto y por tanto se puede copiar?

P.D: Acabo de comprobar que en Tuenti y Google+ el comportamiento es el mismo, aunque en este caso los nombres que se asignan a las fotos tienen, a priori, mayor complejidad.

Comments

  1. http://Diego2737 says

    no puedo creer que recien ahora te diste cuenta de esto.. estuve compartiendo mil veces fotos privadas de algunos de mis amigos de facebook con otros que no tenian permisos para verlas usando este metodo ;)

  2. Pues la verdad es que (yo personalmente) no había reparado en ello hasta hoy

  3. A mi me parece un buen análisis, Jose, hasta para los que ya sabíamos hacerlo.
    Y a alguno de los lectores del post, les recordaría, con todos los respetos, que hay cosas, que aunque sepas hacerlas, no deben hacerse. Eso de compartir mil veces fotos privadas de amigos con otros que sabes que no tenían permisos para verlas… en fin, a mi no me gustaría que mis amigos de Facebook se aprovecharan de mi ignorancia de esa manera.

  4. http://José%20Vila says

    Hola Diego2737,

    La verdad es que, como Manolo, yo tampoco me había dado cuenta hasta que leí la noticia.

    Como indica Lourdes, me parece que, si el propietario de unos recursos limita su acceso a ellos, otros no deberían acceder a estos recursos de forma “ilícita”.

    Otra cosa es que la plataforma donde se ubican estos recursos tenga fallos o partes mejorables, y se enfoquen estos “problemas” para intentar que se solucionen, de manera que se aumente seguridad global, tanto de la plataforma como de los usuarios que la utilizan. Esto si que me parece adecuado, y es por eso que escribí este post.

    Saludos,

    Jose.

  5. como dicen los demas eso ya era conocido desde hace varios años. facebook delega el servicio multimedia a servidores de terceros como por ejemplo la empresa akamai que dispone servidores portodo el mundo. esto es para alivianar la carga sobre los servidores principales y aumentar la velocidad de acceso a los contenidos multimedias.por lo tanto si los servidoresde akamai tubieran que verificar la sesion del que quiere ver una foto, se perderia la eficiencia del sistema y no tendria sentido contratar a servidores de terceros para alojar el contenido multimedia

  6. http://José%20Vila says

    Hola ulises,

    Gracias por tu comentario, al igual que por todos los comentarios anteriores.

    Está claro que se utilizan servidores dedicados y distribuidos para lograr mejor velocidad de acceso y la experiencia de usuario a la que me refería en el post. Lo que me gustaría que se comentara, además de los detalles de dichos servidores multimedia, es si os parece adecuado que las fotos puedan ser accedidas por cualquiera con un poco (o mucho) de tiempo libre para ponerse a hurgar.
    ¿Qué opináis? ¿No os parece que debería haber algún otro filtro? ¿Creéis que las fotos están seguras simplemente porque no se conoce su nombre?

    Saludos,
    Jose.

  7. si, porsupuesto que deberian cambiar el modo de acceso a las imagenes. personalmente detesto facebook y mas aun cuando a seguridad y confidencialidad se refiere, pero no queda otra mas que usarlo