2 votes

Certaines règles de mod_security ne sont pas appliquées

Nous avons constaté un grand nombre de spams de renvoi vers l'un de nos serveurs. J'ai donc décidé d'ajouter quelques règles de modsecurity personnalisées pour tenter d'en arrêter au moins quelques-uns.

J'ai ajouté plusieurs règles, par exemple :

SecRule REQUEST_HEADERS:User-Agent "/\byourekillingme.org\b/" \
    "phase:1,log,deny,status:503,msg:'Referer spam1',id:101"

SecRule REQUEST_HEADERS:User-Agent "/\bahrefs.com/robot\b/" \
    "phase:1,log,deny,status:503,msg:'Referer spam2',id:102"

SecRule REQUEST_HEADERS:User-Agent "/\bsemrush.com/bot\b/" \
    "phase:1,log,deny,status:503,msg:'Referer spam6',id:106"

mais comme vous pouvez le voir dans le journal, alors que la règle ahrefs (id 102 ci-dessus) est appliquée, les autres ne le sont pas (il y en a d'autres, mais ahrefs est la seule qui fonctionne) :

107.180.120.23 - - [23/Nov/2017:11:08:00 +0000] "GET /tri-levlen-28-side-effects-3f1 HTTP/1.1" 200 50965 "http://www.mydomain.co.uk/tri-levlen-28-side-effects-3f1#elephant" "WordPress/4.9; http://yourekillingme.org"

51.255.65.42 - - [23/Nov/2017:10:40:51 +0000] "GET /pink-viagra-price-52c HTTP/1.1" 503 315459 "-" "Mozilla/5.0 (compatible; AhrefsBot/5.2; +http://ahrefs.com/robot/)"

46.229.168.73 - - [23/Nov/2017:11:07:50 +0000] "GET /viagra-for-sale-online-cheap-52c HTTP/1.1" 200 51060 "-" "Mozilla/5.0 (compatible; SemrushBot/1.2~bl; +http://www.semrush.com/bot.html)"

J'ai également vérifié le fichier /usr/local/apache/logs/modsec_audit.log pour confirmer que c'est bien ma règle qui est à l'origine du 503 et non une autre règle située ailleurs, et cela ne montre que de nombreuses entrées pour :

Message: Access denied with code 503 (phase 1). Pattern match "/\\bahrefs.com/robot\\b/" at REQUEST_HEADERS:User-Agent. [file "/usr/local/apache/conf/modsec2.myrules.conf"] [line "8"] [id "102"] [msg "Referer spam2"]

indiquant que c'est ma règle de modsec qui l'empêche.

Quelqu'un peut-il voir pourquoi mes autres règles ne sont pas appliquées ?

2voto

Brad Points 3206

C'est les barres obliques. Les expressions régulières dans ModSecurity ne sont pas limitées par des barres obliques, donc celles-ci sont interprétées comme une partie littérale de l'expression régulière.

Toutes vos expressions correspondent à des URL, de sorte que la première barre oblique correspond à la dernière barre oblique de l'expression http:// de l'URL, mais seule l'URL AHrefs comporte une barre oblique de fin de ligne et c'est donc la seule qui correspond à ces expressions régulières.

Je ne suis pas sûr que le \b ne fait rien d'utile non plus. Il semble correspondre à ces trois éléments soit au . ou le / ou la fin de la chaîne. S'il est effectivement compris par ModSecurity, il peut faire en sorte que les expressions futures d'autres robots ne correspondent pas à ce que vous attendez d'eux.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X