Comment sécuriser WordPress avec des mesures simples et des plugin ?

Sécuriser WordPress est un enjeu très important pour le propriétaire du site et votre agence WordPress doit pouvoir vous apporter ce service. La protection du site passe par la mise en place de nombreux paramétrages, une vigilance importante sur les mises à jour et l’installation de plugin de sécurité. Parmi eux, un nouveau plugin wordpress de sécurité est apparu, il est français il s’agit de secupress de WP-media.

L’importance de la sécurisation de votre site WordPress

Votre site WordPress peut être hacké par des personnes ou des organisations malveillantes pour différentes raisons :

  • contrôler votre hébergement et l’utiliser pour envoyer des emails frauduleux ou comme spam proxy
  • placer des scripts qui volent les données de vos visiteurs
  • voler vos données stockées dans vos base
  • rediriger une partie du trafic vers des sites frauduleux
  • héberger du contenu frauduleux visible que dans certaines conditions
  • voler du texte et des images pour le réutiliser ailleurs
  • saturer votre serveur de requêtes pour qu’il ne soit plus accessible par vos clients ( attaque DDOS )
  • défacer votre site pour afficher un message politique à la place de votre site ou le site d’un concurrent qu’ils veulent faire chuter en position
  • installer des scripts malicieux sur les postes de vos visiteurs
  • réaliser un certains nombres d’actions pour que votre site soit catalogué par google comme dangereux

Bien sûr ces exemples d’objectifs de hacker ne sont pas réservés à WordPress, et peuvent être aussi visés sur des sites classiques, ou Drupal, ou Joomla, ou Prestashop. Mais WordPress c’est 25% du web mondial, donc il fait des envieux.

Les hackers utilisent des outils automatiques qui scrutent le web mondial et repèrent les sites intéressants et présentant des failles de sécurité. Ces outils disponibles sur des forums dodgy ou dans le dark web sont lancés depuis le cloud ou des hébergements précédemment hackés comme le vôtre par exemple.
Vos lecteurs, clients, prospects, ne vont pas faire confiance dans un site qui présente des dysfonctionnements ou des signalements de défaut de sécurité. Des milliers de sites sont hackés chaque jour à cause d’erreurs plus ou moins simples à éviter. Dans cet article nous allons passer en revue les différentes mesures que vous pouvez apporter à votre sécurité WordPress et nous allons étudier le nouveau plugin Secupress.

