Para lograr que con solo navegar a una determinada
URL se genere un
Access_Token con todos los permisos sin que el usuario los haya aceptado antes, realizando unas pruebas me topé con las aplicaciones desarrolladas por
Facebook. Todas estas aplicaciones creadas por los mismos desarrolladores de
Facebook no piden permisos al usuario debido a que para ellas no es necesario porque son del mismo
Facebook. Algo como suele hacer
Apple con sus aplicaciones o ... bueno, ya sabéis.
Esto lo puedes comprobar fácilmente ya que cuando cualquier aplicación en tu
iPhone o
Android quiere acceder a tus datos en
Facebook es necesario darle los permisos, mientras que cuando usas
Facebook para iOS o
Facebook para Android esto no es así. Es decir, estas aplicaciones tiene una categoría especial que les permite acceso total a tus datos, o lo que es lo mismo, generar un
Access_Token para ellas sin interactuar con el usuario. Las aplicaciones que son de
Facebook son las que están en
Facebook Apps y alguna otra más que no está por ahí.
Conocido esto, es posible suplantar la petición que hace
Facebook para iPhone con el objetivo de conseguir un
Access_Token con todos los permisos. Si miramos la petición que hace esta aplicación, se puede ver lo siguiente:
https://www.facebook.com/dialog/permissions.request?app_id=6628568379&next=https://facebook.com/connect/login_success.html&response_type=token
Como se puede ver, lo que devuelve esta
URL es un
Access_Token con todos los permisos para acceder a la cuenta del usuario. Esta es la redirección que se obtiene, con el
Access_Token.
https://www.facebook.com/connect/login_success.html#access_token=AAAAAAYsX7TsBAEmjMvxnhzHd6EjaGrGZBnrVsYsdsacHLGNDQiWhOtYHeJpAbA4[CENSORED]MBaodL8r6OsBe6EXkbG1hnumon0YP7xTAvnpYFb&expires_in=87731
Y así, a lo tonto, en ese
Acces_Token está el acceso a toda nuestra cuenta, es decir, como si fuera el usuario y la contraseña.
|
Figura 6: Surprise! |
Una
key que permite acceder a todos los datos de la cuenta. Por supuesto, para obtener ese
Acces_Token de cualquier persona hace falta un poquito de ingeniería social, que haga clic en un enlace malicioso y conseguir el
Access_Token de la respuesta mediante un script.
Como
Facebook aun no ha hecho nada para corregir eso, la gente malvada y los
empresarios de moral distraída y técnicas de Black SEO han comenzado a crear servicios en Internet que te ponen 1000 likes - como el tipo que
se cambió el nombre por Mark Zuckerberg por ser baneado y denunciado por Facebook - en estados, fotos, comentarios, etcétera, debido a que almacenan miles de
Access_Tokens y los usan para dar el servicio, es decir, te piden tu código y usan los códigos de los demás para darte el servicio, y así sucesivamente.
Hay miles de maneras de robarlo y las mass sencillas son mediante trucos de
Phishing, o servicios de engaño como saber quién usa tu perfil, eliminar la biografía, o saber cuentas que existen en
Facebook. Si lo quieren hacer menos llamativos, a los
Phishers les bastará con cambiar el esquema de
Phishing y pedir a las víctimas que, en lugar de insertar la contraseña y el e-mail, inserte ese
Access_Token para ver la información privada de una persona... o lo que se les ocurra.
Como prueba de concepto de la gravedad de esto programe una aplicación que permite realizar distintas funciones como leer los mensajes, ver notificaciones, actualizar estado, dar likes y más con solo ingresar el código de acceso, con la que jugué e hice muy popular algún post gracias a
Acces_Tokens cedidos por amigos. Aquí una imagen del programa.
|
Figura 7: Extrayendo info de una cuenta con un Access_Token "robado" |
En este caso, probando la aplicacón con mi cuenta, lo que hice es acceder a toda mi lista de contactos y mostrar el
ID, el nombre del contacto - en otras palabras el e-mail de
Facebook - y el e-mail de la persona - si no lo han ocultado -. En definitiva muestra a quién le gustaría que le
suplanten la identidad en Facebook, ya que tiene el e-mail público - ¡
Chema, ponlo público! -.
Seguramente a alguno le llamara la atención la imagen de la
Foca allí. Es una función del
Graph API de
Facebook que se llama
“metadata” y lo que hace es listar todas las
URLs que contienen los datos del usuario. Y a mí me gusta la
FOCA.
En definitiva, la creación de
Access_Tokens sin validación por parte del usuario, simplemente suplantando el
ID de una aplicación de
Facebook es un bug demasiado gravé, del que estoy seguro que
Facebook tiene constancia viendo las empresas que bloquea y demanda. Ahora hay que ver si con la difusión masiva lo cierran - aunque sería más engorroso para las aplicaciones
Facebook -
Ariel Ignacio La Cono
ignataur@hotmail.com
***************************************************************************************************
-
Aplicaciones de Facebook y Privacidad (1 de 3)
-
Aplicaciones de Facebook y Privacidad (2 de 3)
-
Aplicaciones de Facebook y Privacidad (3 de 3)
***************************************************************************************************