Blog

Déc 11

Sécuriser un blog WordPress

Quelques petits conseils pour améliorer un peu la sécurité d’un blog WordPress.

Disclaimer: ce post ne contient pas de lignes de code à copier/coller pour sécuriser un blog. J’ai essayé d’y expliquer les tenants et aboutissants, d’y parler autant d’attaque que de défense, pour vous faire prendre conscience de la nécessité de garder un oeil sur la sécurité de votre site.

« Mais, pourquoi MOI, je me ferais hacker ? »

C’est la question qui revient souvent lorsqu’on parle de sécurité. Normal: dans les films, on voit souvent des hackers s’attaquer au Pentagone ou au FBI. Moins souvent à un petit blog sympa. Pourtant, dans la vraie vie, votre blog prend certainement plus de risques qu’un serveur fédéral.

Les « méchants » ont plusieurs profils, qui vont du vrai hacker, expert hautement qualifié en sécurité informatique (et donc en intrusion), jusqu’au « script kiddie », le petit con qui télécharge un « logiciel de hack » (sic), en passant par le spammeur pro. C’est ce dernier profil qu’on doit vraiment craindre.

Les motivations varient aussi. Pour faire simple, disons que chacun a des besoins, et que le serveur qui héberge votre site est une ressource dont les « méchants » aimeraient bien disposer. Par exemple, pour mener d’autres attaques par rebond (et brouiller les pistes pour ne pas être retrouvés trop vite), envoyer des mails de spam, ou poser des liens à votre insu sur votre blog et profiter de vos efforts en référencement. Il y a vraiment de nombreuses utilités à hacker un site ou un blog, si modeste soit-il. Ca peut aider quand la marchandise vendue est très concurrentielle, ou illégale (de la chaussure rouge à la pilule bleue…).

Il faut bien distinguer deux types d’attaque : D’un côté, celles dont VOUS êtes la cible, menées par quelqu’un qui vous en veut : un presta que vous avez oublié de payer, ou un mari cocu. De l’autre, les attaques automatiques, où l’attaquant scanne des dizaines, centaines, milliers, millions, (OK STOP ON A COMPRIS MERCI) de sites à la recherche de ceux qui seront vulnérables à une faille en particulier. Ce n’est vraiment pas de la science fiction : il existe tout un tas de solutions techniques pour faire ça. C’est surtout de celles-là qu’il faut se méfier : j’ai vu des blogs WordPress se faire scanner moins d’une heure après leur première mise en ligne.

Ok, maintenant que j’ai peur, on fait quoi ?

Pour commencer, on ne cède pas à la panique. Si vous avez un profil un peu technique et/ou une âme de bricoleur, il existe des tonnes de ressources (notamment en français) pour apprendre à sécuriser un blog WordPress. Si la technique vous donne des boutons, il vous reste la possibilité de contacter un pro pour vous aider à sécuriser un site existant et/ou à mettre en place une stratégie pour être tranquilles par la suite. Par exemple, je peux le faire [Contactez-moi] !

Quelques points pour bien commencer

Stratégie de backup/restore

Si demain vous vous faites hacker, il va falloir remettre le site en ligne rapidement. Vous devez donc être capables de sauvegarder entièrement votre blog. Les fichiers (core, configuration, thèmes, plugins) mais aussi la base de données (posts et commentaires). Tout aussi important, il faut aussi pouvoir remonter une sauvegarde en production rapidement et simplement. Il existe des outils pour ça : Chef/Puppet, Capistrano, Fabric, scripts maison, un stagiaire… On voit trop souvent des gens penser qu’une copie de la base faite à la main suffit. On connaît la chanson : la copie est faite une fois tous les 36 du mois, et quand on remet le site en ligne, on se rappelle subiement que le thème a été modifié directement en prod entre-temps (soyez maudits), que des plugins supplémentaires ont été installés, etc. On se tape trois jours de coupure, au lieu de quelques heures, avec quelques nuits blanches à la clef pour le dev en charge de l’opération.

Tenir à jour WordPress, les plugins et les thèmes

Le cycle de vie « normal » d’un logiciel comprend la mise en ligne de nouvelles fonctionnalités, qui introduisent du nouveau code, donc potentiellement de nouvelles failles de sécurité. Une fois découvertes, celles-ci seront corrigées dans des mises à jour futures. Ne pas faire les mises à jour, c’est laisser des portes ouvertes. Si vous ne « pouvez pas » mettre à jour (parce qu’un thème a été modifié, par exemple), c’est généralement que quelqu’un a mal fait son travail au niveau technique.

Nettoyer et tenir propre

Utilisez le moins de plugins possibles, et supprimez ceux dont vous ne vous servez pas (« Hello Dolly », c’est de toi que je parle).

Brouiller les pistes

Rappelez-vous : la plupart des attaques que vous subirez sont automatiques. Elles visent donc des options par défaut ou des plugins très répandus. Voici quelques conseils (en vrac !) pour verrouiller au minimum votre installation.

  • Quand vous installez votre blog, n’acceptez pas les valeurs qui vous sont proposées : n’appelez pas votre base de données « wordpress » (préférez « monblog_abc »). Changez le préfixe des tables (« matable_abc_ » au lieu de « wp_ »).
  • Votre utilisateur principal ne doit pas s’appeler « admin » et son identifiant ne doit pas être 1. Crééz un autre utilisateur, affectez-lui les contenus existants, et limitez ses droits.
  • Interdisez les connexions distantes à votre base de données. Désinstallez phpMyAdmin et utilisez plutôt MySQL Workbench (via un tunnel SSH).
  • Vous avez une IP fixe et êtes le seul auteur sur votre blog ? Parfait : interdisez l’admin à toute personne qui n’est pas connectée depuis votre ligne.
  • Une fois votre blog en place, bloquez l’installation de nouveaux thèmes et plugins, et interdisez l’édition des éléments déjà installés. Dans votre wp-config.php :
    define(‘DISALLOW_FILE_MODS’, true); // empêcher l’installation
    define(‘DISALLOW_FILE_EDIT’, true); // empêcher l’édition
    ensuite, un chmod sur votre wp-config.php vous permettra de le passer en read-only. Même chose pour les .htaccess !
  • Dans votre .htaccess, ajoutez « Options -Indexes ». Votre serveur ne listera pas le contenu des répertoires.
  • Nettoyez le header de votre blog : cachez la version, enlevez le manifest, url de pingpack, etc.
    Le fichier readme.html contient aussi la version de WordPress, supprimez-le, ou mieux, bloquez son accès via un .htaccess

Conclusion

Le « risque zéro » n’existe pas, mais il existe de très nombreuses pistes à suivre pour améliorer la sécurité d’un blog WordPress. Vous pouvez utiliser des tools comme WPScan, pour n’en citer qu’un, ou bien, je me répète, demander à quelqu’un dont c’est le métier de vous donner un coup de main (contactez-moi !)

Pour finir, voici quelques sources et références :

About The Author

Leave a reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *