- Bonjour, je m'appelle Daniel. Je suis un lycéen de terminale de 15 ans. Pendant mon temps libre, je pirate de grandes entreprises et je crée des trucs sympas. Il y a trois mois, j'ai découvert une attaque de désanonymisation en 0-click qui permettait à un attaquant de suivre la localisation d'une cible dans un rayon de 250 miles via un appareil sur lequel certaines applications étaient installées. Par cette recherche, je souhaite alerter les journalistes, les militants et les hackers.
Cloudflare
- Cloudflare est l'un des CDN les plus populaires du marché, devant Sucuri, Amazon CloudFront, Akamai, Fastly et d'autres.
- L'une des principales fonctionnalités de Cloudflare est la mise en cache, qui stocke les contenus fréquemment consultés afin de réduire la charge du serveur et d'améliorer les performances des sites web.
- Cloudflare dispose de centres de données dans 330 villes à travers le monde, soit 273 % de plus que Google.
- Comme les données en cache de Cloudflare sont stockées à proximité des utilisateurs, l'idée est venue de se demander si cela pouvait être exploité pour une attaque de désanonymisation.
Cloudflare Teleport
- Il n'est pas possible d'envoyer directement des requêtes HTTP vers les centres de données de Cloudflare, mais il a découvert qu'en utilisant Cloudflare Workers, il était possible d'acheminer des requêtes vers un centre de données précis.
- Cloudflare Teleport est un outil proxy qui redirige des requêtes HTTP vers un centre de données spécifique via Cloudflare Workers.
- Cet outil a ensuite été corrigé par Cloudflare, mais il a été utilisé pour les premiers tests.
Première attaque de désanonymisation
- À l'aide de l'outil Cloudflare Teleport, il a validé sa théorie et, avec un simple programme CLI, a envoyé des requêtes HTTP GET vers une URL spécifique tout en listant le cache de la ressource et son ancienneté.
- Les tests ont été réalisés avec le favicon de Namecheap, ce qui a confirmé la théorie.
Application concrète : Signal
- Signal est un service de messagerie chiffrée open source largement utilisé par les journalistes et les militants.
- Les URL des pièces jointes de Signal sont configurées avec la mise en cache de Cloudflare, ce qui permet de suivre la localisation du destinataire à l'aide d'une méthode fondée sur la géolocalisation du cache.
- Une attaque en 0-click est possible via les notifications push, car les pièces jointes sont téléchargées automatiquement même si l'utilisateur n'ouvre pas la conversation.
Application concrète : Discord
- Discord est une application gratuite destinée aux gamers, récemment mise en avant en lien avec des fuites gouvernementales et la cybercriminalité.
- Les URL des avatars utilisateur de Discord sont configurées avec la mise en cache de Cloudflare, ce qui rend possible une attaque en 0-click via les notifications push.
- Un bot Discord appelé GeoGuesser permet d'automatiser l'attaque et de consulter directement les résultats dans Discord.
Rapport de bug bounty
- Les résultats ont été signalés à Signal et Discord, mais les réponses ont été dans l'ensemble décevantes.
- Cloudflare a corrigé le bug qui permettait les déplacements entre centres de données, mais le problème fondamental n'est pas résolu.
Comment se protéger
- Cette attaque peut représenter un risque majeur, en particulier pour les journalistes, les militants et les personnes très attachées à leur vie privée.
- Toute application utilisant un CDN peut encore être vulnérable si elle ne met pas en place des mesures de prévention appropriées.
Réflexions finales
- Les CDN améliorent les performances et la scalabilité, mais ils introduisent aussi des risques qui peuvent être exploités de nouvelles façons.
- Les utilisateurs occupant des rôles sensibles ou attachant une grande importance à leur vie privée doivent rester informés et vigilants.
1 commentaires
Avis sur Hacker News
Lorsqu’un utilisateur de Signal envoie une photo, elle est mise en cache dans un centre de données via Cloudflare. Dire que cela permet de suivre la localisation de l’utilisateur est exagéré, et cela ne compromet pas son anonymat à moins qu’il ne se trouve dans un endroit isolé. Cela reste cependant une analyse intéressante
Ni Signal ni Discord n’offrent l’anonymat. Ils affirment que les messages ne peuvent pas être lus, mais ce n’est pas parfait
Certains utilisateurs estiment que cette technique porte atteinte à l’anonymat. Des attaques répétées peuvent permettre de suivre les déplacements d’un utilisateur
Une localisation à moins de 250 miles ne constitue pas une atteinte à l’anonymat. Des renseignements OSINT supplémentaires sont nécessaires
Cette attaque peut être utilisée par les forces de l’ordre ou des acteurs malveillants pour déterminer la localisation d’un utilisateur
Certains s’interrogent sur la raison pour laquelle Signal a activé la mise en cache des URL. Désactiver cette mise en cache pourrait résoudre le problème
C’est le fonctionnement de base d’Internet, et c’est pour cela qu’un proxy d’anonymisation est nécessaire. Pour la grande majorité des utilisateurs, ce n’est pas une menace majeure
Cette attaque est non conventionnelle, sans exécution de code. Elle permet d’estimer la localisation approximative d’un utilisateur via les centres de données de Cloudflare