Au mois de février dernier, Orange Tsai, un développeur inscrit au programme de chasse aux bugs de Facebook, réussissait à entrer dans l'un des serveurs du réseau social. Mais une fois dedans, il constate que d'autres pirates sont passés avant lui. Selon lui, le script découvert dans le backdoor a permis aux pirates de voler les identifiants des employés du réseau social stockés sur le serveur. Mais dans le communiqué publié vendredi, Facebook explique autrement ces « activités malveillantes ».

Orange Tsai est consultant spécialisé dans les tests d’intrusion pour l’entreprise de sécurité taïwanaise Devcore. Pendant qu’il cartographiait les propriétés en ligne de Facebook, autres que les services à l'utilisateur comme facebook.com ou Instagram.com, il a été intrigué par le serveur files.fb.com sur lequel tournait une application de transfert de fichiers sécurisée développée par l’éditeur de logiciels d'entreprise Accellion. L’application était vraisemblablement utilisée par les employés de Facebook pour le partage de fichiers et la collaboration.

En analysant cette application, le consultant trouve sept vulnérabilités, dont deux permettant l'exécution de code à distance. Après les avoir signalés à l’éditeur Accellion, Orange Tsai a exploité ces vulnérabilités pour accéder au serveur d'entreprise de Facebook. Il récupère sur le serveur les informations de logs afin de préparer un rapport pour l'équipe de sécurité de l'entreprise. Mais, en analysant ces journaux, il repère des erreurs inhabituelles qui, au final, vont révéler la présence, sur le serveur, d’une porte dérobée en PHP, également connue sous le nom de Web Shell.

Un web shell malveillant permettant de télécharger des fichiers

Selon le consultant, le Web Shell malveillant aurait permis à ceux qui l’ont installé d’exécuter des commandes Shell sur le serveur et de télécharger des fichiers. Mais, plus important encore, le script a servi à détourner le processus d'authentification de l'application d’Accellion et enregistrait les identifiants des employés de Facebook qui accédaient au serveur. « Au moment où j’ai fait cette découverte, j’ai trouvé les identifiants de 300 connexions effectuées entre le 1er et le 7 février, la plupart du temps des connexions en '@fb.com' et '@facebook.com' », a déclaré le consultant dans un blog jeudi. « J’ai estimé que cet incident de sécurité était sérieux ».

Étant donné que l'application d’Accellion permettait l'authentification via LDAP et Windows Active Directory, Orange Tsai a pensé que les informations d'identification utilisées par les employés de Facebook pourraient également servir à s’identifier sur d'autres serveurs de l'entreprise, comme Outlook Web App ou VPN, mais il n'a pas essayé de les utiliser. Une analyse plus approfondie des logs du serveur a montré que les pirates qui avaient installé le Web Shell, avaient téléchargé les informations d'identification et avaient supprimé le fichier correspondant à plusieurs reprises. En outre, certains éléments prouvaient qu'ils avaient essayé de cartographier le réseau interne de Facebook, de se connecter à l'annuaire LDAP et à d'autres serveurs et qu’ils avaient même cherché des clés SSL privées.

Un exploit à double détente

Cependant, Facebook a donné une autre explication aux découvertes du développeur. Dans un communiqué publié jeudi, le réseau social a déclaré que le piratage découvert par Orange Tsai correspondait en fait à des tests effectués par un autre chercheur du programme de chasse aux bugs de Facebook. Selon le réseau social, l'application vulnérable découverte par le consultant n'était pas connectée à son réseau principal ou à ses systèmes de production. Enfin, Facebook a déclaré que, en tant que telles, les informations d'identification des employés « ne donnent pas accès aux systèmes critiques protégés par l'authentification à deux facteurs ».

La seule chose sur laquelle Orange Tsai avait raison, c’est que quelqu'un d'autre s’était bien introduit avant lui à l'intérieur du réseau de Facebook. « Le système a été manifestement exploité par le pirate à deux périodes : début juillet et mi-septembre », a-t-il déclaré. Or, l'incident de juillet s’est produit pratiquement au même moment où Accelion reconnaissait publiquement la présence d’une faille d'exécution de code à distance dans Accellion File Transfer Appliance. En l’échange de ses conclusions, Facebook a remis au consultant une prime aux bugs de 10 000 dollars. L’enquête menée par le réseau social à la suite de cette découverte a été bouclée ce mois-ci.