Sujets-libres.fr

Informatique, logiciels libres, internet, humeurs et… le reste !

Mise à jour blog vers PluXml 5.5

Rédigé par -Fred- Aucun commentaire

Le blog évolue et passe de PluXml 5.4 à PluXml 5.5 . La mise à jour s'est effectuée sans incident. Une fois les nouveaux fichiers copiés (tous sauf les répertoires /data, /plugins et /themes, ainsi que le fichier config.php) et leurs droits vérifiés, il suffit de se rendre sur le blog et d'exécuter la mise à jour proposée afin de finaliser la migration. C'est tout.

J'apprécie toujours autant la simplicité d'utilisation de ce CMS. Merci donc aux contributeurs.

Page officielle du projet : www.pluxml.org

Blog compromis, ma réponse à l'incident

Rédigé par -Fred- 2 commentaires

Je vois peu de retours d'expérience concrets sur le net, alors je vais vous livrer le mien. Je ne suis pas spécialiste de la question. Mon analyse est donc probablement imparfaite ou incomplète. Toutefois, je le fais pour plusieurs raisons :

  • Les quelques visiteurs qui passent ici doivent savoir si mon blog est, ou a été, à risque.
  • Communiquer sur un cas réel me semble intéressant. Il est désagréable de parler de son propre cas mais au moins, j'ai accès à toutes les informations.
  • Si je suis en mesure de faire des erreurs, je ne dois pas être le seul. Expliquer quelles ont été mes erreurs pour que d'autres ne les commettent pas ne peut être que bénéfique.
  • Donner la possibilité à mes visiteurs de me faire un retour, notamment sur ma manière de réagir à cet événement, sera peut être pour moi l'occasion de progresser.

Analyse

Comment cela a été possible ?

J'ai passé un peu plus de temps à analyser mes logs et les seules informations que j'ai pu trouver se trouvent dans les logs d'apache. Rien ailleurs et pour cause, les faits datent du 5 novembre 2014. Il n'y a donc plus rien à voir dans les autres logs depuis longtemps.

Je constate donc une forte activité de la part de l'attaquant le 5 novembre 2014, date à laquelle l'un des fichiers a été déposé et exploité. Le fichier en question est un script php déposé dans un répertoire que j'avais créé manuellement à la racine de mon blog wordpress (pas grand chose dans ce dossier à part des photos présentes sur mon blog et quelques bricoles).

Je suspecte donc que l'un des plugins ou l'un des thèmes utilisé sur mon blog contenait une faille permettant l'upload de fichiers. Je précise toutefois que les plugins et thèmes utilisés proviennent tous de sources officielles (trouvés et installés via le panel d'administration du blog). J'écarte peut être trop vite Wordpress lui même mais dans le mesure où il se met à jour automatiquement, les failles connues sont comblées rapidement. Sauf à exploiter une 0 Day, c'est donc peu probable.

Certains répertoires avaient aussi des autorisations trop élevées. Je ne pense pas que ce soit du fait de l'attaquant mais plutôt moi qui a certainement un jour modifié cela (suite probablement à un problème de mise à jour wordpress).

Les logs montrent par ailleurs que pour lister les failles de mon blog et de quelques sites hébergés sur mon serveur, l'attaquant à utiliser au moins un outil open source de recherche de vulnérabilités web. L'outil en question est intéressant pour deux raisons. D'une part, il permet d'auditer ses propres sites, et d'autre part, il me permet de comprendre certains comportement étranges de mon serveur il y a quelques mois (CPU serveur chargé à presque 100% à cause d'un nombre anormal de processus apache2). J'ai donc compris que mon serveur avait fait l'objet de scans en vue d'y trouver des vulnérabilités.

A quoi servaient ces fichiers ?

Le premier fichier n'était clairement fait pour ne pas être lisible facilement (instructions codées en ascii, codes en base64, gzinflate...). Une fois décodé, il montre un peu plus ce à quoi il est destiné car il contient tout un tas de commandes permettant notamment de rechercher des fichiers sensibles du système (utilisable en environnement *nix ou windows). J'ai exécuté le fichier en machine virtuelle dans firefox (avec le module firebug) et je vois qu'il tente de se connecter à des ressources dispo sur un site externe (je continue à essayer de comprendre plus de ce côté là).