Quelques mesures de base pour sécuriser votre WordPress

  1. Tout d’abord beaucoup de site wordpress ne sont pas encore en protocole sécurisé https et les administrateurs accèdent par un réseau wifi quelque fois public à leur tableau de bord. Un simple outil de récupération de données sur le wifi permettra à un cybercriminel d’accéder à votre site en mode administrateur. Pour éviter cela : passer en https, et/ou utiliser un VPN qui permets de sécuriser votre connexion même sur un réseau wifi public.
  2. Utiliser une connexion SFTP plutôt que FP non sécurisée
  3. La façon de se connecter à votre tableau de bord doit être aussi sécurisée :
    1. n’utiliser pas comme login : « admin » ou le nom de votre site
    2. n’utiliser pas un mot de passe facile, ou que vous utilisez ailleurs
    3. Limiter le nombre de tentative de login
    4. Installer une authentification à 2 facteurs ( 2FA )
    5. Vous pouvez restreindre l’accès à votre backend à certaines IP, pour cela placer un .htaccess dans votre wp-admin avec :
      1. Order deny,allow
        deny from all
        SetEnvIF X-Forwarded-For « 10.11.12.13 » AllowIP
        SetEnvIF X-Forwarded-For « 11.12.13.14 » AllowIP
        Allow from env=AllowIP
        Allow from 10.11.12.13
        Allow from 11.12.13.14
    6. Empêcher l’envoi d’informations sur des tests frauduleux de login
      1. mettre dans votre function.php    add_filter(‘login_errors’,create_function(‘$a’, « return null; »));
    7. Le login du super administrateur est accessible par l’url principale suffixée par ?author=1
      1. mettre dans votre .htaccess
        1. RewriteEngine On
          RewriteRule ^author/(.*)$ http://%{HTTP_HOST} [R,L]
          RewriteCond %{QUERY_STRING} ^/?author=([0-9]*)
          RewriteRule . http://%{HTTP_HOST} [R,L]
      2. mettre dans votre functions.php cette fonction supprimant votre login dans les commentaires
        1. function remove_comment_author_class( $classes ) {
          foreach( $classes as $key => $class ) {
          if(strstr($class, « comment-author-« )) {
          unset( $classes[$key]
          );
          }
          }
          return $classes;
          }
          add_filter( ‘comment_class’ , ‘remove_comment_author_class’ );
    8. Si vous voulez éviter l’autocomplétion de la saisie de mot de passe
      1. add_action(‘login_enqueue_scripts’, ‘kill_autocompletion’);
        function kill_autocompletion(){
        echo ‘<script type= »text/javascript »>window.onload=function(){document.getElementById(« user_pass »).setAttribute(« autocomplete », »off »)};</script>’;
        }
  4. La protection de vos fichiers wordpress sensible
    1. protéger l’accès à votre wp-config.php depuis votre .htaccess
      1. <files wp-config.php>
        order allow,deny
        deny from all
        </files>
    2. protéger l’accès à votre .htaccess
      1.     <Files .htaccess>
        order allow,deny
        deny from all
        </Files>
    3. La confidentialité de votre version wordpress installée
      1. Supprimer readme.html qui contient la version de wordpress installée
      2. dans votre function.php
        1. mettre remove_action(« wp_head », « wp_generator »);
        2. masquer la version dans le flux RSS
          1. function wpt_remove_version() {
            return  »; }
            add_filter(‘the_generator’, ‘wpt_remove_version’);
    4. Établir les permissions à 644 sur vos fichiers et 755 sur vos répertoires, wp-config.php devant être paramétré à 440, voire 400.
  5. La protection des répertoires
    1. placer un .htaccess dans les répertoires wp-includes et uploads pour empêcher l’exécution de code non voulu
      1. <Files *.php>
        Order Allow, Deny
        Deny from all
        </Files>
    2. cacher tous vos répertoires en plaçant dans votre .htaccess du root
      1. Options All -Indexes
  6. La protection de la base de données
    1. le préfixe de la base wordpress par défaut est wp_, changer le en autre chose
    2. éviter de placer plusieurs sites wordpress dans la même base de données
    3. enlever les privilèges Drop, Alter, Grant du user de votre BDD
    4. faire des sauvegardes régulières et des optimisations
  7. La protection de votre hébergement
    1. installer un firewall web application ( WAF ) s’il n’est pas déjà présent sur votre hébergement ( ovh utilise le très connu ModSecurity par exemple ).
    2. Utiliser un CDN, content delivery network
      1. les CDN vous permettent de vous protéger de problèmes de sécurité WordPress
        1. exemple de CDN : Cloudflare, MaxCdn, KeyCdn, GoogleCloudCdn, Amazon AWS, Rackspace Cloud Files, Cdn77, CacheFly,
    3. Monitorer vos logs, installer si besoin OSSEC sur votre serveur
    4. utiliser la dernière version de php
  8. Optimiser et mettre à jour votre site WordPress
    1. désactiver XML-RPC qui permet de piloter votre site depuis par exemple une application mobile, mais qui est une porte d’entrée possible pour les hackers.
    2. mettre à jour très régulièrement votre site wordpress en vérifiant auparavant le bon fonctionnement de vos plugins sur la dernière version
      1. ceci peut être fait automatiquement sur votre wp-config.php
        1. define(‘WP_AUTO_UPDATE_CORE’, true);
        2. pour filtrer les versions béta : rajouter dans functions.php de votre thème enfant (child )
          1. add_filter( ‘allow_dev_auto_core_updates’, ‘__return_false’ );
    3. mettre à jour les plugins installés très régulièrement après test de fonctionnement
    4. enlever tous les plugins inutilisés, c’est à dire les supprimer et non seulement les désactiver
    5. enlever les thèmes qui ne servent à rien ( utiliser FTP sur votre wp-content )
    6. mettre à jour les thèmes régulièrement ( penser au thème enfant )
    7. n’installer pas des plugin très peu téléchargés, ou de version très ancienne, ou depuis un site wordpress non officiel ( exemple des plugins piratés truffés de code malicieux sur des sites warez )
    8. Supprimer les commentaires ou installer un plugin antispam comme akismet ou Spam-stopper
    9. sauvegarder régulièrement votre site
  9. Utiliser Google Search Console qui peut vos indiquer si votre site présente du « Malicious Content »
  10. La protection de vos images contre le hotlinking
    1. placer dans votre .htaccess root
      1. # Activer le mode de ré-ecriture
        RewriteEngine on
        RewriteCond %{HTTP_REFERER} !^$

# Autoriser les requêtes venant de votre domaine
# la mention NC rend insensible à la casse (majuscule/minuscule)
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?votredomaine.com [NC]

# Autoriser certains moteurs de recherche à utiliser vos images
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !yahoo\. [NC]

