Wordpress mais pas que…
Dès qu'un site est "découvert", des automates se lancent à son assaut.
Ces tentatives, généralement basiques, conduisent les plus souvent à des erreur 404 pour leur auteur.
Il facile et prudent de tracer ces erreurs.
Cela permet de découvrir des attaques pour Joomla, pour Guppy, pour Wordpress, etc.
Pour Wordpress, justement, ce sont essentiellement les plug-ins et les thèmes qui sont ciblés.
Loin d'être aussi bien écrits, entretenus et testés que la plateforme elle-même, il constituent un met de choix.
Quand ils proposent en plus des moyens de dépôt de fichiers (upload), on est rapidement en danger.
Intercepter et tracer ces essais infructueux permet d'apprendre deux choses :
- l'adresse IP des attaquants
- les thèmes et plug-ins à éviter
Voilà, par exemple, un code qu'on peut insérer au bon endroit dans le thème en cours ou dans Wordpress pour enregistrer les tentatives avortées :
- Code:
-
<?php
$trackfile = '404/trace-'.date("Y-m").'.TXT';
$hfilestring = '';
if (!file_exists($trackfile))
$hfilestring = "Date Time Host Remote URL Agent\n";
$tfilestring = date('Y-m-d H.i.s')
.' '.$_SERVER['SERVER_ADDR'].':'.$_SERVER['SERVER_PORT']
.' '.$_SERVER['REMOTE_ADDR'].':'.$_SERVER['REMOTE_PORT']
.' '.$_SERVER['REQUEST_URI']
.' ['.$_SERVER['HTTP_USER_AGENT']."]\n";
$tfile = fopen($trackfile,'a');
fwrite($tfile,$hfilestring.$tfilestring);
fclose($tfile);
?>
Il faut créer le dossier 404 dans le dossier Wordpress pour que ça fonctionne.
En l'état, le script crée un fichier par mois.
Je conseille de déposer aussi un .htaccess limitant l'accès au dossier 404 à la seule IP du gestionnaire.
En analysant le contenu de ces fichiers de trace, on peut peupler le .htaccess de Wordpress des IP à bannir et déceler les fichiers attaqués, les méthodes utilisées, etc.
On peut d'ailleurs automatiser un peu l'analyse pour proposer une liste d'adresses à bannir, voir pour peupler le .htaccess principal automatiquement. On verra ça plus tard.