Comment sécuriser et maintenir son installation Wordpress

De Ikoula Wiki
Jump to navigation Jump to search



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 :
Maj wordpress1.PNG
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 :


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.

Avertissement: Il vous faudra impérativement les modifiés en cas de compromission de votre Wordpress


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 :


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

Avertissement: Ce type d'opération rendra sans doute inopérant les fonction d'accès intégré à l'interface Plesk, vous n'aurez alors pas la possibilité en cas de pertes d'accès de pouvoir vous connecter automatiquement depuis l'interface Plesk à votre interface d'administration



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.

Avertissement:Ce type d'opération rendra sans doute inopérant les fonction d'accès intégré à l'interface Plesk, vous n'aurez alors pas la possibilité en cas de pertes d'accès de pouvoir vous connecter automatiquement depuis l'interface Plesk à votre interface d'administration et compliquera d'autant le support fourni par Ikoula (il vous faudra sans doute le désactivé en cas de nécessite de connexion du support Ikoula)



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 :



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


Avertissement: Ne jamais utiliser des droits en 777, doits pleins sur un dossier ou un fichiers


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.



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.


Vous n'êtes pas autorisé à publier de commentaire.