# Proposer une image alternative lors de l’emploi abusif de vos image
# il est nécessaire de modifier l’url avec votre propre chemin
RewriteRule \.(gif|jpg|png)$ http://domain.tld/hotlink.jpg [R,NC,L]

Les plugins wordpress de sécurité

Il existe de très nombreux plugins de sécurité pour WordPress généralistes ou spécialisés, citons parmi eux  :

  • All in One WP Security, un panel de fonctionnalité large incluant un firewall, avec un cockpit visuel de votre niveau de sécurité
  • Acunetix WP Security optimise votre installation WordPress en refermant les principales failles et en vous offrant un suivi temps réel des connexions.
  • Block Bad queries ( BBQ ) est spécialisé dans le blocage des injections SQL
  • iThemes Security propose gratuitement plus de 30 fonctions de sécurisation de votre WordPress, la version payant apporte la double authentification et la planification.
  • Wordfence vérifie vos fichiers, vous permet d’afficher en temps réel les connexions sur votre site, vous liste les IP ayant fait des actions frauduleuses et les bloque automatiquement, en version payante vous avez le blocage de pays, l’identification à double facteur avec SMS.
  • BruteProtect est spécialisé dans la protection contre les attaques Brute Force. L’entreprise a été racheté par Automattic, éditeur de WordPress.
  • Google Authenticator est un plugin wordpress associé à l’application google authenticator permettant de vérifier l’identité de la personne qui se connecte
  • BulletProof Security protège les principales faiblesses de WordPress
  • WP antivirus Site Protection de siteguarding.com multi CMS il détecte les rootkits, spywares, adwares, chevaux de troie et propose des actions
  • Sucuri Security permets le nettoyage de votre site après un hack
  • et enfin le dernier né SecuPress

 

 

Vidéo comment paramétrer Wordfence

Présentation de Secupress

Secupress est le nouveau venu dans la sécurité wordpress. Ce plugin est édité par la célèbre team WP-media, éditrice de Wp-Rocket, et de Imagify. Ce plugin WordPress se veut vraiment le plus complet existant, jugez en plutôt  :

  • firewall bloquant les tentatives d’intrusion
  • sauvegarde de la base de données
  • surveillance des fichiers contre les scripts malveillants
  • suppression des fichiers vulnérables des anciennes installations WP
  • protection des fichiers sensibles dont xml-rpc
  • protection anti-spam des commentaires
  • protection des login avec authentification
  • veille sur les failles des plugin et des thèmes
  • protection contre les activités suspectes et les autres méthodes de requête que les classiques Get ou Post
  • journaux des 404 et de toutes les actions sur votre WP

On le voit Secupress a pour ambition ni plus ni moins de remplacer tous vos plugin de sécurité pour votre site wordpress. La version gratuite est en beta et la version Pro est en cours de développement.

L'équipe WpMedia éditrice de SecuPress et WpRocket

Les paramétrages Secupress

sécurité CMS Wordpress login
secupress réglage de la protection login
securité wordpress
Secupress plugin de securité wordpress - modules
Sécurisation des thèmes et plugins par SecuPress
Core WP security
Protection des fichiers Wordpress par SecuPress
fichiers wordpress codex
Paramétrage des données sensibles de Wordpress
firewall wordpress
Paramétrage du pare-feu pour la sécurité Wordpress par SecuPress

Mon avis sur le plugin de sécurité wordpress Secupress

Ce plugin de sécurité WordPress va devenir un must dans le domaine. En effet il est très simple de paramétrage et permets toutes les fonctionnalités requises pour la sécurité. Vous allez abandonner et alléger votre site de plugins tels que : limitation de login, masquage de login, backup, et vous alléger en temps pour tous les paramétrages que vous auriez pu faire à la main ( mais avec les risques d’oublis et des fonctionnalités en moins ).

Par contre je conseille de prendre la version Pro car elle permets pour 36$ par site des fonctionnalités indispensables comme :

  • bloquer les doubles connexions
  • contrôler les sessions
  • la double authentification
  • la détection des plugins vulnérables
  • le blocage de la modification des plugins installés
  • le blocage de la modification ou suppression du thème
  • le blocage du hotlinking des images
  • le blocage de la page de profil
  • l’activation d’un anti-Brute-Force
  • le blocage des IP par pays
  • le scan des rootkits, malwares
  • la protection des dossiers uploads
  • la sauvegarde, et la gestion des historiques,
  • la suppression des commentaires indésirables
  • les alertes automatiques
  • la planification des actions

Cette version pro est plus avantageuse que ses concurrentes au niveau prix et fonctionnalités. Il serait bien que la version gratuite intègre une ou deux fonctionnalités remarquables comme l’AntiBruteforce. Vous pouvez demander votre accès anticipé à SecuPress .