Sécurisons Wordpress
Cette semaine, on a eu le droit au deuxième piratage de Games and Geeks. Comme je gère pas mon blog comme un pied, j’ai vite remis les choses en place à coup de restauration de backups.
Mais il y’a quand même eu une coupure de 4 heures, donc, il va falloir que ça cesse. Je prend le taureau par les cornes et je passe mes blogs en mode vigipirate. Et comme je suis pas radin, je vous livre le mode d’emploi des méthodes un peu barbares que j’ai appliquées.
Ne pas indiquer qu’on utilise Wordpress
Pour commencer, un petit tour du côté des templates pour virer tout ce qui indique que le blog tourne sous Wordpress. Comme ça, les robots ne détecteront plus ça aussi facilement (Merci copain pour l’astuce).
Je me suis demandé si indiquer un autre CMS, par exemple faire croire que je tourne sous Joomla ou Dotclear, ne perdrai pas encore un peu plus ces robots. Mais c’est risquer que certains hacks marchent aussi sur Wordpress ou de saturer le serveur de tentatives infructueuses en boucle.
Un mot de passe sur le mot de passe
Pour éviter les hacks de connexion à l’interface d’administration, le plus simple c’est d’ajouter un mot de passe en .htacces.
Je vous oriente vers ce tutoriel pour voir comment ça marche.
Interdit d’écrire là où ça sert à rien
Il y’a pas mal de répertoires dans lesquels il n’y a aucune raison d’écrire quoi que ce soit une fois Wordpress installé. Pour blinder le truc, vous pouvez donc changer les droits de ces répertoires pour les passer en ‘555′, c’est à dire n’autoriser que la lecture et l’exécution (j’avais prévenu que c’était barabre).
- Dés la racine, tout les fichiers PHP, le fichier .htaccess ainsi que les dossiers wp-includes et wp-admin.
- Dans wp-content, les dossiers language, plugins et themes. Attention quand même, certains plugins peuvent être amenés à écrire dans leur propre répertoire. Dans ce cas, laissez le répertoire accessible en écriture.
Sur une installation standard, tout les répertoires et fichiers sont concernés sauf wp-contents/uploads.
Pour faire cette modification, allez-y gaiement, il faut la faire sur tout les fichiers et sous-dossiers.
Le contrecoup c’est qu’il faudra penser à modifier les droits pour faire des modifications sur les thèmes ou les plugins.
Le cas des uploads
Comme on a pas pu passer ce répertoire en lecture seule, on va tout bonnement interdire les scripts PHP avec un petit fichier .htaccess qui redirigera sur la page d’accueil. Ce fichier .htaccess est à placer dans le répertoire wp-contents/uploads.
RewriteCond %{REQUEST_URI} ^.*.php.*$ [NC]
RewriteRule (.*) http://www.gamesandgeeks.com/ [QSA,R=301,L]
La petite feinte de cowboy
Parce que je suis curieux, j’aimerai bien savoir qui m’attaque, ou du moins, d’où provient l’attaque.
Pour ça, il faut identifier quelques scripts d’attaque, par exemple, les fichiers nshell.php, c99.php, c100.php, … Et de mettre en place une redirection vers un fichier chargé de vous avertir et de vous donner des informations sur le visiteurs indésirable.
On ajoute alors dans le .htaccess de la racine les lignes suivantes :
RewriteCond %{REQUEST_URI} ^.*/c100.php.*$ [NC,OR]
RewriteCond %{REQUEST_URI} ^.*/c99.php.*$ [NC,OR]
RewriteCond %{REQUEST_URI} ^.*/.*shell.php.*$ [NC]
RewriteRule .* /unhack.php [NC,L]
Et on écrit le fichier Unhack.php suivant :
<?php
$out = '';
foreach($_SERVER as $k=>$v){
$out .= $k." => ".$v."n";
}
$f = @fopen('unhack.txt', 'w');
@fwrite($f, $out);
@fclose($f);
@mail('votre adresse mail','titre du mail',$out);
?>
Vous pouvez aussi changer le htaccess du répertoire d’uploads pour rediriger sur ce script au lieu de la page d’accueil.
Enfin, retenez surtout que si vous ne deviez faire qu’une seule manipulation, ca serait de sauvegarder régulièrement votre blog, base de données et fichiers…
Vous avez d’autres techniques à proposer ?









































Merci beaucoup pour cet article, mais…
Est-ce que le fait de donner les méthodes à utiliser, ce n’est pas comme donner la clé du coffre ?
Merci Séverin pour ces astuces !
Forge> Si tu as une bonne technique de hack contre du htaccess, je suis preneur.
@forge : Bah pas quand la méthode c’est de mettre une serrure très rarement violée.
@pickupjojo : Avec plaisir
@pickupjojo
Ouh laaaaa, pas moi non, c’est pas mon domaine. Vous avez certainement vu mon site pour vous en rendre compte. Je me posais juste la question, et je remercie Séverin de sa réponse.
Permettez que je creuse ?
Comment se fait-il que le .htaccess ne soit que “rarement” violée ?
C’est une technologie pro bien plus aboutie que Wordpress.
[...] Sécurisons WordPress [...]