Accueil > Wordpress > WordPress: Considérations de sécurité

WordPress: Considérations de sécurité

Quoi de plus énervant, après avoir fignolé son site WordPress, que de le voir piraté ou détruit ? Cela m’est arrivé récemment avec deux sites  Joomla!

Un matin je me connecte et arrrrgh !!!

J’ai donc décidé de ne pas faciliter la tâche au prochain hacker, et donc d’appliquer un minimum de consignes de sécurité, glanées ici et là sur la toile. Je les teste donc sur ce site, et les voici donc, au fil de l’eau.

 

Sauvegardez votre base de données régulièrement avec WP-database backup

Le premier conseil est de faire des sauvegardes régulières de votre base. Vous pouvez bien sûr le faire avec l’interface d’administration SQL phpMyAdmin, mais il existe un « widget » qui va vous simplifier énormément la tâche : vous n’aurez qu’a vous connecter à l’interface d’administration de WordPress et utiliser cet outil. Il est téléchargeable ici :   WP-Database Backup . Je détaille dans un autre post l’utilisation de ce « widget ».

 

Scannez votre installation de WordPress pour trouver des trous de sécurité: WP Security Scan

Maintenant que vous sauvegardez régulièrement votre base de données, l’étape suivante est de vérifier l’installation de WordPress pour trouver d’éventuels failles de sécurité.

J’ai trouvé un « widget » qui permet de bien préparer le travail, cependant il génère quelques erreurs. Je n’ai pas eu le temps d’analyser en détail, mais il me semble interessant de l’utiliser pour vérifier.

Il s’appelle WP Security Scan , et permet entre autre faire un scan de l’installation sur le système de fichiers, de vérifier le niveau de sécurité de votre mot de passe d’administration, ou de vérifier le niveau de permissions sur les fichiers et répertoires. (chmod).

 

Limitez la vulnérabilité de votre blog à un accès de type « User Enumeration »

Une vulnérabilité classique est l’attaque par énumération d’utilisateur. Connaissant un compte existant, il s’agit ensuite d’essayer le maximum de combinaisons de mot de passe. Sachant que l’installation standard de WordPress crée un compte d’administration appelé « Admin », un pirate n’a plus qu’à trouver un mot de passe associé. C’est donc une bonne idée de changer le nom de connexion du compte d’administration.

Pour ce faire, commencez par faire une sauvegarde de votre base de données.

Ouvrez ensuite la console d’administration phpMySQL, et ouvrez la table users. Vous y trouverez une colonne user_login, dont l’une des lignes contient le compte admin. Il suffit donc de le changer ici.

N’oubliez pas également de mettre un mot de passe dit « fort » associé à ce compte (8 caractères minimum, composé de minuscule, majuscule, chiffre et caractères spéciaux).

 

Cachez vos « plugins »

Les « widgets » additionnels étant par définition de source externe, leur niveau de sécurité ne vous est pas connu. Il est donc conseillé de masquer le dossier / wp-content/plugins.

Une façon simple mais efficace consiste à créer un fichier index.htm vide et à la placer dans le dossier wp-content/plugins.

 

Masquer la version de WordPress

Si un problème de sécurité existe dans un eversion particulière de WordPress, autant ne pas aider les pitates en leur signalant la version que vous utilisez.

Il est donc recommandé de masquer cette information, soit en modifiant directement le fichier header.php dans le thème appliqué sur le site, soit en utilisant le « widget » replace-wp-version qui le fera pour vous.

 

Changer le préfixe des tables WordPress dans la base de données.

Il s’agit ici de changer le préfixe des tables WordPress, qui est par défaut wp_

Le mieux est évidemment de le faire à l’installation, dans le fichier wp-config.php. Il est cependant possible de le faire à postériori.

Le « widget » WP Security Scan permet de réaliser cette opération, théoriquement. Cependant cela ne fonctionne pas sur mes installations. Je publierai ultérieurement nu article sur ce sujet.

  1. 19/07/2010 à 22:00 | #1

    Tu aurais un script en php ( Curl ) pour faire des sauvegarde de DB automatique ?

  2. 20/07/2010 à 08:34 | #2

    Je n’utilise pas de script maison, mais il existe des plugins qui font très bien ça, tu pourras sûrement trouver dans le code Php ce qu’il te faut:

    • wp-db-backup : sauvegarde à la demande la base de données
    • wp-backupify : sauvegarde également la base de données mais permet de l’automatiser et envoie le fichier résultant sur http://www.bakupify.com
    • automatic-wordpress-backup : sauvegarde base et fichiers hébergés, permet de l’automatiser et envoie le fichier résultant sur Amazon S3

    Avec tout ça tu devrais trouver ton bonheur 😉

  3. 03/02/2011 à 11:40 | #3

    Merci pour les infos, je vais pouvoir protéger mon WP, tranquilou grace à vos conseils ! Bonne continuation !

  4. jean pierre
    23/05/2011 à 17:55 | #4

    Bonjour,
    j’ai changé le préfixe des tables WordPress « WP_ » dans la base de données avec le widget de « WP Security Scan ». Cela avait l’air d’avoir bien fonctionné. Bilan je n’arrive plus à me connecter et le système me dit que je n’ai pas les droits nécessaires.
    Une idée?
    merci d’avance,
    JP

  5. 23/05/2011 à 19:50 | #5

    @jeanpierre C’est toujours délicat de procéder à des modifications aussi importante avec un plugin, qui lui même utilise la base de données. Je te conseillerai de regarder d’abord directement dans la base de données via l’interface phpMyAdmin, et de vérifier dans quel état se trouvent les tables : toutes renommées, partiellement ou aucune. Particulièrement la table xxx_users qui contient les comptes utilisateurs.

    Pour revenir en arrière, depuis l’administration phpMyAdmin, il faut sélectionner la table à renommer, et dans l’onglet « opérations » se trouve la commande pour renommer la table.

  6. AlphaGolf
    14/09/2011 à 22:18 | #6

    J’ai désinstallé ce truc en moins d’une minute après que le rapport de scan m’ait balancé une triple erreur PHP qui disait en substance « répertoire non trouvé » sur wp-content, themes et plugins.

    Le changement de nom du répertoire wp-content pour raisons de sécurité est en effet maintenant une fonctionnalité officielle de wordpress, qu’une extension ne sache pas en tirer partie est une erreur en soit, mais alors lorsqu’il s’agit d’une extension relative à la sécurité, c’est carton rouge et expulsion directos…

    En tout cas une sacré tranche de rigolade !

    A+

  7. 13/04/2013 à 00:55 | #7

    Bonnes astuces.
    En ce qui me concerne, dernièrement j’ai travaillé sur un petit script qui permet de voir toutes les tentatives d’accès sur la partie réservées aux administrateurs (voir le plugin WP Security Login Notification : http://wordpress.org/extend/plugins/wp-security-login-notification/ ). En installant ce plugin on se rend compte du nombre de scripts automatiques qui essaient de se loguer avec des noms d’utilisateurs classiques tel que « admin » ou « test ».
    Donc une petite méthode simple pour se protéger consiste déjà à éviter d’utiliser comme nom d’utilisateur ; « admin ».

  8. 16/04/2013 à 09:34 | #8

    Merci @Tony, je vais l’installer car je suis curieux de voir ce qui se passe sur l’accès admin de mon blog 🙂
    Pour ma part j’utilise depuis des années « Login LockDown » qui semble me protéger efficacement également.

  1. Pas encore de trackbacks