Comment faire pour qu’une entreprise de la taille de Facebook réagisse plus rapidement devant d’importantes failles de sécurité? Offrez aux internautes le moyen d’exploiter celles-ci plus facilement.
«J’ai l’impression qu’il faudra qu’un problème relativement grave survienne pour justifier un tel changement drastique», a mentionné un ingénieur Facebook au sujet de cette vulnérabilité.
C’est exactement ce que la firme de sécurité Sakurity a fait la semaine dernière en lançant le service Reconnect. Le plus absurde dans cette histoire, c’est que la vulnérabilité en question est loin d’être nouvelle.
En effet, le spécialiste en sécurité Egor Homakov à l’emploi de Sakurity a d’abord avisé Facebook en janvier 2014 d’une importante vulnérabilité affectant Facebook Connect, fonction qui permet aux internautes de s’authentifier à d’autres services web par le biais du réseau social. Essentiellement, un pirate n’a qu’à forger une URL exploitant l’une des deux failles découvertes par Homakov et inciter un internaute à cliquer sur le lien afin de perpétrer une attaque de type Cross-Site Request Forgery (CSRF).
«C’est l’un de ces problèmes dont nous avons eu connaissance depuis un certain temps, mais auquel nous n’avons pas trouvé de solution viable», a répondu un ingénieur Facebook à l’époque, suite au courriel de Homakov concernant la vulnérabilité. «Il y a un débat [en interne] sur les risques réels associés à cette vulnérabilité, qui demeure quelque peu théorique.»
«Appliquer la protection des connexions de type CSRF est quelque chose que l’on refuse de faire ici depuis plusieurs années étant donné que toute tentative a eu pour conséquence de briser un grand nombre d’extensions, d’intégrations et d’autres entourloupettes. J’ai l’impression qu’il faudra qu’un problème relativement grave survienne pour justifier un tel changement drastique.»
Homakov a d’abord rédigé un billet sur son blogue révélant en détail sa découverte, espérant ainsi que sa publication attire l’attention de la communauté de spécialistes en sécurité informatique. À son avis, lorsqu’une entreprise doit choisir entre la sécurité et la compatibilité, la première option devrait toujours l’emporter sur la seconde.
Devant l’inaction de Facebook qui perdure depuis maintenant plus d’un an, Homakov a pris la décision controversée de déployer un outil facilitant l’exploitation de cette vulnérabilité. Puisque l’URL malicieuse doit être forgée d’une façon particulière selon les sites qui emploient la fonction Facebook Connect, l’outil limite les utilisateurs aux services About.me, Angel.co, Bit.ly, Booking.com, Mashable.com, StumbleUpon.com et Vimeo.com.
Comment fonctionne l’attaque en question?
À noter que cette vulnérabilité ne permet toutefois pas au pirate d’accéder au réel compte Facebook de la victime.
L’outile de Sakurity permet de forger un lien visant à abuser une vulnérabilité de connexion triple de type CSRF présente dans la fonction Facebook Connect.
Lorsque la victime clique sur l’URL générée par l’outil, elle se déconnecte (involontairement) de son compte Facebook pour se connecter sur un compte conçu spécifiquement par le pirate. Au même moment, les comptes de la victime sur les autres services qui emploient la fonction Facebook Connect se retrouvent liés au faux compte.
Une fois que le pirate obtient l’accès aux comptes des autres services, il peut s’introduire dans ceux-ci, modifier les mots de passe, lire les messages privés, et essentiellement faire tout ce que le service permet à ses membres.
À noter que cette vulnérabilité ne permet toutefois pas au pirate d’accéder au réel compte Facebook de la victime – ce qui peut expliquer jusqu’à un certain point l’inaction de Facebook à cet égard.
Comment se prémunir contre ce type d’attaque?
La façon la plus simple de se prémunir contre ce type d’attaque est de déconnecter tous les comptes des services sur lesquels vous vous êtes inscrits via Facebook Connect. Il va de soi également qu’un internaute peut facilement comprendre que son identité a été usurpée de la sorte une fois qu’il retournera sur Facebook, au contrôle d’un compte qui lui sera inconnu.