Sécurité minimum d’une application WordPress

Aucun site internet ou application n’est à l’abri d’une faille de sécurité, nous ne le répèterons jamais assez mais la protection absolue n’existe pas sur internet. Ne serait ce que par l’évolution constante des languages de programmation et l’intervention de l’homme par nature incertaine.

Néanmoins il existe des techniques, plus ou mois complexes à mettre en œuvre afin de sécuriser son installation WordPress et limiter la casse en cas d’intrusion d’un hacker.

 

Sauvegarder régulièrement votre installation WordPress et votre base de données.

Sauvegarder régulièrement vos fichiers

Enregistrer votre installation WordPress de façon régulière vous permet de conserver une copie de vos fichiers et de facilement pouvoir les réinstaller en cas d’attaque. En effet environ 75% des attaques sur un site peuvent être réparés grâce à cette tâche assidue.

Il est conseillé de sauvegarder des archives fréquemment, tous les 15 jours par exemple, cela dépends du traffic et de la fréquence à laquelle vous publiez du contenu. Vous utilisez la nomenclature suivante our archivez vos différents ZIP : nom du site suivi de la date.

  • MonSite-01092016
  • MonSite-15092016

Sauvegarder régulièrement votre base de données

Vous avez enregistré votre site, maintenant il est temps d’enregistrer vos données. Vous pouvez le faire soit via PhpMyAdmin, soit via des plugins spécialisés comme WpOptimize ou BackWPup Free par exemple.

 

Ne laissez pas la porte ouverte à tout le monde.

Faire les mises à jour offertes par votre CMS

Il y a un chiffre incroyable : « 85% des sites WordPress qui se font hackés sont des sites qui n’ont pas fait de mise à jour depuis plusieurs mois voire plusieurs années ». Tous les 6 mois WordPress propose, gratuitement, aux utilisateurs des mises à jours correctives ou évolutives qui permettent, en plus de rendre plus performante la plate-forme, de réduire considérablement les failles de sécurité. Il est donc indispensable de tenir à jour et votre version de WordPress, et les différents plugins qui y sont associés.

Un accès restreint aux ressources

Votre site web est composé de nombreuses ressources, des images, des vidéos, des sons, des dossiers, des fichiers de différents types, etc. Dans WordPress, l’ensemble de ces médiums peut et doit être protégé côté serveur en ajoutant la ligne de code suivant à l’intérieur du fichier .htaccess de votre site.

Pas besoin de laisser les clés sur la porte : wp-config.php et .htaccess

Ces deux fichiers sont les gardiens de votre installation WordPress et de votre serveur. Le premier config.php contient les grandes constantes de votre site, les accès aux bases de données et bien d’autres choses. Le second .htaccess force des comportements à votre serveur et lui dit comment réagir. Nous comprenons qu’ils sont donc relativement important pour nous et inversement fort convoités par les investigateurs d’attaques.

Première étape.

Chaque fichier sur un serveur dispose de droit d’accès de trois types : lecture, écriture et exécution. La première chose va être de limiter l’accès à nos deux fichiers en modifiant les droits d’accès à 644, c’est à dire en écriture seulement. Le plugin Acunetix WP Security permet de mettre en place cette étape sans avoir à manipuler un FTP si cela vous semble contraignant.

Deuxième étape.

Vous pouvez également protéger ces deux fichiers de l’intérieur, c’est à dire directement à la fin du code de votre fichier .htaccess en ajoutant les lignes suivantes.

D’abord pour protéger votre fichier wp-config.php :

Puis le fichier .htaccess ( oui, il se protège lui-même ! ) :

 

WordPress est un peu trop bavard.

Supprimer le fichier readme.html

Tout est dans le titre… Le problème de WordPress, qui devient le vôtre dans ce cas, est qu’il est extrêmement bavard et adore parler de lui, il faut donc lui apprendre à se taire un peu pour ne pas donner aux hackers directement l’ensemble des informations intrinsèques de votre site internet.

Masquer la version de WordPress

Si vous affichez le code source de votre site web, on peut trouver la ligne de code suivante :

Les balises meta sont en fait du code structurel (HTML) qui donne des indications sur votre site à différentes autres entités (navigateur, smartphone, robots, etc). Le problème est que ces informations précises reviennent à dire à un attaquant :

  1. Regarde dans le code source de mon site internet ;
  2. Récupère la version utilisée de mon CMS ;
  3. Fait une recherche Google sur les failles de sécurité connues de cette version ;
  4. Attaque mon site internet.

Pour éviter cela, ouvrez le fichier function.php et ajoutez le code suivant :

Nous pouvons également empêcher le flux RSS d’afficher la version WordPress avec la fonction suivante :

Modifier le préfixe par défaut de la base de données

Lorsque vous procédez à l’installation de WordPress, le préfixe par défaut de chaque table de votre base MySQL est « wp_ ». Partant de là, si vous, vous le savez un hacker le sait probablement aussi : modifier donc ce paramètre dès le début de votre installation WordPress. Si vous n’avez pu le faire directement, le plugin WP Security Scan permet d’effectuer ce changement par la suite.

Masquer les erreurs de connexion

Quand vous essayez de vous connecter à votre espace d’administration, si vous n’y parvenez pas, WordPress vous renseigne sur le pourquoi du comment de vos erreurs. Pour éviter cela, vous pouvez ajouter cette ligne de code à votre fichier function.php du thème enfant.

Désactiver Windows Live Writer

WordPress ne parle pas tout seul ! Il veut également communiquer avec d’autres applications comme par exemple Windows Live Writer qui est un logiciel Microsoft permettant de publier sur votre site internet depuis une application de bureau. Pour des problèmes de compatibilité et d’intérêt cette fonction est instable et constitue une faille potentielle de sécurité. Vous pouvez donc simplement la désactiver en entrant le code suivant dans votre fichier function.php :

 

