WordPress est un logiciel de publication pour créer un site internet très populaire.
De ce fait il est visé par les pirates et hackers.
Pour se protéger des piratages, il convient de sécuriser WordPress.
Voici un tutoriel complet pour sécuriser WordPress contre les piratages ou hacks.
Table des matières
- 1 Sécuriser et protéger WordPress contre les piratages ou hacks
- 1.1 Mettre à jour WordPress et scan de sécurité
- 1.2 Déplacer wp-config.php
- 1.3 Déplacer le répertoire wp-content
- 1.4 Désactiver l’éditeur de fichiers
- 1.5 Installer une extension de sécurité WordPress
- 1.6 Désactiver le plugin ou les installations de thème
- 1.7 Sécuriser les accès admin à WordPress (2FA, double authentification)
- 1.8 Sécuriser les accès admin à WordPress par un filtre IP
- 1.9 Bloquer les attaques BruteForce
- 1.10 Bloquer le SPAM
- 1.11 Utiliser le CDN Cloudflare
- 2 Faire un audit de sécurité WordPress
- 3 Liens
Sécuriser et protéger WordPress contre les piratages ou hacks
La page suivante de codex donne pas mal d’étapes qui peuvent être suivies afin de sécuriser WordPress : Hardening WordPress
Toutefois, comprenez bien que la sécurité de votre site WordPress est lié à votre hygiène informatique ainsi qu’à de bonnes habitudes générales.
Les astuces de déplacement de répertoire/renommage améliorent la sécurité de WordPress notamment contre les attaques automatiques qui sont en général pensées en ayant les fichiers et l’arborescence de WordPress par défaut.
Plus d’informations sur ces scans :
Avant toute modification de votre site, faites une sauvegarde, dans la mesure du possible tester les modifications sur un site de test afin de mesurer les impacts.
Mettre à jour WordPress et scan de sécurité
WordPress peut effectuer les mises à jour automatiques pour WordPress ainsi que les plugins/thèmes si besoin.
Plus d’informations :
Le Plugin Plugin Security Scanner permet aussi de scanner ses extensions et être notifié si ces dernières comportent des vulnérabilités connues.
Déplacer wp-config.php
wp-config.php est le fichier de configuration de votre WordPress qui stocke les informations de connexion à la base ainsi que les clés uniques d’authentification et salage.
C’est donc un fichier sensible qu’il ne faut pas rendre accessible par un tiers.
Par défaut étant donné qu’il s’agit d’un fichier de configuration PHP, on ne peut y accéder directement.
Vous aurez une page blanche.
Pour augmenter la sécurité de WordPress, on peut déplacer le fichier WP-config.php qui se trouve à la racine du site afin que les pirates ne sachent pas où il se trouve ou le mettre dans un répertoire non accessible depuis le serveur WEB.
Cela permet aussi de se mettre à l’abri des scans automatiques qui viseront le fichier en racine du site.
WordPress autorise de déplacer le fichier wp-config.php un cran au dessus du répertoire où est stocké WordPress.
Par exemple, WordPress se trouve dans /var/www/wordPress donc le fichier wp-config.php se trouve dans /var/www/wp-config.php
Ainsi, vous pouvez alors le déplacer dans /var/www qui n’est pas forcément accessibles sur internet.
- Déplacez le fichier wp-config.php par exemple dans /var/www/
- Editez le fichier wp-config puis ajoutez au début du fichier :
<?php
include('/var/www/config.php);
Déplacer le répertoire wp-content
Le répertoire wp-content contient les plugins ainsi que les thèmes. Pour sécuriser votre blog, vous pouvez modifier le répertoire.
Là aussi, il convient ensuite de modifier le fichier wp-config.php pour donner le nouveau répertoire par la directive suivante :
define('WP_CONTENT_DIR', dirname(__FILE__) . '/repertoire-content');
Noter que si vous avez déplacer wp-config.php dans le répertoire parent comme expliqué dans le paragraphe précédent, il faut donner l’arborescence complète :
define('WP_CONTENT_DIR', dirname(__FILE__) . '/repertoire-site/repertoire-content');
Désactiver l’éditeur de fichiers
WordPress embarque un éditeur de fichiers pour modifier les fichiers de vos thèmes.
Si un pirate obtient un accès à votre panneau d’administration, il peut alors injecter du code malveillant.
Désactiver l’éditeur de fichiers permet de renforcer la sécurité WordPress de votre site.
Modifiez le fichier wp-config.php en ajoutant la ligne :
define( 'DISALLOW_FILE_EDIT', true );
Installer une extension de sécurité WordPress
Il existe de multiples extensions de sécurité avec des fonctions assez communes :
- Vérifier les modifications des fichiers PHP WordPress pour détecter les modifications en cas de piratage
- Détecter les Backdoor PHP
- Alerte et notifications par mail en cas d’attaques
- Sécuriser l’accès au panneau d’administration : Protection contre les attaques bruteforces, bloquer des adresses IP ou installer un captcha.
- Activer certaines fonctions pour améliorer la sécurité
Voici la liste des extensions les plus connues et utilisées :
- Wordfence : Protéger WordPress avec un Firewall et scan anti-malware
- iThemes Security
- All In One WP Security & Firewall
- Jetpack
- WP fail2ban
- Sucuri Security – Auditing, Malware Scanner and Security Hardening
- SecuPress
- BulletProof Security
- VaultPress
- Google Authenticator – Two Factor Authentication
- Security Ninja
- Defender
Désactiver le plugin ou les installations de thème
Lorsque des pirates peuvent accéder à votre site, ils installent leurs propres plugins ou thèmes. Ces plugins et thèmes sont généralement malveillants et contiennent des porte-backdans. Cela donne aux pirates une entrée secrète sur votre site.
De plus, comme nous l’avons mentionné, des thèmes et des plugins vulnérables sont une cause principale de sites piratés. Si vous avez plusieurs utilisateurs sur votre site Web, ils peuvent installer un plugin ou un thème qui n’est pas sécurisé. Cela peut ouvrir votre site aux pirates. Si vous souhaitez éviter cela, vous pouvez désactiver les installations de plug-in et de thème sur votre site.
Si vous n’installez pas régulièrement des plugins et des thèmes sur votre site, vous pouvez désactiver l’option d’installation.
Sécuriser les accès admin à WordPress (2FA, double authentification)
L’extension Shield WordPress Security peut s’avérer utile pour sécuriser WordPress.
Celle-ci propose un firewall qui peut bloquer les SQL Injection et quelques autres attaques.
Enfin elle permet aussi de sécuriser les accès utilisateurs et panneau d’administration de WordPress.
Il est notamment possible d’activer l’authentification en deux étapes, par mail ou avec Google Authentificator
L’identification en deux étapes sur WordPress, ainsi que l’ajout d’un champs “Im a human” contre les attaques par bruteforce.
Il est aussi possible de le faire avec l’extension WordFence :
Sécuriser les accès admin à WordPress par un filtre IP
Là aussi la plupart des extensions de sécurité agissent comme pare-feu applicatif (WAF).
Ainsi, vous pouvez filtrer l’accès au panneau d’administration par l’adresse IP ou bloquer des pays.
Sur Apache avec .htaccess
Les fichiers .htaccess Apache permettent d’effectuer diverses opérations, notamment il est tout à fait possible d’interdire la lecture d’un fichier d’un site, de bloquer des IP Il peux donc être intéressant de bloquer l’accès au fichier wp-config.php – si vous ne l’avez pas déplacé. Cela se fait à partir d’un fichier .htaccess suivant :
<files wp-config.php>
order allow,deny
deny from all
</files>
On peut aussi bloquer l’accès au répertoire d’administration pour n’y autoriser que votre adresse IP si elle est fixe. Vous devez alors créer un fichier .htaccess dans le répertoire d’administration wp-admin qui peut contenir les commandes suivantes :
order deny,allow
deny from all
allow from IP
allow from IP
allow from IP
Notez que deny from permet aussi d’en interdire.
Il est notamment possible de mettre un .htaccess à la racine afin de bloquer les POSTS sur wp-login.php pour empêcher les attaques bruteforces (qui si, vous avez mis des places complexes ne poseront pas de problèmes).
Sur Nginx
Pour mettre un filtre IP sur des pages PHP sur Nginx, suivez ce tutoriel :
Bloquer les attaques BruteForce
Les attaques par Bruteforce visent à cracker et trouver le mot de passe par des tentatives successives.
Elles fonctionnent lorsque des comptes utilisateurs avec des mots passe faibles existent.
Votre serveur WordPress peut être la cible de ce type d’attaque car elles sont fréquentes à grande échelle.
Pour s’en prémunir :
- Utiliser des mots de passe forts et sûrs
- Gérer bien vos utilisateurs et supprimer les utilisateurs inactifs
Ensuite on peut chercher à bloquer les attaques par bruteforce par exemple avec une extension de sécurité.
La plupart de celles présentées précédemment possèdent une fonction de détecte et de blocage des adresses IP.
Enfin côté serveur, il existe aussi la solution Fail2ban :
Bloquer le SPAM
WordPress fournit des extensions efficaces contre le SPAM en commentaire. Vous pouvez installer une extension qui ajoute un captacha à saisir dans les commentaires : Accouplé, à une extension qui interroge une base de données d’IP de base, vous devriez avoir la paix.
Vous avez Akismet et Project HoneyPot (extension Project Honey Pot Http:BL).
Dans les deux cas, vous devez aller sur le site, vous inscrire et récupérer une clef API qui sera à indiquer dans la configuration de l’extension.
Utiliser le CDN Cloudflare
CloudFlare est un CDN (réseau de diffusion) qui se place entre WordPress et vos visites.
Il permet d’accélérer le chargement des pages grâce à des caches et optimisations.
Enfin il propose un Waf (Web Application Firewall) pour filtrer les tentatives de piratages, les bots et les attaques DDoS.
Pour mieux comprendre, voici une présentation complète du firewall Cloudflare :
Enfin ce tutoriel vous guide pour mettre en place le CDN Cloudflare sur votre WordPress :
Faire un audit de sécurité WordPress
Enfin régulièrement pour maintenir WordPress sûr, il convient de faire un audit de sécurité pour s’assurer que votre site WordPress est sain.
Pour cela, vous pouvez suivre ce tutoriel et guide complet :
Liens
- Désinfecter un site WordPress
- Pourquoi et comment les hackers piratent un site WordPress
- Wordfence : Protéger WordPress avec un Firewall et scan anti-malware
- Wordfence : Supprimer les backdoor, web shells, malwares de WordPress
- 8 extensions de sécurité pour protéger WordPress des malwares
- Comment détecter les PHP Backdoor ou Web Shells
- Faire un audit de sécurité WordPress
- Website File Changes Monitor : Surveiller les modifications de WordPress
- CDN : optimisation et sécurité WordPress
- Sucuri WordPress Security Plugin : sécurité et protection
- Website File Changes Monitor : Surveiller les modifications de WordPress