{"id":4030,"date":"2018-01-18T10:00:01","date_gmt":"2018-01-18T09:00:01","guid":{"rendered":"https:\/\/georezo.net\/blog\/laminute\/?p=4030"},"modified":"2018-08-18T19:51:03","modified_gmt":"2018-08-18T18:51:03","slug":"postmortem-compromission-de-la-base-de-donnees-de-georezo","status":"publish","type":"post","link":"https:\/\/blog.georezo.net\/laminute\/2018\/01\/18\/postmortem-compromission-de-la-base-de-donnees-de-georezo\/","title":{"rendered":"[postmortem] compromission de la base de donn\u00e9es de GeoRezo"},"content":{"rendered":"<p>Nous avons re\u00e7u la semaine derni\u00e8re une alerte de s\u00e9curit\u00e9. Bien que nous recevons ce genre de chose de temps en temps (via le programme <a href=\"https:\/\/www.openbugbounty.org\/\">openbugbounty<\/a> par exemple), cette alerte nous a sembl\u00e9 plus inqui\u00e9tante. <strong>L&rsquo;objet de cet article est de vous expliquer le d\u00e9roulement des \u00e9v\u00e9nements, les cons\u00e9quences pour vous, pour nous et le futur.<\/strong><\/p>\n<p>&nbsp;<\/p>\n<h1># Mercredi<\/h1>\n<p>Le mercredi 10 janvier \u00e0 14h35 nous avons re\u00e7u un mail nous indiquant la pr\u00e9sence d&rsquo;une faille de s\u00e9curit\u00e9 dans le portail. Le mail pr\u00e9sentait \u00e9galement une preuve de cette affirmation avec des captures d&rsquo;\u00e9cran de la liste des bases et des tables. Son r\u00e9dacteur indiquait qu&rsquo;en \u00e9change d&rsquo;une somme comprise entre 500 et 1 000 Euros, il \u00e9tait dispos\u00e9 \u00e0 nous expliquer la m\u00e9thode pour corriger la faille.<\/p>\n<p style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4033 aligncenter\" src=\"https:\/\/georezo.net\/blog\/laminute\/files\/2018\/01\/Mail.png\" alt=\"\" width=\"425\" height=\"362\" \/><\/p>\n<p>\u00c0 la r\u00e9ception de cet email, l&rsquo;\u00e9quipe en charge du serveur a d\u00e9but\u00e9 une discussion avec le bureau, des mod\u00e9rateurs et des personnes externes sur la meilleure mani\u00e8re de g\u00e9rer cette situation. Il a \u00e9t\u00e9 d\u00e9cid\u00e9 de traiter le probl\u00e8me en interne et de ne pas accepter la proposition de gratification (qui d\u2019ailleurs peut s\u2019apparenter \u00e0 une ran\u00e7on), en conformit\u00e9 avec les recommandations des services de l\u2019Etat : <a href=\"https:\/\/www.cybermalveillance.gouv.fr\">https:\/\/www.cybermalveillance.gouv.fr.<\/a><\/p>\n<p>&nbsp;<\/p>\n<h1># Mercredi soir<\/h1>\n<p>Concernant la correction de la faille, la premi\u00e8re strat\u00e9gie a \u00e9t\u00e9 de mettre \u00e0 jour l&rsquo;ensemble des outils utilis\u00e9s (WordPress, Dokuwiki, etc.). Malheureusement GeoRezo est un portail \u00e2g\u00e9 de bient\u00f4t 15 ans. Le code a \u00e9t\u00e9 d\u00e9velopp\u00e9 au fur et \u00e0 mesure des besoins depuis ses d\u00e9buts. Ainsi une bonne partie du code date d&rsquo;il y a 10 ans.<\/p>\n<p>&nbsp;<\/p>\n<h1># Jeudi et vendredi<\/h1>\n<p>Un premier audit rapide du code a montr\u00e9 une faille dans le service de Biblio (faille d\u00e9montr\u00e9e). En tirant le fil on d\u00e9roulait la pelote. Jeudi matin les services se basant sur le code mis en cause ont \u00e9t\u00e9 d\u00e9sactiv\u00e9s (agenda, biblio, 1\u00e8re page, etc.).<\/p>\n<p>&nbsp;<\/p>\n<h1># Samedi et dimanche<\/h1>\n<p>\u00c0 partir de jeudi soir nous avons r\u00e9alis\u00e9 les corrections du code, d\u00e9ploy\u00e9 peu \u00e0 peu jusqu&rsquo;\u00e0 dimanche soir. Samedi et dimanche, un audit plus pouss\u00e9 a \u00e9t\u00e9 r\u00e9alis\u00e9 pour lister tous les fichiers, les v\u00e9rifier et les corriger.<\/p>\n<p>Dimanche, le contact n&rsquo;\u00e9tait pas rompu avec le ran\u00e7onneur et le tarif avait diminu\u00e9 \u00e0 150 Euros.<\/p>\n<p style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-4032\" src=\"https:\/\/georezo.net\/blog\/laminute\/files\/2018\/01\/code.png\" alt=\"\" width=\"693\" height=\"304\" \/><\/p>\n<p>&nbsp;<\/p>\n<h1># Les cons\u00e9quences<\/h1>\n<p>\u00c0 ce jour, nous avons une seule certitude : une faille par injection SQL a permis d&rsquo;acc\u00e9der \u00e0 la base de donn\u00e9es. Nous n&rsquo;avons cependant aucune certitude que des donn\u00e9es ont \u00e9t\u00e9 r\u00e9cup\u00e9r\u00e9es. Le contenu de notre portail \u00e9tant public, seuls les adresses emails et les mots de passe sont critiques. Les mots de passe sont hash\u00e9s (i.e. il ne sont pas stock\u00e9s en clair dans la base).<\/p>\n<p><strong>Nous vous invitons quoi qu\u2019il en soit \u00e0 ne pas utiliser le m\u00eame login, email et mot de passe sur d&rsquo;autres sites et \u00e0 modifier votre mot de passe.<\/strong><\/p>\n<p>&nbsp;<\/p>\n<h1># Le futur<\/h1>\n<p>Depuis plusieurs ann\u00e9es l&rsquo;\u00e9quipe GeoRezo maintient le portail en appliquant les mises \u00e0 jour des diff\u00e9rents produits logiciels que nous utilisons. Nous appliquons au plus vite les probl\u00e8mes de s\u00e9curit\u00e9 dont nous avons connaissance soit par les mises \u00e0 jour des produits, soit par le projet <a href=\"https:\/\/www.openbugbounty.org\/\">openbugbounty<\/a>. Nous allons poursuivre ces travaux dans les prochaines semaines.<\/p>\n<p>Au del\u00e0 de ces aspects li\u00e9s \u00e0 la s\u00e9curit\u00e9, nous allons \u00e9galement mener un projet de remise \u00e0 plat de l&rsquo;ensemble du portail, en partant d&rsquo;une feuille blanche. Cette r\u00e9flexion doit d\u00e9buter tr\u00e8s vite en interne mais nous prendrons le temps de vous \u00e9couter.<\/p>\n<p>&nbsp;<\/p>\n<p>Si vous souhaitez r\u00e9agir ou nous poser des questions sur tout ceci, nous avons cr\u00e9\u00e9 un <a href=\"https:\/\/georezo.net\/forum\/viewtopic.php?pid=304361\">sujet sp\u00e9cifique sur le GeoBar<\/a>.<\/p>\n<p><em>Yves et l&rsquo;\u00e9quipe du GeoRezo<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nous avons re\u00e7u la semaine derni\u00e8re une alerte de s\u00e9curit\u00e9. Bien que nous recevons ce genre de chose de temps en temps, cette alerte nous a sembl\u00e9 plus inqui\u00e9tante. L&rsquo;objet de cet article est de vous expliquer le d\u00e9roulement des \u00e9v\u00e9nements, les cons\u00e9quences pour vous, pour nous et le futur.<\/p>\n","protected":false},"author":47,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[108,107],"tags":[279,172,297,284,5053],"class_list":["post-4030","post","type-post","status-publish","format-standard","hentry","category-pannes-et-bugs","category-quoi-de-neuf","tag-bug","tag-forum","tag-listes","tag-maintenance","tag-pannes-et-bugs"],"_links":{"self":[{"href":"https:\/\/blog.georezo.net\/laminute\/wp-json\/wp\/v2\/posts\/4030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.georezo.net\/laminute\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.georezo.net\/laminute\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.georezo.net\/laminute\/wp-json\/wp\/v2\/users\/47"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.georezo.net\/laminute\/wp-json\/wp\/v2\/comments?post=4030"}],"version-history":[{"count":12,"href":"https:\/\/blog.georezo.net\/laminute\/wp-json\/wp\/v2\/posts\/4030\/revisions"}],"predecessor-version":[{"id":4118,"href":"https:\/\/blog.georezo.net\/laminute\/wp-json\/wp\/v2\/posts\/4030\/revisions\/4118"}],"wp:attachment":[{"href":"https:\/\/blog.georezo.net\/laminute\/wp-json\/wp\/v2\/media?parent=4030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.georezo.net\/laminute\/wp-json\/wp\/v2\/categories?post=4030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.georezo.net\/laminute\/wp-json\/wp\/v2\/tags?post=4030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}