L'exécution du scripts en question en machine virtuelle montre qu'il tente de communiquer avec un serveur distant. Le domaine de ce serveur est en .ro . A ce que je peux voir rapidement, ce serveur héberge un certain nombre d'outils permettant le piratage de sites web.

Un autre fichier a été déposé plus récemment (fin juillet) et contient un exploit selinux. Un autre répertoire contient, si je comprend bien, un outil d'analyse open source. Je ne trouve pas de trace quand à l'utilisation de l'un ou l'autre de ces outils, contrairement à l'autre outil dont je parle au dessus et pour lequel je peux voir que l'attaquant l'a utilisé environ 1h sur ma machine.

Comprendre ce qui a été fait et les motivations

Je constate que l'attaquant a possiblement disposé d'une bonne vue de la structure des différents sites hébergés sur mon serveur et accessibles. Il ne me semble pourtant pas que des dégâts aient été fait. Rien non plus en base de donnée (en tout cas, s'il y a eu quelque chose à une époque, il n'en reste rien).

Actions

Actions curatives

Comme détaillé dans un billet récent, j'ai très rapidement vérifié que ma base de donnée Wordpress était saine. J'ai ensuite réinstallé une instance toute propre de Wordpress sans aucuns plugins, histoire d'avoir une solution fonctionnelle le temps de trouver une solution plus durable et plus sûre pour mon blog. La solution retenue a donc été de passer à Pluxml car l'outil correspond parfaitement à mes besoins.

Actions préventives

Pour ne pas avoir à subir un nouvel épisode de ce type, j'ai décidé d'être plus strict au niveau de la gestion de mon serveur. J'ai donc déjà nettoyé et réduit au maximum le nombre de services ouverts sur l'extérieur. Que ces autres services n'aient pas été touchés aujourd'hui ne signifie pas qu'ils ne le seront pas à l'avenir ou qu'ils ne puissent pas donner d'informations à d'éventuels attaquants. Certains services utiles ne sont plus ouverts qu'en local (munin notamment) et d'autres sont tout simplement fermés (webmail rainloop). Au niveau Web, je n'ai conservé sur l'extérieur que ce blog et deux pages statiques.

J'effectue à présent un suivi de l'activité de mon serveur de manière plus stricte. Je suis en train de réfléchir à automatiser ce qui peut l'être et qui est spécifique à mon installation. J'ai un peu chamboulé mon programme de pré-rentrée afin de remettre un peu d'ordre là où c'était nécessaire.

Conclusions

Mes erreurs ont été multiples. Je considère avoir globalement été trop laxiste, que ce soit au niveau de mes réglages apache qu'au niveau des services ouverts sur ma machine. Peu regardant aussi sur l'activité de mon blog. J'aurais, si j'avais bien fait les choses, dû voir immédiatement l'arrivée de ces fichiers.

Je considère avoir eu de la chance. Cette expérience m'a permis de connaitre l'existence d'outils intéressants d'audit de sites web. Je vois d'ailleurs mieux comment se comporte mon serveur lorsqu'il fait l'objet d'une analyse par ce type d'outil.

J'ai aussi pris conscience de l'importance des logs. Il est donc essentiel d'être réactif, sous peine de ne pas avoir de données exploitables. Se faire poutrer une fois, ça peut arriver. Ne pas avoir les éléments pour réagir, c'est l'assurance que ça arrivera une seconde fois.

Mon blog wordpress compromis...

Rédigé par -Fred- 2 commentaires
Arf, je viens de me rendre compte que mon blog avait été compromis.

