Récemment, une importante faille de sécurité a été trouvée dans Facebook Messenger.
Cette dernière a été dévoilée par un chercheur en sécurité informatique du nom de Roman Zaikin.
Cette faille permet de :
Dans un monde où Messenger Facebook est utilisé dans toutes les situations personnelles mais également professionnelles, cette faille représente une réel problème.
En effet, elle pourrait permettre à un hacker de passer un contrat puis de changer les termes de ce dernier afin de mieux le rompre.
Toute personne malintentionnée pourrait ainsi profiter et extorquer à volonté d'autres personnes ou sociétés.
La faille
La faille est liée à un champs de la requête envoyée au serveur de Facebook et plus précisément à cette adresse www.facebook.com/ajax/mercury/thread_info.php.
Ce champs, c'est le message_id.
Il représente une identifiant unique du message dans la conversation.
En effet, lorsque vous envoyez un message sur Facebook, le SI de la société doit donner un identifiant à ce dernier.
Celui-ci permet de l'identifier formellement et donc de le retrouver de façon plus aisée.
Cet identifiant devrait pour bien faire rester secret.
Cependant, si l'on envoie le message à l'adresse www.facebook.com/ajax/mercury/thread_info.php cette dernière nous répond des informations en JSON contenant le message_id.
Une fois celui-ci obtenu, on peut renvoyer vers Facebook les requêtes initiales modifiées (avec les modifications que l'on souhaite) agrémentées du message_id.
Le système informatique se chargera alors de modifier le message dans les base de données de Facebook.
Mais, encore mieux, le message modifié sera également envoyé en push à tous les comptes et appareils connectés à la conversation de telle sorte que ceux-ci prendront également en compte cette modification qui passera donc totalement inaperçu.
Exploitation de la faille
Pour exploiter cette faille comme le chercher en informatique qui l'a dévoilée, nous allons utiliser BurpSuite selon l'architecture suivante :
Quelques explications s'imposent toutefois
Qu'est-ce que BurpSuite ?
BurpSuite est une application Java permettant le test de vulnérabilité des applications Web.
Elle est composée des modules suivants :
Burp Suite est donc un outil assez complet et puissant pour les tests d'intrusion sur les applications web.
Un des meilleurs d'après moi.
Il dispose d'une licence gratuite permettant l'utilisation de certains des modules tels que Burp Proxy et Burp Repeater.
De plus, comme il est écrit en Java, Burp est totalement multi-plateforme.
Utiliser BurpSuite
Une fois BurpSuite téléchargé et lancé, son proxy devrait déjà être lancé et en mode interception.
Vous devez donc configurer votre navigateur pour qu'il utilise ce proxy.
Pour ce faire, référez vous au guide utilisateur de votre navigateur.
Voici un lien pour Chrome.
Après avoir effectué les opérations et si BurpSuite est en Intercept On, vous devriez voir les requêtes et les réponses dans cet outils.
Vous aurez alors la possibilité de les renvoyer ou de les forwarder grâce à BurpRepeater.
Envoyons un message et modifions le !
Comme cette faille a maintenant été patchée, je vais me contenter de reprendre les screenshots faits par le chercheur à l'origine de la faille.
Après avoir envoyé un message, vous devez voir une requête envoyée telle que celle-ci :
Comme celle-ci contient le message_id, vous pouvez alors la modifier de la sorte :
Et enfin l'envoyer à l'URL : www.facebook.com/ajax/mercury/thread_info.php
Cette page se charge alors de modifier le message dans la conversation de votre interlocuteur, mais pas dans la votre !
Pourquoi cette faille est-elle dangereuse ?
Cette faille est potentiellement très dangereuse.
En effet, elle permettrait à toute personne mal intentionnée de :
Les possibilités sont infinies et un ingénieur social aurait certainement bien plus d'idées d'exploitation que moi.
Comme on dit : The Sky is the limit
Quid du cryptage dans tout ça ?
En effet, Facebook est protégé par ses certificats SSL non ?
Alors, comment pourrait-on modifier mes messages ?
Et bien c'est là que se trouve toute la magie !
Quand vous faites, la requêtes, n'oubliez pas que vous ne la faites que virtuellement, c'est en fait le proxy qui s'en charge.
C'est donc lui qui ouvre la connexion aux serveurs de Facebook. Il peut donc voir les données envoyées en clair.
Le proxy peut tout voir. Même et en particulier en connexion en HTTPS !
La conclusion de tout ça
Le point positif c'est que Facebook a directement pris cette faille très au sérieux et l'a corrigée dans les plus brefs délais.
La messagerie Facebook serait donc apparement à nouveau sécurisée.
Je pense que si l'on doit retenir trois points de tout ça c'est :
Merci pour votre lecture.
N'hésitez pas à poser des questions si vous en avez !
Je reste à votre entière disposition.
Sources :
http://blog.checkpoint.com/2016/06/0...maliciouschat/
http://www.news.com.au/technology/se...af6a4f4ea63fa5
https://www.facebook.com/notes/faceb...10578262289730
Cette dernière a été dévoilée par un chercheur en sécurité informatique du nom de Roman Zaikin.
Cette faille permet de :
- Modifier un message envoyé sur le chat
- Accéder à l'historique de la conversation
- Modifier un lien ou tout autre fichier lié à une conversation
- ...
Dans un monde où Messenger Facebook est utilisé dans toutes les situations personnelles mais également professionnelles, cette faille représente une réel problème.
En effet, elle pourrait permettre à un hacker de passer un contrat puis de changer les termes de ce dernier afin de mieux le rompre.
Toute personne malintentionnée pourrait ainsi profiter et extorquer à volonté d'autres personnes ou sociétés.
La faille
La faille est liée à un champs de la requête envoyée au serveur de Facebook et plus précisément à cette adresse www.facebook.com/ajax/mercury/thread_info.php.
Ce champs, c'est le message_id.
Il représente une identifiant unique du message dans la conversation.
En effet, lorsque vous envoyez un message sur Facebook, le SI de la société doit donner un identifiant à ce dernier.
Celui-ci permet de l'identifier formellement et donc de le retrouver de façon plus aisée.
Cet identifiant devrait pour bien faire rester secret.
Cependant, si l'on envoie le message à l'adresse www.facebook.com/ajax/mercury/thread_info.php cette dernière nous répond des informations en JSON contenant le message_id.
Une fois celui-ci obtenu, on peut renvoyer vers Facebook les requêtes initiales modifiées (avec les modifications que l'on souhaite) agrémentées du message_id.
Le système informatique se chargera alors de modifier le message dans les base de données de Facebook.
Mais, encore mieux, le message modifié sera également envoyé en push à tous les comptes et appareils connectés à la conversation de telle sorte que ceux-ci prendront également en compte cette modification qui passera donc totalement inaperçu.
Exploitation de la faille
Pour exploiter cette faille comme le chercher en informatique qui l'a dévoilée, nous allons utiliser BurpSuite selon l'architecture suivante :
Quelques explications s'imposent toutefois
Qu'est-ce que BurpSuite ?
BurpSuite est une application Java permettant le test de vulnérabilité des applications Web.
Elle est composée des modules suivants :
- Burp Proxy : Un serveur proxy permettant d'intercepter le traffic réseau (pour les têtes en l'air voici un <a href="http://www.spidermind.be/info/anonyme77/qu-est-ce-qu-un-serveur-proxy">petit rappel</a>)
- Burp Spider : Un robot d'indexation pour découvrir la structure des sites webs
- Burp Intruder : Un outil permettant de faire des tests d'intrusion sur certains types de vulnérabilités
- Burp Repeater : Un répéteur HTTP afin de renvoyer une ou plusieurs des requêtes HTTP captées via Burp Proxy
Burp Suite est donc un outil assez complet et puissant pour les tests d'intrusion sur les applications web.
Un des meilleurs d'après moi.
Il dispose d'une licence gratuite permettant l'utilisation de certains des modules tels que Burp Proxy et Burp Repeater.
De plus, comme il est écrit en Java, Burp est totalement multi-plateforme.
Utiliser BurpSuite
Une fois BurpSuite téléchargé et lancé, son proxy devrait déjà être lancé et en mode interception.
Vous devez donc configurer votre navigateur pour qu'il utilise ce proxy.
Pour ce faire, référez vous au guide utilisateur de votre navigateur.
Voici un lien pour Chrome.
Après avoir effectué les opérations et si BurpSuite est en Intercept On, vous devriez voir les requêtes et les réponses dans cet outils.
Vous aurez alors la possibilité de les renvoyer ou de les forwarder grâce à BurpRepeater.
Envoyons un message et modifions le !
Comme cette faille a maintenant été patchée, je vais me contenter de reprendre les screenshots faits par le chercheur à l'origine de la faille.
Après avoir envoyé un message, vous devez voir une requête envoyée telle que celle-ci :
Comme celle-ci contient le message_id, vous pouvez alors la modifier de la sorte :
Et enfin l'envoyer à l'URL : www.facebook.com/ajax/mercury/thread_info.php
Cette page se charge alors de modifier le message dans la conversation de votre interlocuteur, mais pas dans la votre !
Pourquoi cette faille est-elle dangereuse ?
Cette faille est potentiellement très dangereuse.
En effet, elle permettrait à toute personne mal intentionnée de :
- Modifier un lien le faire pointer ailleurs (un malware, ransomware, à vous de voir)
- Modifier un message afin de poser préjudice à la réputation d'une autre personne
- Modifier les images liées dans le même but
- Modifier les termes d'un contrat pour mieux le rompre et mieux nuire
- ...
Les possibilités sont infinies et un ingénieur social aurait certainement bien plus d'idées d'exploitation que moi.
Comme on dit : The Sky is the limit
Quid du cryptage dans tout ça ?
En effet, Facebook est protégé par ses certificats SSL non ?
Alors, comment pourrait-on modifier mes messages ?
Et bien c'est là que se trouve toute la magie !
Quand vous faites, la requêtes, n'oubliez pas que vous ne la faites que virtuellement, c'est en fait le proxy qui s'en charge.
C'est donc lui qui ouvre la connexion aux serveurs de Facebook. Il peut donc voir les données envoyées en clair.
Le proxy peut tout voir. Même et en particulier en connexion en HTTPS !
La conclusion de tout ça
Le point positif c'est que Facebook a directement pris cette faille très au sérieux et l'a corrigée dans les plus brefs délais.
La messagerie Facebook serait donc apparement à nouveau sécurisée.
Je pense que si l'on doit retenir trois points de tout ça c'est :
- N'utilisez jamais que des proxy en lesquels vous avez une confiance absolue
- Facebook prend la sécurité de ses utilisateurs au sérieux
- Il ne faut jamais oublier d'auditer les protocols réseau utilisés
Merci pour votre lecture.
N'hésitez pas à poser des questions si vous en avez !
Je reste à votre entière disposition.
Sources :
http://blog.checkpoint.com/2016/06/0...maliciouschat/
http://www.news.com.au/technology/se...af6a4f4ea63fa5
https://www.facebook.com/notes/faceb...10578262289730
Commentaire