La première faille de sécurité c’est vous.

Il y a un point d’entrée extrêmement pratique pour vous mais qui est également, si celui-ci n’est pas sécurisé, une faille de sécurité à exploiter par un hacker : vos identifiants et vos mots de passe.

Un mot de passe qui n’est pas le nom de votre chien

La première choses à faire avec vos mots de passe sont de les complexifier. A l’heure actuelle sur internet, toute personne qui cherchent des informations sur vous peut en obtenir facilement : votre nom / prénom, votre date de naissance, vos photos, votre travail, vos loisirs, etc. Tant d’informations qui permettent de trouver facilement votre mot de passe sans vous avoir jamais parlé. Il est donc fortement conseillé de choisir des mots de passe avec au moins 15 caractères minimum, des lettres majuscules et minuscules, des chiffres et des caractères spéciaux. Il est également conseillé de choisir un mot de passe complexe par plateforme, c’est un minimum.

Supprimer le compte ‘admin’ par défaut

Par facilité ou par défaut (sur certains hébergeurs comme OVH) l’identifiant admin est souvent créé pour identifier l’espace d’administration. La popularisation de cet identifiant le rend par nature très sensible : le hacker potentiel n’a plus qu’à se concentrer sur votre mot de passe pour percer votre accès.

Bloquer les attaques de type « brute force »

Sur WordPress vous pouvez faire autant de tests de connexion que vous le voulez pour accéder à votre espace d’administration. C’est à priori très sympa de sa part mais c’est en fait un moyen pour un hacker (ou un robot) de tester informatiquement des couples Identifiant / Mot de passe à l’infini, ou plutôt jusqu’à trouver les bons.

Installez donc le plugin Login LockDown pour restreindre le nombre de tentatives autorisées pour un certain laps de temps.

Ne laissez pas trainer vos affaires !

Ne laissez enfin aucune donnée sensible comme l’archive de base de données que certains plugins comme WP-backup stockent dans wp-content !

Ne manquez pas de mettre à jour tous les sites de travail ou vos sites placés en voie de garage et qui ne seraient plus exploités.

Supprimez enfin tous les utilisateurs à fort pouvoir (administrateur) qui seraient inactifs depuis longtemps sur votre site.

 

Renforcement structurel de votre installation.

Filtrer les uploads

La ligne suivante à ajouter dans le fichier function.php force votre CMS à toujours filtrer les fichiers mis en ligne, quels que soient les extensions ou le thème utilisés.

Désactiver l’éditeur de fichiers dans l’administration

L’éditeur de fichiers permet à un utilisateur de modifier les fichiers présents sur votre serveur. Le soucie c’est que en modifiant de façon non-professionnel ces fichiers, vous risquez de perdre l’accès à votre administration et vous donnez également la possibilité à un hacker d’accéder à l’intégralité de vos fichiers. Ajoutez le code suivant dans votre fichier function.php :

Ajouter du « sel » dans le fichier wp-config.php

« Le salage, est une méthode permettant de renforcer la sécurité des informations qui sont destinées à être hachées (par exemple des mots de passe) en y ajoutant une donnée supplémentaire afin d’empêcher que deux informations identiques conduisent à la même empreinte. Le but du salage est de lutter contre les attaques par analyse fréquentielle, les attaques utilisant des rainbow tables, les attaques par dictionnaire et les attaques par force brute. » Wikipédia

A l’intérieur de notre fichier wp-config.php vous avez des lignes dédiées à vos clés de salage, c’est ici que vous allez pouvoir entrer des clés d’authentification complexes pour protéger votre installation. Pour vous aider, WordPress fournit une API pour régénérer vos clés de SALT.

Wp-content est un dossier beaucoup trop connu

Dans votre fichier de configuration, wp-config.php, vous pouvez trouver la ligne de code suivante :

Ajoutez en dessous le code suivant en remplaçant les mentions nouveau-dossier et votre-domaine avec les éléments correspondant à votre site internet.

Vous pouvez maintenant renommer votre dossier wp-content par un nom sans majuscule, ni accent, ni espace et vérifier que vos différents liens sont corrects dans votre thème et dans vos plugins.

Apprendre et suivre les bonnes pratiques

Si vous êtes développeur ou intégrateur, WordPress met à votre disposition une ressources incroyable des bonnes pratiques à adopter pour traiter, sauvegarder ou encore afficher des données.

Protéger vos images contre le hotlinking

Le hotlinking est le fait pour un hacker, comme le dit Wikipédia, d’ « utiliser l’adresse d’un fichier publié sur un site web, le plus souvent une image, pour l’afficher sur un autre site, sur un blog ». Ce principe est en fait interdit car il revient à voler de la bande passante à un serveur qui n’est pas le vôtre.

Dans le fichier serveur .htaccess pour restreindre et rediriger l’emploi de vos images en hotlinking, on ajoute le code suivant :

 

Des plugins pour vous aidez.

Better WP plugin

Un des meilleurs plugins qui saura efficacement protéger votre site et vous donner des bons conseils.

WP Security Scan

Principalement tourné autour des allocations de permissions de vos fichiers & détection des brèches de sécurité. Moins complet, mais moins délicat à manier que Better WP plugin.

Block Bad Queries

Extension qui bloque automatiquement des requêtes d’URL suspicieuses.

 


 

Ceci est un article d’introduction à la sécurité informatique mais ce n’est qu’un début. Si vous voulez aller plus loin dans la mise en place et la sécurisation de votre installation WordPress n’hésitez pas à contacter l’Atelier Ancre Noire pour nous exprimer votre besoin plus en détail.