J'ai constaté la chose il y a peu de temps, en naviguant dans les répertoires de mon blog, car j'ai constaté la présence de plusieurs fichiers suspects (dont un présent depuis quelques mois déjà. Une analyse rapide me montre qu'ils ont été posés là par quelqu'un d'autre que moi et que donc, mon blog a potentiellement été compromis à un moment donné. Ce qui est gênant, c'est que je ne sais pas par quel moyen l'attaquant a réussi à déposer ces fichiers. Je suspecte qu'un des plugins ou l'un des thèmes sur mon blog comportait une faille qui a pu être utilisée ici.

Je n'ai pas constaté que des fichiers avaient été modifiés, ni d'autres choses étranges ailleurs sur mon blog ou en base de donnée. Je n'ai pas non plus constaté d'activité réseau suspect sur la période donnée. J'ai suivi les préconisations données par le lien suivant : http://blog.secupress.fr/attaques-wordpress-261.html. J'ai aussi commencé à analyser mes logs mais je ne vois rien jusqu'à présent.

Pour repartir sur une base saine, j'ai réinstallé une nouvelle instance de Wordpress toute propre. J'ai fait un diff entre ma base et une version plus ancienne d'un an et les écarts sont tout à fait normaux. Je l'ai donc conservée. Seul vrai changement, je n'ai rajouté aucun plugin ni aucun thème. J'espère ainsi limiter les risques.

A l'avenir, je vais aussi être plus attentif sur ce qui se passe dans les répertoires de mon blog. J'ai déjà les remontées quotidiennes de mes sauvegardes mais je vais certainement scripter une petit truc spécifiquement pour mon blog.

Il n'est pas impossible que je change de moteur de blog dans quelque temps mais ce n'est qu'une option. J'aime bien Wordpress et mis à part ce qui vint de se passer, je n'ai jamais eu de problèmes avec ce CMS.

L'art de se compliquer la vie ?

Rédigé par -Fred- 5 commentaires

Je passe mon temps à me compliquer la vie lorsque je touche à un ordinateur, et à plus forte raison lorsque je l'administre. A y regarder de près, ce n'est pas forcement faux, en apparence du moins. Je pense en fait que ce n'est qu'une question de point de vue et que tout le monde ne place pas le curseur au même endroit. Il m'a donc semblé intéressant de regarder ça plus en détail.

Une histoire de curseur

Qui dit curseur dit compromis entre, au moins, deux paramètres :

  • Le premier est la simplicité d'usage et le côté accueillant de la chose (user friendly comme on dit quand on est hype).
  • Le second paramètre est lié à la maitrise et, par extension, au degré de confiance que l'on a envers l'outil.

De mon point de vue, lorsqu'on utilise un outil qui nous facilite grandement la vie, il se produit deux choses :

  • D'une part, on transfert la complexité d'une tâche avec peu de valeur ajoutée à un outil.
  • D'autre part, on mobilise son énergie à faire autre chose.

Mobiliser ses capacités à faire des choses intéressantes ou vraiment créatives, c'est cool. La contre partie, c'est qu'il faut se poser quelques questions basiques avant de transférer un tâche quelle qu'elle soit. En fait, la question la plus intéressante consiste à savoir quel est le contrôle que l'on a sur ce nouvel outil. Ce que l'on néglige souvent, c'est que celui contrôle l'outil peut plus facilement contrôler les données traitées par cet outil. Alors, quand on contrôle soit même l'outil, pas de problème, mais quand c'est un autre que vous, c'est sensiblement plus compliqué...

L'innovation

Le cloud, lorsqu'il est géré par un tiers (c'est donc ce détail qui a de l'importance ici), est l'exemple typique où l'on est amené à échanger un peu du contrôle que l'on a de nos données contre un peu de confort. Oui, c'est pratique de pouvoir travailler sur un document depuis n'importe quelle machine, simplement en se connectant à un service avec son navigateur web. Toutefois, ce document n'est alors plus sous votre contrôle et vous ne pouvez rien faire si d'aventure, votre fournisseur de service cloud décidait d'apprécier votre prose. Dans l'absolu, vous n'avez même pas le moyen de savoir quels traitements sont appliqués à vos documents. Finalement, ce ne sont peut être déjà plus tout à fait vos documents (j'exagère à peine).

