Depuis que j'ai codé mon propre antispam pour protéger ce blog des attaques quotidiennes de malfaisants spambots, je collecte précieusement tout ce que ces derniers ont à me dire dans une base de données.
Ainsi, j'ai pu découvrir que, mis à part en de rares occasions, les user agents des spambots sont très variés. Le graphique ci-dessous montre pour la période de mai 2008 à octobre 2009 comment sont répartis le nombre de user agents distincts et le nombre de tentative de spam.
En mai 2008, on note le pic (il dépasse 130 POST/jour) qui correspond à très peu de user agents différents (1 à 2, suivant le jour). Alors que dans le reste de la période la courbe du nombre de POST est très proche de la courbe du nombre d'UA différents.
À noter que, plutôt que de me limiter au seul User Agent, j'ai fait ma petite analyse sur la concaténation des variables HTTP_USER_AGENT
, HTTP_ACCEPT
, HTTP_ACCEPT_LANGUAGE
, et HTTP_ACCEPT_ENCODING
. On obtient ainsi une meilleure discrimination entre les différents attaquants.
Voici un exemple abrégé de capture :
REQUEST_TIME : 2008-12-09 19:51:33 HTTP_HOST : www.patpro.net REMOTE_ADDR : 88.198.53.43 HTTP_USER_AGENT : Mozilla/5.0 (Windows; U; Windows NT 5.0; ru; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6 HTTP_ACCEPT : text/xml, application/xml, application/xhtml+xml, text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 HTTP_ACCEPT_LANGUAGE : ru HTTP_ACCEPT_ENCODING : deflate
Si on s'intéresse particulièrement aux variables HTTP_ACCEPT* on voit qu'elles sont utilisées de manières très inégales en fonction du robot :
On peut supposer que ces caractéristiques permettent de différencier les différents botnets, et versions des scripts. Les spammers poussent donc le raffinement assez loin, dans le but, bien sûr, de passer au travers des protections antispam. Dans certaines tentatives que j'ai enregistrées, le client fourni même un cookie de session.