Un script qui blacklist les scanners par 404

WRInaute passionné
bon

je crois que l'annonce d'un nouveau service online a eveillé certaines convoitises (pas ici)

le lendemain de l'annonce j'ai été victime de plusieurs scans

donc j'ai réagi et j'ai pondu un script pour bannir certains comportements

mais un des scanners m'a ruiné mon fichier error.log
il a une huge liste de fichiers sensibles possible, il scanne le site et dès qu'il trouve un dossier il le scanne en appliquant cette liste (fichiers .bak,.conf, etc)

il m'a juste fait + de 200 000 requêtes

donc pour eviter que ça se reproduise, je vais pondre un script pour le detecter et le bannir

la question qui me taraude c'est d'éviter de bannir un gentil crawler
:D

qui lui aussi pourrait avoir des mauvais liens et crawler des 404

sachant que les header http sont totalement customizables, je ne peux pas prendre le risque d'etablir une liste de trusted bots qui permettrait au scanner de se sentir chez lui dans mon espace web

quelques idées pour eviter de bannir googlebot ?
:D

rog
 
WRInaute passionné
la premiere detection est dans mon gestionnaire de stat

je log des query string

en tout 10 000 requêtes

des comme celle-ci (local file disclosure) ont été demandées 12 fois
index.php?op = ../../../../../../../../etc/passwd

des comme celle ci (xss) ont ete demandé 4 fois

index.php?op = <img dynsrc=\"JaVaScRiPt:alert(473979632);\">

en tout y en a 10 000

la ou j'ai tilté c'est quand j'ai ouvert error.log pour debugger une option qui a mal suivie les releases

y'avait plus de 200 000 lignes de 404 avec des filenames tres interessants

la j'ai fini les filtres GET
:D
je vais essayer de pondre aussi un filtre POST

rog
 
WRInaute passionné
Pas plus de 5 erreurs par minute sinon banni pour 1h (avec un 302). Tu peux placer le test dans ton ErrorDocument 404.
Tu peux aussi verifier le nom (a partir de l'IP) pour savoir si c'est Google.
 
WRInaute passionné
j'ai mis un delai max parametrable entre deux 404

il est réglé à 15 secondes pour les tests

effectivement c'est pas mal :
Pas plus de 5 erreurs par minute sinon banni pour 1h (avec un 302)

l'idée est meilleure que la mienne,
j'ai encore une fois évité d'utiliser une basa de donnée et j'ai orienté mon script vers une génération de .htaccess à la volée, donc les bans seraient bloqués par htacess et de façon permanente
pour arriver à ton resultat faudrait que je melange toutes mes strategies alors qu'elles sont independantes

j'arrete de coder pour y reflechir

je te remercie du conseil

rog
 
WRInaute passionné
bon c'est presque pret (1° version)

l'idée d'un rw sur htaccess pour apache m'ennuyait un peu mais ça m'a l'air propre

en plus je crois que je vais relier les autres ban sur ce script

rog

#######################################################################################
# girardin web vuln scan protector V1.0
# 24/11/2006
#
# The context :
#
# I was victim of a silly scan which tryed to find sensible unexisting files
#
# this was not fair as it eats a lot of bandwitch and ressources
# so i have decided to code several protections to avoid vulnerability scanner
#
# this script is attempting to ban some untrusted visits (404 errors)
# i will give a credit to a guy (nick = serious) which gave me the idea to avoid permanent ban
# but an 1 hour ban when an user make several 404 requests on an hour
#
# 1) - so the script will log the user ip or ips
#
# 2) - it will give the gethostname by ip address
# so we will search trusted string pattern on the retrived hostnames
# to valid/invalid our trust on the user
#
# 3) - if the hostname is not trusted it will check if the user already have a log
# since time - delay.
# if so ==> the ip (ips) user will be added on the .htaccess ip restriction list
#
# 4) - as the htaccess file has to be rebuild at each ban, i have added some features
# to build the new one (error document array and some other stuff)
#
# all the script is dynamic and doesn't need any db access, only rw apache access
# the weak point is the update banned ip list and the rebuild, it will need some cron stuff
#
#######################################################################################
 
WRInaute passionné
la V1 est terminée

pour la tester faut cliquer sur le www

je la modifierai un peu pour la publier et faciliter son install par l'utilisateur

rog
 
Discussions similaires
Haut