Le code source de Facebook piraté et publié
par Michael Arrington (adaptation: Ouriel Ohayon) 13 août 2007

Nous avons appris que le code source de Facebook pour la page d’index principale a été publié sur un blog appellé Facebook Secrets. Il y a deux explications possibles à cette fuite. La première est qu’un développeur de Facebook en soit à l’origine; la deuxième, plus probable est qu’une vulnérabilité ait été exploitée sur l’un des serveurs de Facebook ou bien à l’endroit où le code est entreposé. Le code a été publié en un seul post sur ce blog, billet créé donc uniquement pour le code. Ce qui tendrait à faire penser que l’auteur de ce délit ne veut pas être associé à cette exploitation et ne recherche pas un quelconque crédit. Sans être complètement sur que ce code appartienne bien à Facebook, un coup d’oeil rapide nous permet d’affirmer que cela ressemble à une version récente de la page d’acceuil de Facebook.

De nombreuses ramifications possibles à cette affaire. La première est que le code peut être utilisé par des personnes extérieures afin de mieux comprendre l’application de Facebook et de détecter d’éventuelles brèches ou faiblesses supplémentaires. Facebook étant une application à code fermé, si l’on pas accès au code, des vulnérabilités ne sont accessibles que par un processus de boite noire. Une personne extérieure peut ainsi sonder l’application afin de comprendre comment se comporterait l’application en conditions de “course”. Dans les applications à source fermée, il est commun de voir des développeurs utiliser l’aspect fermé de l’application afin d’assombrir aussi un certain nombres d’éléments comme le design ou la structure. C’est pour cela que l’on dit qu’un code ouvert est plus sur qu’un logiciel fermé puisque toute personne peut lire le code et la technique d’assombrissement ne peut être utilisée comme mesure de sécurité.

La seconde implication est qu’avec cette fuite, le code en révèle pas mal sur la structure de l’application et les pratiques des développeurs de Facebook. De cette simple page, beaucoup peut-être compris et interprété sur le reste de la plateforme. Par exemple, la structure ne suit pas une programmation par objet (OOP), mais plus un long fichier PHP avec un grand nombre de fonctionnalités se côtoyant dans un même espace de noms. (ils semblent utiliser le moteur de templates Smarty )

Cette fuite n’est pas de bonne augure pour Facebook; elle met en cause la confidentialité des données de l’utilisateur. Si le code principal peut-être déniché, alors tout est possible. Facebook est devenu un tel succès qu’il devient l’objet de toutes les attaques frauduleuses. La plupart des grandes applications ont rencontré de tels problèmes, la chance finit par sourire aux hackers. En général, les sociétés concernées finissent par répondre et se défendre correctement; espérons que cela sera le cas pour Facebook. Je suis convaincu que Facebook fera le nécessaire afin de connaître les raisons et les responsables de cette fuite. Il leur faudra aussi prendre des mesures afin de réduire le risque pour les usagers; à cette heure déjà, des centaines de curieux doivent utiliser le code, publié ce matin et tester le système. A priori, je vois même des éléments dans le code qui révèlent des aspects cachés de la plateforme et offre un potentiel de départ à des intrus.

Mise à jour: Facebook nous a envoyé une réponse officielle (et BrandeBarker de Facebook a laissé un commentaire ): “Une partie du code source de Facebook a été exposé à la vue de certains utilisateurs à cause d’un bug sur un seul serveur mal-configuré puis réparé. Il ne s’agit pas d’une brèche et ne compromet en rien les données de l’utilisateur. La publication de ces codes enfreint de nombreuses lois et nous demandons aux gens de ne plus le faire“. Il semble que le problème soit dû à un serveur apache défaillant en raison d’une mauvaise configuration ou d’une charge trop grosse (problème connu). Il semble évident que d’autres pages ont déjà été percées; le problème n’est sans doute pas nouveau, mais c’est la premier fois que quelqu’un publie un document.

