Comment sécuriser et maintenir son installation Wordpress
Introduction
Nous allons voir comment sécuriser et maintenir un BLOG de type Wordpress.
L'article va tenter de brosser la plupart des aspects à prendre en compte lors de la sécurisation du blog étape par étape.
Les différentes étapes seront toutes à prendre en compte, en effet certaines modifications n'auront de poids qu'après l'applications d'autres étapes.
Les Mises à jour
Les mises à jour sont essentielles pour maintenir sécuriser un CMS (Content Management System, système de gestion de contenu en français), en effet elles permettent de corriger les failles découvertes au fur et à mesure du cycle de vie d'un logiciel.
Par défaut Wordpress depuis la version 4.7.1 propose un système de mise à jour automatique pour Wordpress lui-même, c'est à dire hors thème et plugin.
Mais attention les mises à jour automatique ne s'effectuerons seulement et seulement si un visiteur est présent sur le site (vous-même ou un tiers), cela implique donc qu'éventuellement une personne mal intentionnée peu entre la bonne prise en compte de la MAJ effectuer une attaque envers votre Site/Blog.
Autre point important les mises à jour automatiques ne concernent que les mises à jour de sécurité, le cycle de vie d'une release de Wordpress étant relativement long le passage à une version supérieur devra obligatoirement s'effectuer de façon manuelle.
Il est possible de parfaire le système de mise à jour automatique de Wordpress en vous inspirant de divers articles disponibles sur le web comme par exemple remplacer la tâche planifiée de Wordpress par une tâche personnelle :
- Désactivation de WP_Cron sur votre Installation de Wordpress :
Dans le fichier de configuration de Wordpress (wp-config.php) :
//-- ajouté cette ligne dans votre fichier de configuration
define('DISABLE_WP_CRON', true);
- Ajouter une tâche CRON à votre gestionnaire Plesk ou directement sur votre serveur :
Depuis l'interface de gestion Plesk il est possible de mettre ne place une tâche planifiée de cette manière :
Sur votre server Linux dans le cas d'une installation sans interface de gestion Plesk :
Directement dans le crontab
* */1 * * * curl https://www.votredomaine.tld/wp-cron.php?doing_wp_cron > /dev/null 2>&1
Certains plugins peuvent avoir besoin d'une fréquence plus régulière à vous de juger ce qu'il est mieux, mais 1 heures de délai entre chaque vérification semblent un bon compromis.
Il est possible depuis la version 3.7 de Wordpress de bénéficier des mises à jour automatique des autres parties de votre Site/Blog :
- Plugins
- Thèmes
- Fichiers de langues
la mise à jour automatique des plugins et thèmes s'effectue simplement en ajoutant ceci au fichier function.php de votre thème :
//-- activation de la mise à jour automatique de tous les plugins
add_filter( 'auto_update_plugin', '__return_true' );
//-- activation de la mise à jour automatique de tous les thèmes
add_filter( 'auto_update_theme', '__return_true' );
Attention les éventuelles modifications apportées au thèmes et/ou au plugins seront perdues de cette manière, il est donc possible d'exclure de ce traitement les plugins modifiés :
function auto_update_specific_plugins ( $update, $item ) {
// Liste des slugs des plugins à mettre à jour automatiquement
$plugins = array (
'akismet',
'buddypress',
);
if ( in_array( $item->slug, $plugins ) ) {
return true; // on autorise la mise à jour des plugins plus haut
} else {
return false; // on refuse la mise à jour des autres plugins
}
}
add_filter( 'auto_update_plugin', 'auto_update_specific_plugins', 10, 2 );
Les sauvegardes
Un élément pas toujours respecté et pourtant hautement important et la gestion des sauvegardes.
Modèle:Citation
Il existe une multitude de façon de réaliser une sauvegarde, en termes de bonne conduite les sauvegardes doivent avant toute chose être :
- régulières (une fois par jour pour un site modifié de façon journalière)
- vérifiées (il est important de s'assurer que les sauvegardes soit correctes et fonctionnelles)
- extériorisées (si la sauvegarde est sur votre hébergement ou votre serveur, en cas de carsh ou de perte de disque vous n'avez plus rien)
- doublées (optionnel -> mais deux sauvegardes entreposées à deux endroits valent mieux qu'une)
Pour un blog avec parution d'article de façon irrégulière une sauvegarde hebdomadaire est suffisante, surtout si vous conservez une copie de vos articles rédiges dans la semaine sur votre poste locale.
Un site e-commerce par contre nécessitera une sauvegarde bien plus régulière et réclamera une grande attention à l'état des sauvegardes.
Si vous utilisez une interface de gestion Plesk, un service de sauvegarde est présent et pleinement fonctionnel, servez-vous-en en simplement renseignant un espace FTP distant afin de pouvoir exporter automatiquement vos sauvegardes.
Vous pouvez coupler votre hébergement à une offre Ikeepincloud ou encore à une Offre Synology ou toute autre service extérieur à Ikoula autorisant les connexions ftp.
Vous pouvez aussi utiliser des plugins spécifiques de sauvegardes, les plus connus étant :
- BackUpWordpress https://wordpress.org/plugins/backupwordpress/
- UpdraftPlus https://fr.wordpress.org/plugins/updraftplus/
Libre à vous d'en utiliser d'autre.
Les clefs de sécurité
Wordpress a intégré un système de sécurité basé sur des clé permettant d'assurer une base de cryptographie de certains éléments clé de votre site/blog Wordpress.
C'est clé vont être utilisées durant le mécanisme de gestion de l'authentification des utilisateurs et administrateurs, c'est donc un élément critique de la sécurité de votre installation.
Ces clés se trouvent dans le fichier de configuration de Wordpress wp-config.php, donc à la racine de votre hébergement.
*/
define('AUTH_KEY', 'mYXdbj9nPUdyCqspdQ30xxxxxxxxxxxxxxxxxxxxxxxxxxxxx9XCVt7bGNRdLgqB0');
define('SECURE_AUTH_KEY', 'RW(p6X^f1LaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxCj3WF!DLf%2k9B&KqrHU)r1frpM');
define('LOGGED_IN_KEY', '#T9@C2IUAps!cv(KxxxxxxxxxxxxxxxxxxxxxxxxxxxxxwMumFsQ^y5LrIKsKBjc)G');
define('NONCE_KEY', 'R6NV8M2(mnuFNL(#Y)8M1#xxxxxxxxxxxxxxxxxxxxxxxxxxxxxpPK@0!8nQI');
define('AUTH_SALT', 'n^h99@oeJ0scE&3Jcxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1DiCuLnRkl#*DJz^F');
define('SECURE_AUTH_SALT', 'MDlc6!bxxxxxxxxxxxxxxxxxxxxxxxxxxxxx06OMkOpcdeukoQ3AJZYBNd0');
define('LOGGED_IN_SALT', 'CNw!g8ub#*mxxxxxxxxxxxxxxxxxxxxxxxxxxxxxUij7#Vz7bEoai@4i7b');
define('NONCE_SALT', 'Q@o1237nH7mS9dtxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8XVUUDb8aLT(@n^n');
/**#@-*/
En cas de doute n'hésitez pas à les changer, pour cela il suffit simplement d'utiliser l'API fourni par Wordpress par exemple :
https://api.wordpress.org/secret-key/1.1/salt/
Cette opération étant simple et relativement importante faites-le au moindre doute, après un changement de serveur ou lors d'une reprise d'activité après une longue absence.
La base de données
Outre le fait d'entretenir une sauvegarde fonctionnelle et régulière de la base de données, il y a certains points qui permettent de renforcer la sécurité de votre site/blog.
Par défaut lors du déploiement d'un Wordpress on vous demande des renseigner des identifiants de connexions à la base de données, un nom pour cette base de données et un préfixe pour les tables de cette dernière.
Si vous ne touchez pas à ce paramètre vous allez vous retrouver avec un préfixe de ce genre 'wp_' vous comprendrez bien qu'une telle abréviation de Wordpress facilitera le travail lors d'une potentielle attaque par injection SQL.
Modifier le donc par quelque chose de moins prévisible.
Attention certains plugins et thèmes mal codé peuvent chercher à utiliser en 'dur' dans leur requêtes le préfixe de base de Wordpress, c'est sans doute une bonne raison de vérifier si une meilleure alternative ne subsiste pas à ce plugin/thème qui ne respecte pas les bonnes pratiques.
Apache
Si vous utilisez un serveur dédié avec le serveur web apache et une installation de Wordpress sachez que toute version de Wordpress inférieur à la version 4.7.5 contient une faille critique.
Cette faille révélée le 3 Mai 2017 par Dawid Golunski permet à un attaquant de récupérer l'e-mail de récupération du mot de passe à un e-mail de son choix.
Les pré requis sont toutefois assez spécifique :
- Qu'apache soit le serveur web
- Que lorsque l'on tape l'adresse IP du serveur dans un navigateur on arrive directement sur le site WordPress visé. (Très souvent le cas pour les très gros sites qui utilise un serveur dédié juste pour eux, ou dans le cas de mauvaise configuration serveur)
- Ne pas avoir configuré la variable : "UseCanonicalName" d'apache dans la déclaration de votre vhost à ON (https://httpd.apache.org/docs/2.4/mod/core.html#usecanonicalname)
Ce type de faille pourrait à nouveau être d'actualité alors n'attendez pas et sécuriser votre serveur Web au maximum.
Adresse de la console d'administration
Vous le savez sans doute mais une installation classique de Wordpress permet l'accès à la console d'administration en ajoutant simplement 'wp_admin' à la fin de l'url de votre site/blog.
Afin de permettre d'éviter tout attaque de type brute force ou en cas de vol d'accès nous vous conseillons de le modifier.
Des plugins permettent de faire ce type d'opération simplement comme :
- Ithemes Security https://fr.wordpress.org/plugins/better-wp-security/
Ce n'est pas le seul, mais attention conjointement à ce type de plugin vous devrez respecter un minimum de bon sens et ne pas utiliser des termes tel que admin, administration, backend, etc
Authentification à deux facteurs
L'authentification à deux facteurs se démocratise et permet de renforcer grandement les connexions à des consoles d'administration et autre compte client sur de nombreux sites internet.
Ce mécanisme est devenu indispensable de nos jours pour ralentir les pirates qui utilise le brute force.
A l'heure actuel la grande majorité des plugins utilisent Google Authenticator mais attention la plupart du temps il vous faudra acheter la version premium.
Nous vous invitons à parcourir les différents sites spécialisés sur Wordpress pour découvrir les plugins les plus sûr.
Le brute force
Nous l'avons évoqué à plusieurs reprises les attaques par brute force sont légions sur le web, nous ne serions que trop vous recommandé de prendre ne considérations ces recommandations :
- Utilisez des mots de passe forts aléatoires
- Ne pas utiliser d'identifiant simple et connu tel que : admin, administrateur, administrator
- Mettre en place une authentification à deux facteurs si possibles
- Changer l'adresse de votre administration
Certains plugins ajoutent des fonctions de protection contre le brute force et renforce d'autant plus la sécurité de votre Wordpress tel que :
- Sucuri-Scanner https://wordpress.org/plugins/sucuri-scanner/
- Ithemes Security https://fr.wordpress.org/plugins/better-wp-security/
Droits et modifications des fichiers et répertoires
Que ce soit sous GNU/Linux ou Windows des règles importantes sont à respecter concernant les droits d'accès et de modification/lecture/exécution des fichiers et répertoires.
Le seul fichier à part est le fichier de configuration qui peut être placé en droit particulier à 600.
- Les répertoires doivent avoir les droits suivants à 755
- Un accès plein pour l'utilisateur 'web'
- Un accès en lecture et en exécution pour le groupe
- Un accès en lecture et en exécution pour les visiteurs
- Les fichiers quant à eux doivent avoir des droits en 644
- Un accès en lecture et écriture pour l'utilisateur 'web'
- Un accès en lecture pour le groupe
- Un accès en lecture pour les visiteurs
Maintenant que vous vous êtes assuré des droits des fichiers et des répertoires vous pouvez vous soucier des modifications effectuées sur ces derniers, des plugins permettent efficacement ceci.
- Sucuri-Scanner https://wordpress.org/plugins/sucuri-scanner/
- Ithemes Security https://fr.wordpress.org/plugins/better-wp-security/
Mise en place d'un certificat SSL
Un certificat de sécurité permet de chiffrer les communications entre votre visiteur et votre site/blog, ce type de protection permettra donc d'éviter l'interception des données transitant lors de connexion de visiteurs.
L'utilisation de certificat s'est largement étendue et pas seulement au site d'e-commerce (cela reste une évidence mais fuyez une page de paiement sans certificat SSL valide).
L'autre avantage outre le fait de sécuriser les communications et d'ordre à renforcer la confiance en votre site/blog et d'améliorer quelque peu son positionnement sur les moteurs de recherche tel que Google (cela reste très léger et ne devrais pas être un point important dans la prise en compte du déploiement d'un certificat SSL).
Sur les dernières versions de l'interface de gestion Plesk l'utilitaire Let's encrypt permet de pouvoir sécurisé par un certificat SSL gratuitement et de manière simple votre site/blog, profitez-en.
Thèmes et Plugins
Lors du déploiement de votre Wordpress, vous trouverez sans doute votre blog quelque peu impersonnel et manquant de certaines fonctionnalités.
Il est aisé de déployer un thème ou des plugins pour enrichir votre site/blog mais attention, dans la plupart des cas les compromissions proviennent de thèmes ou de plugins mal codés, non mis à jour ou tout bonnement malveillant.
Nous vous recommandons donc impérativement de bien vérifier le sérieux des plugins et thèmes utilisés et veiller à leur maintien à jour de façons la plus régulière possible.
Utilisez en priorité les plugins et thèmes officiels trouvable sur le site Wordpress lui-même ou sur des places de marchés reconnues pour leur sérieux et leur implication dans la sécurité des plugins et des thèmes :
https://fr.wordpress.org/
Plugins et sécurité
Comme évoqués à plusieurs reprises ils existent différents plugins axés sur la sécurité de votre installation de Wordpress, la plupart vont vous aider à mettre ne place la plus parts des points évoqués auparavant.
Parmi les plus connus et évoqués précédemment nous pouvons donc citer ceux-ci :
- iThemes Security (dispose d'une version Pro)
- Wordfence Security (dispose d'une version premium)
- Sucuri Security (dispose d'une version premium)
- Quttera
Vous pouvez aussi utiliser le plugin suivant pour contrôler le code des thèmes installés sur votre WordPress :
- Theme Check
Retrouvez la page dédiée à notre offre Wordpress sur le site Ikoula.
Activer l'actualisation automatique des commentaires