Il y a quelques semaines, une multitude de blogues utilisant de vieilles versions de WordPress ont subi des attaques. Celles-ci créaient de nouveaux comptes d’administrateurs qui sont difficilement détectables.

securite

Ces attaques ont fait prendre conscience aux blogueurs qui administrent eux-mêmes leur site Web de l’importance d’être à l’affût d’éventuels problèmes de sécurité. Vous trouverez donc ici quelques pistes, idées et plugin que j’ai mis en place sur mes blogues.

  • Faites régulièrement des sauvegardes de votre base de données.
  • Utilisez des mots de passe longs et compliqués.
  • Insérez un fichier index.html vide dans le dossier plugin.
  • Retirez la référence à la version de WordPress que vous utilisez dans le pied de page de votre thème.
  • Protégez les mots de passe de votre fichier wp-config.php en ajoutant la phase ci-dessous dans votre fichier .htaccess.
<FilesMatch ^wp-config.php$>deny from all</FilesMatch>
  • N’utilisez pas le compte admin que WordPress crée par défaut sur toutes les installations. Créez un nouveau compte d’administrateur qui possédera un identifiant plus complexe.
  • Les mises à jour de plugin sont aussi importantes. Ces mises à niveau sont parfois reliées à des problèmes de sécurité.
  • Ne permettez pas l’inscription sur votre blogue comme utilisateur. Limitez les utilisateurs à ceux qui administrent et publient sur votre blogue.

Les Plugins:

backup_screenshot

WordPress Database Backup vous permettra d’automatiser les sauvegardes de votre base de données.

Login Lockdown (suggestion de Philippe): ce plugin enregistre les tentatives infructueuses d’accès au compte administrateur de votre blogue. Après quelques tentatives l’adresse IP est automatiquement bloqué.

lockdown

Limit Login Attempts a des similitudes avec le plugin précédent. Il permet de limiter le nombre d’accès infructueux au compte d’administrateur. Par exemple, vous pouvez déterminer qu’après quatre tentatives de saisie de mot de passes erronés, l’accès au compte admin sera bloqué pour une période de 20 minutes.

Search

wpAntivirus: oui, un antivirus pour WordPress. Je n’ai pas encore testé ce plugin.

AskApache Password Protect protégera vos mots de passe et répertoires de votre installation WordPress. Une fois installé, il vous demandera de créer un mot de passe et nom d’usager qui protègera votre répertoire wp-admin.

C’est suite à une conversation avec Philippe Martin au YulBiz Montréal que m’est venue l’idée d’écrire ce billet et de me pencher sur la vulnérabilité de mon blogue. Si vous avez des idées ou suggestions, n’hésitez pas à les communiquer en commentaire.
Benoit Descary

Liens:
Lorelle on WordPress: Old WordPress Versions Under Attack
Smackdown: How To Completely Clean Your Hacked WordPress Installation
Wordpress Blog: How to Keep WordPress Secure

14 COMMENTAIRES

  1. Je préconiserais de mettre des permissions :
    Les fichiers (404)
    Les dossiers (505)
    sauf le dossier « www » évidemment

  2. Merci Benoît
    J’ai essayé  »

    deny from all

    Et j’ai obtenu une erreur serveur:

    « Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. »

  3. Même problème que Grégoire Noyelle sur l’erreur suivante : « Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. »

    J’ai cherché un peu et j’ai trouvé cela :

    deny from all

    Est ce que cela fonctionne ? Pourquoi ? Pourquoi l’autre proposition ne fonctionnais pas ? Merci pour les réponses de ceux qui ont déjà expérimenté le problème.

  4. pour l’erreur au lieu de
    « deny from all »
    j’ai mis
    « deny from all »
    et ça à l’air de fonctionner

  5. Ajoutez aussi ces lignes à votre .htaccess et, en plus de le mettre à la racine du site, uploadez le aussi dans le dossier wp-admin

    # Empecher de lire ou accéder au fichier .htaccess (enlever les espaces avant et après les )

    order allow,deny
    deny from all

    # Au lieu de mettre un index.html dans chaque dossier que vous ne pas rendre visible mettez cette ligne
    Options All -Indexes

    # Désactive la signature du serveur
    ServerSignature Off

    # Empêche les attaques DDOS
    LimitRequestBody 10240000

    # Un hôte qui tente de se cacher dans une reverse DNS lookup
    RewriteCond %{REMOTE_HOST} ^private$ [NC,OR]

    # Un faux referrer souvent utilisé
    RewriteCond %{HTTP_USER_AGENT} ^[^?]*iaea.org [NC,OR]

    # Le referrer « addresses.com » est utilisé par un email address extractor
    RewriteCond %{HTTP_USER_AGENT} ^[^?]*addresses.com [NC,OR]

    # Bloque les navigateurs se dissimulants avec des lettres et chiffres aléatoires
    RewriteCond %{HTTP_USER_AGENT} [0-9A-Za-z]{15,} [OR]
    RewriteCond %{HTTP_USER_AGENT} ^[0-9A-Za-z]+$ [OR]

  6. Question con : comment est-ce que l’on empêche l’inscription de nouveaux utilisateurs ? Il y a une option pour ça ? Je ne l’ai pas trouvé perso.

Comments are closed.