Un chercheur en sécurité a trouvé plusieurs failles de sécurité sur l’un des serveurs d’Instagram. Elles étaient suffisamment sérieuses pour lui permettre d’accéder à l’ensemble des données stockées par le service de partage de photos. Mais cet accès a créé une réelle tension avec Facebook : pour la société, le chercheur est allé trop loin.
Le chercheur Wes Wineberg a reçu de la part d’un ami une information intéressante : l’un des serveurs d’Instagram, sensu.instagram.com, contenait potentiellement une faille de sécurité. Il s’est donc penché sur la question, et a effectivement trouvé une brèche. Exploitable à distance, elle résidait dans la manière dont le service générait des cookies pour se souvenir de la connexion de l’utilisateur.
Plus précisément, le problème réside dans la conjonction de deux facteurs. D’un côté, le serveur utilisait un jeton secret de sécurité codé en dur. De l’autre, ce même serveur utilisait une version de Ruby (langage de script) connue pour abriter une faille autorisant une exécution arbitraire de code. Exploitant ces deux facteurs, le chercheur a finalement été en mesure de récupérer de nombreuses informations, dont les identifiants d’utilisateurs et d’employés et différents fichiers de configuration.
Creuser, jusqu'à mettre la main sur l'intégralité des données personnelles
Il aurait pu s’arrêter là, mais il a décidé de poursuivre son enquête. En creusant dans les fichiers de configuration, il a fini par trouver des clés relatives à des comptes Amazon Web Services, ces derniers étant utilisés par Instagram pour l’ensemble de son fonctionnement. En allant un peu plus loin, il est finalement tombé sur un jeu de clés lui ouvrant les portes des 82 instances de stockage Amazon S3. Or, ces instances ne contenaient rien de moins que la totalité de ce qu’Instagram pouvait héberger : son propre code source, les certificats SSL, les clés privées, celles liées aux API pour leur exploitation par des services tiers, l’ensemble du contenu statique du site web, les clés de signature pour les applications mobiles et surtout la totalité des photos et vidéos chargées par les utilisateurs dans le service.
Dans son blog (inaccessible pour l'instant), le chercheur explique que ces clés lui ont tout simplement permis d’obtenir tout le contenu d’Instagram, ce qui posait un sérieux problème : « Avec les clés que j’ai obtenues, je pourrais tout à fait imiter Instagram, ou n’importe quel utilisateur valide ou membre du personnel. Bien que ce soit hors-sujet, j’aurais pu facilement obtenir l’accès complet à n’importe quel compte, image ou donnée d’un utilisateur ». Les mots de passe sont pourtant chiffrées via bcrypt, Instagram n’ayant clairement pas choisi le premier algorithme venu pour sa sécurité. Mais comme indiqué par Wineberg, trop de comptes utilisent des mots de passe très faibles, et il lui a donc été facile d’en déverrouiller une douzaine rapidement.

Pour Facebook, Wineberg est allé beaucoup trop loin
Malheureusement pour lui, Facebook – qui possède Instagram – est clairement mécontente de cette situation. Non pas que l’entreprise renie le travail accompli par le chercheur, mais elle estime qu’il est allé beaucoup trop loin dans son enquête. En effet, Wineberg n’avait pas besoin selon elle d’aller jusqu’à fouiller dans les instances de stockage Amazon pour prouver que la faille était exploitable. La récupération initiale des fichiers de configuration et des identifiants était largement suffisante. En accédant aux données des utilisateurs, le chercheur aurait donc commis une erreur, brouillant passablement la situation.
Et la situation est en effet brouillée. Si l’on en croit Alex Stamos, le responsable de la sécurité chez Facebook, le chercheur a bien fait une erreur. Tout allait bien initialement : Wineberg avait prévenu pour la faille et montré son exploitation pour obtenir les identifiants et fichiers de configuration. Il avait contacté Facebook en utilisant l’adresse de la société Synack pour laquelle il travaille. Le réseau social l’avait informé qu’il recevrait 2 500 dollars en récompense de cette trouvaille, avec autorisation d’écrire un billet de blog sur sa découverte.
Exfiltrer des « quantités non nécessaires de données personnelles »
Selon Stamos, c’est à ce moment que les choses ont déraillé. Wineberg aurait affiché son mécontentement face à une somme qu’il jugeait trop faible. Il aurait donc continué à creuser, jusqu’aux découvertes qui ont fait grincer des dents chez Facebook, indiquant au passage qu’il rédigerait un billet complet avec ces nouvelles informations. Stamos aurait donc appelé le PDG de Synack, Jay Kaplan, pour l’informer non seulement que Wineberg allait trop loin, mais également que cette action établirait un impossible précédent s’il était autorisé : pas question de laisser les chercheurs exfiltrer des « quantités non nécessaires de données personnelles dans le cadre d’une recherche de bug ».
Ici, Wes Wineberg indique sur son blog que Stamos a menacé Kaplan de poursuites, ce que le responsable de la sécurité dément. Il aurait indiqué préférer laisser cette affaire en-dehors des mains des avocats et à aucun moment n’aurait demandé à ce que l’employé de Synack soit licencié. De son côté, Jay Kaplan aurait indiqué que les actions de Wineberg n’avaient pas été ordonnées par l’entreprise, cette dernière cherchant donc à se désengager de l'épineuse situation.
Le problème des conditions de la chasse aux bugs
Il y a donc clairement deux visions très différentes de l’affaire. D’un côté, le chercheur estime avoir été menacé par Facebook, jusqu’à appeler son patron pour faire pression. De l’autre, Facebook pense avoir respecté la chaine hiérarchique, dans la mesure où Wineberg utilisait son adresse professionnelle pour communiquer. Alex Stamos insiste sur l’idée que le vrai problème était la publication de ce billet de blog, puisque le contenu sortait des lignes de conduite réclamées par le programme de chasse aux bugs de Facebook : les données personnelles des utilisateurs ont été inutilement mises en danger. Wineberg assure pour sa part que toutes les manipulations ont été faites de manière responsable.
Actuellement, il semble en tout cas que Wes Wineberg connaisse bien les conditions de cette chasse aux bugs. Telles qu’indiquées sur le site de Facebook, elles ne précisent nulle part qu’un chercheur ne peut creuser plus loin à la recherche d’autres problèmes dès lors qu’il en a trouvé un premier. Il existerait donc un flou entre ce que Facebook pense vouloir imposer dans ses règles et ce qui est clairement indiqué, ce qui expliquerait sans doute le choc des deux visions. Il n’est donc pas impossible que ces conditions de participation changent rapidement.