Le cloud n'est qu'un exemple parmi d'autres mais c'est le plus parlant. J'aurais tout aussi bien pu parler de voitures sans pilotes, de télévisions connectées, de services centralisés sur internet... L'innovation aujourd'hui, au moins dans le numérique, semble se focaliser uniquement sur les moyens de nous simplifier la vie, et par ricocher, nous amène à déléguer à des tiers la gestion de choses anodines en apparence mais potentiellement importantes dans le fond. L'utilisateur moyen n'aurait pas d'autre but que de se décharger des basses besognes à n'importe quel prix, afin de mobiliser son énergie à réaliser des tâches de plus haut niveau ?

L'envie de progrès

Je ne me retrouve pas dans cette course à l'innovation car à mon sens, elle nous dépossède peu à peu, mais surement, de choses importantes. Je pense d'abord au respect de notre vie privée, mais aussi à notre indépendance vis à vis de tel ou tel fournisseur de solution, à notre capacité de faire des choix éclairés ou à notre autonomie face à un dysfonctionnement. L'innovation vue sous cet angle ressemble plus à un moyen d'asservir ou de garder l'utilisateur captif qu'autre chose. En tout cas, elle ne permet pas de réel progrès.

L'envie de progrès me semble être le dénominateur commun de ceux qui cherchent à comprendre comment tout ce joyeux bordel fonctionne et comment il pourrait mieux fonctionner pour profiter à tous. Le partage de l'information à chaque fois que c'est possible ou la curiosité sont alors des réponses possibles face à cette problématique.

Je me complique la vie, certes, mais c'est un acte assumé. Assumé en tout cas depuis que j'ai pris conscience de l'importance de ce qu'il est nécessaire de perdre pour un peu de confort. Mon propre curseur est sans doute plus proche de l'envie (ou plutôt de la nécessité) de maitrise que de la facilité d'usage.

Ainsi, ceux qui passent de temps à autre sur ce blog savent par exemple qu'il est auto-hébergé. Ça implique des contraintes :

  • Matériel fonctionnant 24h/24, 7j/7 à mon domicile (conso électrique supplémentaire ; plan de reprise d'activité en cas de pannes).
  • Gestion de la politique de sauvegarde des données que l'on gère (typiquement, le mail de mes quelques comptes).
  • Administration au quotidien.
  • Chercher à comprendre comment ça fonctionne.
  • ...

Ça peut paraitre lourd et contraignant. La réalisation de cette tâche aurait été nettement plus simple (et possiblement mieux réalisée sur le plan technique) si je l'avais transférée chez un prestataire de service quelconque. Pour autant, mes données sont sur ma machine et je suis le seul à y avoir légitimement accès. Ça ne me met pas totalement à l'abri car un cambriolage ou un piratage est toujours possible après tout, mais ça va dans le bon sens.

L'auto-hébergement (et tant qu'à faire, rien qu'avec du logiciel libre) n'est qu'un exemple. j'aurais aussi pu parler de l'utilisation d'outils permettant d’améliorer le respect de sa vie privée sur le web. Un navigateur Firefox, bien paramétré et avec les bons plugins par exemple est parfois contraignant à utiliser au quotidien et rend certains sites quasiment impraticables. Cet outil a en fait un rôle pédagogique car il pointe par exemple des problèmes potentiels de sécurité. J'ai en mémoire un site web sur lequel je ne pouvais pas naviguer lorsque le plugin "request policy" était activé dans mon navigateur, la faute à un menu entièrement géré par JQuery (JQuery étant chargé dans ce cas depuis le site de google).

Pour conclure

La guillotine a en son temps été une innovation technique remarquable. Pourtant, le progrès pour l'homme fut d'en interdire l'utilisation. Il en va de même pour l'innovation dans le numérique qui n'est pas non plus synonyme systématiquement de progrès. Conservons donc notre curiosité et notre esprit critique, même si ça fait parfois mal au crâne.

Fil RSS des articles de cette catégorie