Commentaires rss icon

  • Le code est propre et c’est même amusant de voir qu’un site d’une telle ampleur y affiche autant de simplicité.

    Ca donnera peut-être des idées à d’autres personnes.

  • Heum… Il n’y a rien !

    J’espérais mieux. Je viens de regarder la page et il faut avouer qu’on ne peut pas en faire gd chose. Cette publication ne dévoile pas vraiment de secret et aucune information importante. Trouver un problème de sécurité avec juste ce source est aussi compliqué que sans.

    Là où ça peut faire mal, c’est si des morceaux de code, ou la structure peuvent-être comparés positivement avec Harvardconnection.

  • Ca me rassure d’apprendre que des grosses applis ne sont pas obsédées par la POO* à tout-va. A partir du moment où on est bien organisé dans sa syntaxe de codage, çà nuit pas aux performances, voir même le contraire…

    (*) Oui Ouriel, c’est dans cette ordre en français, comme “Programmation Orientée Objets” ;op

  • Faut pas déconner. Avce le code source de la page index, on a rien du tout.

    Simplement une interface qui appelle les fonctions importantes… Et ce sont ces dernières qui sont intéressantes.. Là on est bcp trop haut niveau abstraction. Au pire, un exemple pour les développeurs qui cherchent un exemple de code modularisé. Et encore, je n’ai pas regardé la qualité de ce dernier.

  • “Ca me rassure d’apprendre que des grosses applis ne sont pas obsédées par la POO* à tout-va. A partir du moment où on est bien organisé dans sa syntaxe de codage, çà nuit pas aux performances, voir même le contraire…”

    Un code moche peut s’executer très vite, ca ne veut rien dire. L’obsession de la POO vient plutôt de sa facilité de maintenance (enfin une POO ds le cadre d’un modèle MVC surtout)

    Ce code me décoit quand même pas mal. Je pensais que Facebook était même du genre à aller coder des extensions de PHP directement en C pour accélérer l’execution, mais en fait rien, on dirait du boulot de programmeurs stagiaires (pr un site de cette importance s’entend).

    Enfin, pour le problème apache, c’est une énorme bourde qd meme… Si on ne dit pas a Apache que c’est PHP qui doit gérer les fichiers .php, en effet, il affiche le code source en clair, comme un fichier texte. Cependant ce qui est pas mal, c’est que toutes les librairies sont situées en dehors du répertoire web ($_SERVER['PHP_ROOT']), ce qui explique que le “hacker” (qui n’en est pas un à mon avis) n’ait pas pu avoir plus de sources…

  • >Cedric: Le problème Apache ne vient pas forcément d’une énorme bourde. Il est relativement fréquent qu’en cas de forte charge serveur, Apache se mette à traiter le php comme un texte, au lieu de le compiler. Après, le problème de configuration vient peut-être au niveau de la répartition de charge et de tout ce bazar.
    Personnellement je traite toujours ces nouvelles avec circonspection. Et de plus, tu ne sais pas si le serveur ne venait pas d’être réinitialisé pour un problème quelconque…

  • Et vous n’avez pas pensez que ça pouvait être l’oeuvre d’une bande organisée genre “vous voyez on a réussi à mettre ça en ligne si vous nous filez pas de l’argent on en met plus” ?

  • Xavier> Pour un site de cette taille, je pense que la moindre des choses à faire est d’installer ces modules apache qui t’affichent des jolis messages d’erreur s’ils ne sont pas capable d’envoyer la page au PHP… Une erreur Apache n’est jamais de la faute d’une charge excessive, c’est forcément toujours la faute d’une mauvaise configuration!

  • En ce qui me concerne je pense plutôt à une erreur humaine: Si on lance Apache avec la mauvaise configuration, les pages PHP ne vont pas être interprétées, mais affichées comme du texte brut. C’est assez facile de se tromper…

  • Le logo de facebook détourné en peinture : http://www.6oogle.fr/facecock.htm

  • Facebook, un air de Barbe bleue….
    je ne suis pas ingénieur, juste utilisateur et comme peu de blogs parlent de ce problème de code source, je m’aventure dans un commentaire…
    Je connais des personnes qui ont ce fameux code source et qui malheureusement l’utilisent à des fins personnelles et diaboliques…
    elles ont ouvert cette porte que Barbe bleue leur avait pouvant interdit d’ouvrir, les pauvres… elles voient des correspondances privées qu’elles n’auraient jamais du voir, et doivent être bien malheureuses….
    c’est une atteinte à la correspondance, donc à une liberté fondamentale des droits de l’Homme…
    c’est un délit pénal
    c’est grave!

    conclusion facebook ne devient qu’un annuaire qu’il vaut mieux ne pas utiliser pour correspondre, ou alors, avec une grande prudence, en effaçant régulièrement ses courriers….
    “Pour vivre heureux, vivons caché”
    Peace

  • Actively Discussed Posts
  • Il n'y a pas de billets à afficher
  • MediaTemple Logo
  • QuickSprout Logo
  • OpenX Logo
  • Cotendo Logo