Victime d'un bug, Cloudflare a laissé fuiter des données personnelles, comprenant notamment des mots de passe. Tous les sites utilisant ce service peuvent être concernés et ils sont nombreux. Comme pour la faille Heartbleed, vous allez devoir changer vos mots de passe.
L'année 2017 débute sur les chapeaux de roues niveau faille de sécurité. En effet, Tavis Ormandy du Projet Zero de Google explique que Cloudflare a été victime d'une importante fuite de données, dont certaines ont été indexées par les moteurs de recherche, ce qui a été confirmé par le service.
Dans le lot, on retrouve des cookies, des jetons d'authentification, des requêtes HTTP et « d'autres données sensibles ». Un problème corrigé depuis quelques jours. Même si la probabilité que vous soyez concerné est faible, par sécurité vous allez devoir faire deux choses sur de nombreux sites et sur certaines applications :
- Changer votre mot de passe
- Vous déconnecter/reconnecter
Next INpact utilisant Cloudflare, il est préférable de le faire aussi sur notre site et dans nos applications. Si ce mot de passe était utilisé ailleurs, pensez à en changer. Nos lecteurs ont été avertis par email, et un billet de blog détaille la procédure à suivre.
Cloudflare, un point de centralisation d'Internet
Pour rappel, Cloudflare propose de nombreux services, dont un CDN (Content Delivery Network) qui est largement utilisé, notamment parce qu'il est accompagné de protections efficaces contre les attaques DDoS. Ses tarifs sont aussi plutôt raisonnables, avec une offre gratuite et une « Pro » dès 20 dollars par mois.
Cloudflare protège ainsi pas moins de 5,5 millions de domaines à travers le monde et devient un point de centralisation important. Il est d'ailleurs critiqué de manière récurrente pour cela, le problème du jour illlustrant parfaitement les craintes de ses détracteurs. Mais les solutions alternatives restent rares, et parfois assez spécifiques.
Google a par exemple mis à disposition des éditeurs de presse son propre CDN avec protection anti-DDoS : Shield. De quoi placer un peu plus le géant du web entre les médias et leurs lecteurs...
Que s'est-il passé ?
Parmi les outils proposés par Cloudflare, on retrouve un système d'analyse et de modification des pages HTML à la volée. Il est par exemple utilisé pour changer automatiquement des liens HTTP vers du HTTPS, ajouter des tags Google Analytics, masquer des adresses email, etc. Le cœur du problème se situe justement ici.
Pour modifier une page, Cloudflare a besoin de lire et d'analyser le code source de cette dernière. Pour cela, la société a développé un « parser » maison exploitant Ragel. Il y a un an, le fichier « .rl » contenant toutes les modifications à effectuer est devenu trop complexe, la société a donc développé un nouvel outil bien plus efficace, baptisé « cf-html ».
La migration s'est ensuite faite progressivement. Les deux sont implémentés comme des modules dans le serveur NGINX. Ils analysent chacun des blocs de mémoire à la recherche de morceaux de code HTML à modifier si besoin.
Cloudflare have been leaking customer HTTPS sessions for months. Uber, 1Password, FitBit, OKCupid, etc. https://t.co/wjwE4M3Pbk
— Tavis Ormandy (@taviso) 23 février 2017
À cause d'un dépassement de tampon (dû à une erreur de pointeur, les adeptes de C comprendront), le parser d'origine pouvait dans certaines circonstances accéder à des données se trouvant en mémoire vive alors qu'il n'aurait pas dû. Celles-ci se sont ensuite retrouvées dans le code HTML de la page et donc accessible à tout le monde sur Internet. Une histoire qui n'est pas sans rappeler le douloureux épisode Heartbleed, d'où le nom de « Cloudbleed » dans le cas présent.
Cloudflare indique que le bug était déjà présent depuis « des années » dans son module basé sur Ragel, mais qu'aucune fuite n'avait eu lieu en raison de la gestion des tampons internes de NGINX. Problème, l'arrivée de cf-hmtl a changé la donne, entrainant une fuite de données, même si cf-html n'est pas directement concerné.
Cloudflare précise qu'il s'agit bien d'une erreur de son côté, pas de Ragel. Tous les détails techniques sur les tenants et les aboutissants de cette histoire se trouvent par ici.
Quelles sont les informations qui ont pu être publiées ?
On y apprend notamment que des morceaux de requêtes HTTP de clients Cloudflare pouvaient se trouver dans la mémoire vive et qu'elles ont donc puis fuiter. Le détail de ce que l'on peut y trouver peut s'avérer assez compromettant (mais cela ne concerne pas les clefs privées SSL des clients) :
- Des morceaux de données POST, contenant éventuellement des mots de passe
- Des réponses JSON d'une API
- Des en-têtes HTTP
- Des paramètres URI
- Des cookies
- Des clés API
- Des jetons OAuth
- Etc.
Les éditeurs de sites doivent aussi être relativement vigilants et mettre à jour leurs éléments de sécurité sans tarder. Comme le précise la société, tous les sites qui utilisent ses services sont potentiellement impactés. En effet, un site vulnérable « pourrait révéler des informations d'un autre site Cloudflare » puisque la brèche pioche des informations dans la mémoire vive du serveur, peu importe d'où elles proviennent.
Certains ont déjà commencé à communiquer sur le sujet, 1Password évoquant par exemple sa procédure de connexion pour indiquer ne pas être affecté par ce bug.
Des conditions rares, une fuite sur 0,00003 % des requêtes
Mais il s'agit surtout de précautions, puisqu'il est difficile de savoir si l'on est concerné ou non. Pour qu'une fuite de donnée ait lieu, il faut réunir plusieurs éléments selon Cloudflare. Coté serveur, le dernier tampon de mémoire doit contenir un script ou une balise image mal formée, par exemple « <script type= »,
et il doit faire moins de 4 ko.
De son côté, le client doit avoir activé l'option d'obfuscation d'email (qui utilise à la fois le nouveau et l'ancien parser), ou bien Automatic HTTPS Rewrites/Server Side Excludes (qui utilise cf-html) en plus d'un service basé sur l'ancien parser.
D'après la société, ces conditions « expliquent pourquoi le dépassement de tampon résultant en une fuite de mémoire se produit si rarement » : environ une fois toutes les 3 300 000 requêtes HTTP, soit 0,00003 % du temps.
La première fuite pourrait remonter au 22 septembre de l'année dernière. Mais une montée en puissance a été constatée à partir du 13 février, car la réécriture de requêtes HTTP « n'est pas largement utilisée » et que Server-Side Excludes ne s'active que pour des IP jugées comme malveillantes :
- 22 septembre 2016 : Automatic HTTP Rewrites en place
- 30 janvier 2017 : Server-Side Excludes passe sur le nouveau parser
- 13 février 2017 : Email Obfuscation passe partiellement sur le nouveau parser
- 18 février 2017 : Google informe Cloudflare qui met fin à la fuite des données
Nettoyage des moteurs de recherche et déroulement des événements
Si le faille a été corrigée il y a quelques jours, une partie des données s'est retrouvée dans la mémoire cache de moteurs de recherche comme Google. Cloudflare s'est donc assuré qu'elles avaient été supprimées avant de dévoiler publiquement cette fuite.
Au total, 770 URI de 161 domaines différents ont été purgées. Selon de premières investigations, aucune information n'a été mise en ligne sur des services comme Pastebin. Voici enfin le déroulement des principaux événements :
- 18 février à 1h11 : Tweet de Tavis Ormandy
- 18 février à 1h32 : Cloudflare reçoit les détails de Google
- 18 février à 2h19 : Email Obfuscation est désactivé
- 18 février à 5h24 : Automatic HTTPS Rewrites est désactivé
- 20 février à 22h59 : Un correctif est déployé au niveau mondial
- 21 février à 19h03 : Les fonctionnalités sont réactivées
On constate donc que la correction a été rapide. Si aucun service ne peut jamais prévenir toutes les attaques et autres fuites possible, c'est aussi sa réactivité qui peut faire la différence dans de pareils cas. Ici, Cloudflare a montré son sérieux, même si son image devrait souffrir de la situation.
Et maintenant, que faire ?
Au-delà de la fuite de données, la question est maintenant de savoir quelle attitude vous devez adopter en tant qu'internaute. Comme toujours en pareille situation, il est recommandé de changer a minima ses mots de passe pour l'ensemble des sites utilisant Cloudflare et de se déconnecter/reconnecter. Certains ont commencé à communiquer publiquement sur le sujet, mais attention, tout le monde ne sera pas forcément transparent.
Pour le reste, il faudra être prudent et surveiller ses différents comptes en ligne afin de détecter rapidement un éventuel problème. Pour rappel, vous pouvez utiliser un gestionnaire de mots de passe afin de les changer tous d'un coup, mais ces derniers utilisant parfois Cloudflare... pensez donc à changer aussi votre mot de passe maitre au passage.
De son côté, 1Password affirme qu'aucune donnée sensible n'a pu fuiter et qu'il n'est donc pas nécessaire de le changer. Le gestionnaire donnera plus de détails dans un second temps.
- Choisir un bon mot de passe : les règles à connaître, les pièges à éviter
- Notre dossier sur les gestionnaires de mots de passe
Commentaires (110)
#1
Le site qui vérifie si un site passe par CloudFlare est-il fiable ? À l’instant il m’annonçait que NextInpact ne passait pas par CloudFlare http://www.doesitusecloudflare.com/?url=www.nextinpact.com ) :) (maintenant le site est tombé).
#2
C’est la galère de savoir quel site utilise Cloudflare, j’espère que les sites impactés nous préviendront par mail :(
#3
Je me faisais la même remarque…
#4
Je me connecte par Google+, je dois faire quoi ?
#5
#6
À cause d’un dépassement de tampon (dû à une erreur de pointeur, les adeptes de C comprendront)
Souvenirs souvenirs… " />
#7
#8
Déco/Reco pour changer la session, mais rien de plus pour le coup :) (au pire déconnecter/reconnecter Google+ mais je ne pense pas que ça fasse partie des infos potentiellement concernées)
#9
Je me suis déconnecté et reconnecté.
C’est bon du coup ?
J’espère de tout cœur que personne n’est touché parmi vous en tout cas
#10
Je la sentais venir…
#11
Ca faisait longtemps… c’est pénible, franchement…
#12
Le journal de bord tenu par le mec de Google qui a trouver cette faille est éloquent :https://bugs.chromium.org/p/project-zero/issues/detail?id=1139
Petit extrait qui m’a fait exploser de rire :
The examples we’re finding are so bad, I cancelled some weekend plans to go into the office on Sunday to help build some tools to cleanup. I’ve informed cloudflare what I’m working on. I’m finding private messages from major dating sites, full messages from a well-known chat service, online password manager data, frames from adult video sites, hotel bookings. We’re talking full https requests, client IP addresses, full responses, cookies, passwords, keys, data, everything.
#13
C’est ça de faire appel à des presta extérieurs au lieu de tout faire soit même ^^
#14
Humm
lié au compte google / g+ qui a redemandé une connexion ce matin ?
Sinon ,nextinpact a du mal à charger depuis 14h …
#15
Non
#16
#17
#18
j’avais le même problème depuis 12h; c’est réglé depuis peu pour moi… et je n’ai pas compris d’où ça venait. Ca ne concernait que NXI.
#19
Oki " />
et mdp changé du coup ;)
#20
Bin je ne crois pas au coïncidence …
#21
#22
En gros avec tous les sites qui utilisent cloudflare ça en fait dès mot de passe à changer pour certains.
😂
#23
Bon ben ça tombe bien, j’avais des mots de passe à changer, on va faire mumuse avec LastPass… XD
#24
tout dépend du site.
perso je vais pas changer mon pass ici.
aucun intérêt, il est unique.
si jamais vous voyez que je suis devenu fan d’Apple, ou que je défend la théorie de la terre plate, c’est que c’est pas moi. " />
#25
#26
Tu as la liste sur github " />
#27
#28
Un nslookup sur l’adresse IP du site te donnera la réponse :
> nslookup nextinpact.com
> nslookup 104.25.248.21
Ou même encore plus simple, CLoudflare a eu la bonne idée de publier la liste des plages d’adresses IP qu’il gèrent :https://www.cloudflare.com/ips/
Si l’adresse IP d’un site appartient à l’une de ces plages, c’est qu’il passe par Cloudflare.
#29
Ce serait bien qu’un jour les composants de sécurité écrits en C soit vérifiés formellement. Ou plus écris en C. UN jour, peut être, s’il y a de l’argent.
#30
J’ai eu l’info par un collègue dont le site qu’il gère utilise Cloudflare, et je viens de changer mon mot de passe NXI. Compte tenu de l’entreprise où je travaille, j’espère que l’on ne pourra pas me tracer à cause de ce genre de bug, bien que je ne poste que de chez moi, ou que d’un ordinateur personnel non relié à la connexion Internet de mon entreprise…
#31
#32
Attention, utiliser les DNS CloudFlare n’implique pas forcément que le site utilise le CDN à ma connaissance " />
#33
Excellent, merci " />
#34
#35
#36
Je ne sais pas si on parle de la même chose quand j’écris “formellement vérifié”. Cela ne court définitivement pas les rues les systèmes de ce genre (malheureusement).
#37
#38
#39
#40
#41
#42
Quand je parle de vérification formelle de composants de sécurité, je pense plutôt à des trucs comme ça :
Bref, quelque chose de très amont, qui donne des garanties très fortes en terme de sûreté et de sécurité, mais qui demande une débauche de temps et de moyens assez conséquente.
#43
Ils disent que le https n’est pas impacté.
#44
#45
Il ne sont pas dans la liste montrée sur la page Github. Ce qu’il faut regarder c’est le contenu du fichier, qui est LARGEMENT plus conséquent.
#46
#47
oui je m’en doute, jsuis au taf jpeux pas choper le fichier. ^^
#48
#49
Si le serveur DNS contacté pour résoudre l’adresse IP du site appartient à Cloudflare, si.
#50
#51
Changer son mot de passe comme précaution élémentaire.
Il ne me reste plus qu’à trouver un dialogue de Hentaï que je peux retenir sans trop de difficultés…
" />
#52
#53
J’ai envoyé ce lien à un collègue qui m’avait conseillé 1password comme solution pratique pour mes X mots de passe sur le web…
J’ai bien fait de ne pas suivre son conseil à ce que je vois.
#54
#55
1Password indique ne pas être concerné du fait de sa procédure de connexion, comme évoqué dans l’article " />
#56
#57
Dans l’article il est bien précisé que la faille pourrait être active depuis le 22 septembre (en fait elle l’est bien)
Tout est expliqué dans le lien du tweet de Tavis Ormandy, lui aussi intégré dans l’article.
EDIT : bon ben grilled.
#58
Un pirate propose toutes les infos piratées pour: 29.99€ … sik
#59
Pour le coup, votre “Etc.” n’est pas assez alarmant.
La page du Projet Zero montre que tout type de contenu sort.
La panique n’est pas cool mais l’inaction encore moins.
#60
Va falloir que je change mon mot de passe sur t411.li nextinpact.com. Bon aller ce soir on va faire chauffer keepass et changer tous les password ! Au lieu de regarder TF1 … " />
#61
De toute façon, le HTTPS c’est chiffré non?
Donc aucun risque.
#62
SI car Cloudflare déchiffre la connexion pour pouvoir la traiter puis la rechiffre.
#63
#64
Un “txt” de 68 Mo!!!
#65
#66
#67
#68
J’ai pas encore fini ma migration sur 1password tellement c’est chiant (heureusement qu’il n’est pas INpacté). Ça devient vraiment agaçant à la longue. Va falloir trouver autre chose pour le futur parce que ça part vraiment n’importe comment.
#69
Marant, moi aussi j’ai du me reconnecter ce matin sur mon compte google (android).. Idem, j’aurais aimé avoir la raison.
#70
J’ai bien commencé par lire le communiqué de CF (avant que NXi n’ait publié son article) et leur présentation, qui ne donne qu’un chiffre à la seconde période, et aucun à la première est clairement trompeur. Pour le coup, NXi ne s’est pas permis de faire la même manipulation. Notons également que le communiqué utilise un superlatif, ce que ne fait pas NXi.
#71
Il est joli ton edit, sauf que j’ai vu le message initial. Donc si monsieur est meilleur que moi, je vais le laisser se pavaner seul." />
Bon, grâce à LastPass, j’ai changé pas mal de MDP, il m’en reste sur des sites…pas conseillés au boulot " />
#72
#73
Nos lecteurs ont été avertis par email
Tous ? Moi j’ai rien reçu. Vous ne m’aimez pas " />
#74
#75
Pour savoir si un site utilise cloudflare tapez le nom de domaine suivi de /cdn-cgi/trace
exemple:http://www.nextinpact.com/cdn-cgi/trace
#76
#77
#78
J’ai reçu des alertes de la part de plateformes de trading de crypto-monnaies. Rien de la part des autres.
#79
#80
#81
Ah oui tout à fait. Moi je mets 123456 partout. Non je déconne.
" />
#82
MDR !
Et si tu deviens socialiste ? Ou pire Mélanchon ! On demandera ton exécution sur la place publique.
" /> " /> " /> " />
#83
#84
http://www.doesitusecloudflare.com
#85
C’est bien triste. (je suppose que) Vous sécurisez correctement les mots de passe des utilisateurs, et c’est finalement un service tiers qui en fait fuiter une partie. C’est biensûr sa faute, mais vous êtes aussi responsables de l’utiliser et par extension de fragiliser la sécurité de nos données.
Moralité : comptez-vous continuer avec Cloudfare (ou n’importe quel autre service de cache tiers) ? Car au final ce sont les utilisateurs qui trinquent.
#86
#87
Il y a vraiment des gens pour utiliser 1password &co ?
Tout ses mot de passe au même endroit et en ligne ???????????????????????????? ça va pas la tête ??????????
Sinon ça devient fatiguant de changer tous les 3-4 mois ses passwords à cause de l’incompétence de ces gens (Sony, CloudFlare, etc…) qui ont systématiquement des leaks/hacks. Le pire c’est que certains c’est leur métier premier la sécurité…
#88
#89
#90
#91
Vous devriez abandonner CloudFlare s’ils ont des problèmes de sécurité surtout que CloudFlare est un service assez inefficace ! Quand j’ai le message qui indique que le site est impossible l’option qui permet de voir quand même le contenu grâce à CloudFlare ne marche quasiment jamais.
#92
#93
#94