Un chercheur, Daniel Le Gall, a découvert une vulnérabilité grave dans l'un des serveurs de Facebook. Le chercheur a trouvé un service hébergé sur Sentry 199.201.65.36 avec le nom d'hôte sentryagreements.thefacebook.com, tout en balayant une plage d'adresses IP qui appartient à Facebook -199.201.65.0/24.
Exécution de code à distance sur un serveur Facebook: Détails techniques
Qu'est-ce que Sentry? Il est une application Web de collecte de journal qui est écrit en Python avec le framework Django.
Le chercheur a également expliqué que, alors qu'il cherchait à l'application Sentry, certains stracktraces régulièrement sauté sur la page pour aucune raison particulière.
L'application semble être instable en ce qui concerne le mot de passe utilisateur fonction de réinitialisation, qui parfois écrasé, il ajouta, notant que le mode de débogage Django n'a pas été désactivée, qui imprime par conséquent tout l'environnement lorsqu'un stacktrace se produit.
Cependant, Django Cisailles informations critiques (les mots de passe, secrets, clé…) dans ces stacktraces, évitant ainsi une fuite massive d'information.
Le chercheur a décidé de regarder de plus près, et se rendit compte qu'il pouvait repérer les noms de cookies de session, différentes options, ainsi que sérialiseur connu sous le nom Pickle. Tout simplement, Cornichon est un protocole binaire pour (un)structures sérialisation d'objets python, telles que les classes et méthodes les.
Si nous avons pu forger notre propre session qui contient le contenu de cornichon arbitraire, nous pourrions exécuter des commandes sur le système,» Daniel c'est noté.
Cependant, le secret_key utilisé par Django pour la signature des cookies de session ne sont pas disponibles dans le stacktrace. En outre, la liste SENTRY_OPTIONS contient une clé de system.secret clé nommée, qui n'est pas Snipped. Selon la documentation Sentry, system.secret-clé est « clé secrète utilisée pour la signature de la session. Si cela est compromis, il est important de le régénérer sinon son beaucoup plus facile de pirater les sessions utilisateur « .
Comme le chercheur a souligné, il semble que la situation est «une sorte de Django override SECRET-KEY".
En utilisant toutes ces informations, Daniel a pu pour créer un script qui forge les cookies malicieux en utilisant le contenu Pickle arbitraire. Ce dernier contient une charge utile de remplacer le cookie Sentry. Ce cookie a été remplacé plus tard avec un objet arbitraire. Pour tester cette vulnérabilité, le chercheur a mis en œuvre une 30 seconde temporisation évitant la cause d'un dommage réel. Sa tentative a été couronnée de succès.
Un attaquant aurait pu exploiter la vulnérabilité de sécurité pour pirater le système à distance pour voler des données à partir du serveur Facebook ou effectuer d'autres activités malveillantes. Il convient de souligner que, que aucune donnée d'utilisateur a été localisé dans le serveur, Nether a été exposé il en raison de cette faille.
Daniel a rapporté sa découverte à Facebook en Juillet 30, 2018, avec la société reconnaissant rapidement le bogue en prenant le serveur. Un patch a été publié en Août 9, et le chercheur a reçu $5,000 pour avoir signalé la faille.
L'année dernière, un chercheur en sécurité, Andrew Leonov, a été décerné $40,000 au nom de Facebook pour violer le réseau social et la fixation d'une vulnérabilité d'exécution de code à distance qui a déjà été découvert et fixe 2016. Apparemment, la vulnérabilité nécessaire à traiter une fois de plus. La faille a été le site encore un impact sur.