Comment puis-je arrêter une attaque de bot sur mon site?

14

J'ai un site (construit avec wordpress) qui est actuellement attaqué par un bot (du mieux que je puisse en dire). Un fichier est demandé à plusieurs reprises, et le référent est (presque à chaque fois) turkyoutube.org/player/player.swf. Le fichier demandé est au plus profond de mes fichiers de thème et est toujours suivi de " ?v=" et d'une longue chaîne (ie r.php?v=Wby02FlVyms&title=izlesen.tk_Wby02FlVyms&toke).

J'ai essayé de définir une règle .htaccess pour ce référent, ce qui semble fonctionner, sauf que maintenant ma page 404 est chargée à plusieurs reprises, qui utilise toujours beaucoup de bande passante. Existe-t-il un moyen de créer une règle .htaccess qui ne nécessite aucune utilisation de bande passante de ma part?

J'ai également essayé de créer un fichier robots.txt, mais l'attaque semble ignorer cela.

#This is the relevant part of the .htaccess file:
RewriteCond %{HTTP_REFERER} turkyoutube\.org [NC]
RewriteRule .* - [F]
Travis Northcutt
la source
2
L'attaque provient-elle à chaque fois de la même adresse IP?
Ben Hoffman
Votre .htaccessrègle déclenche-t-elle intentionnellement le fichier 404? Il semblerait que le fait de lancer une erreur de permission simple refusée réduirait l'utilisation de la bande passante.
artlung
Ceci est la partie pertinente du fichier .htaccess: RewriteCond% {HTTP_REFERER} turkyoutube \ .org [NC] RewriteRule. * - [F]
Travis Northcutt
Cependant, même si mes journaux d'accès affichent "Code Http: 404", il semble que mon utilisation de la bande passante s'est arrêtée lorsque j'ai effectué cette modification .htaccess.
Travis Northcutt du
Avez-vous le .htaccesscode que vous avez affiché avant ou après les principales .htaccessrègles wordpress ?
artlung

Réponses:

8

Que diriez-vous d'une petite manœuvre de corbomite ?

RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http(s)?://(www\.)?turkyoutube.org.*$ [NC]
RewriteRule ^(.*)$ http://127.0.0.1/$1 [R=401,L]

Remarque, non testé mais devrait rediriger les demandes d'eux vers eux-mêmes avec un 401 Not Authorizedcode d'état. Autrement dit, si le bot gère même les redirections (très peu probable), mais il verra toujours le code d'état. Un code d'état 404 peut être plus efficace. L'un ou l'autre devrait dire au bot qu'il devrait probablement abandonner.

La règle que vous avez publiée dans les commentaires est également plus que suffisante si vous élargissez l'expression pour qu'elle corresponde un peu plus à l'hôte. J'utilise quelque chose de proche (jusqu'à la règle réelle) pour bloquer la correspondance des agents utilisateurs libwww-perl:

RewriteCond %{HTTP_USER_AGENT} libwww-perl.*
RewriteRule .* - [F,L]
Tim Post
la source
Trouvez-vous que de nombreux bots ont HTTP_USER_AGENT = libwww-perl? Il semble que la plupart des robots mentiraient.
Liam
@Liam - étonnamment, un pourcentage décent d'entre eux n'essaient jamais de se faire passer pour un vrai navigateur (bien que certainement plus qu'ils ne le fassent). Je pensais que c'était étrange aussi :)
Tim Post
Notez que vous utilisez beaucoup de regex très lents ici. L' .*$équivalent à rien qui est beaucoup plus rapide. Aussi RewriteRule .* - [F,L], pas besoin de *puisque vous ignorez quand même l'entrée.
Alexis Wilke
2

Mis à part le blocage IP, je voudrais examiner les fichiers qui sont demandés. C'est une chose assez courante pour les systèmes open source tels que WordPress et Joomla à exploiter, ce qui est l'une des raisons pour lesquelles ils sont fréquemment mis à jour. Si vous avez négligé quelques mises à jour, il est possible que quelqu'un ait pénétré votre site.

J'ai eu ce scénario deux fois, une fois sur un site de test qui n'a jamais été complètement déployé (mais qui a été laissé en place) et une autre fois sur un site Web de l'entreprise où un employé ayant un accès valide "snuck" un phpBB pour sa famille pour communiquer - des mises à jour auraient permis d'éviter les problèmes. Dans les deux cas, le problème a été détecté avec l'analyse, car il semble que ce soit le cas dans votre cas. L'attaque de Joomla a injecté du javascript qui a amené le navigateur de l'utilisateur à charger des logiciels, tandis que ce dernier a permis au pirate de télécharger des fichiers sur le serveur qui faisaient partie d'un site google "alternatif" distribué qui a conduit l'utilisateur à p * rn à chaque fois. Bien que ce ne soit pas entièrement un hack commun, vérifiez votre table d'utilisateurs DB, juste au cas où.

Je ne veux certainement pas alarmer, mais cela ne fait jamais de mal de prendre le temps de fouiller votre site de temps en temps pour savoir exactement ce qui se passe. Parfois, vous serez surpris de ce que vous trouverez.

bpeterson76
la source
Je pense que c'est exactement ce qui se passe, en fait. Il semble que le fichier demandé ne devrait même pas être là. Heureusement, un contributeur sympathique de wordpress m'a contacté, donc je pense que nous allons le comprendre.
Travis Northcutt du
1

Si l'attaque provient à chaque fois du même numéro IP (ou d'un petit ensemble de numéros IP), vous devez bloquer ce numéro IP dans votre pare-feu. Cela ne devrait pas coûter de bande passante ni de charge sur votre serveur Web.

Si vous l'hébergez sur une machine Linux à laquelle vous avez accès en tant que root, cet article explique comment procéder.

Kris
la source
Il ne provient pas à chaque fois de la même adresse IP.
Travis Northcutt du
0

J'utilise DenyHosts [1] sur tous mes serveurs. DenyHosts interdit toutes les adresses IP qui n'ont pas pu se connecter après n fois. Vous pouvez également envoyer des notifications. Vous avez donc une excellente vue d'ensemble à partir de quels ips / hôtes les connexions sont venues; et il a également une fonction de mise à jour Web et d'autres fonctionnalités intéressantes. Mais c'est toujours très simple à installer.

Une autre méthode consiste à interdire toutes les plages / blocs IP (par exemple) de Chine ou d'autres pays qui ne sont pas votre groupe cible. Cela peut être fait avec des "listes noires" en ligne ou simplement avec le fichier hosts.deny (comme DenyHosts).

[1] http://denyhosts.sourceforge.net/

fwaechter
la source
-1

Faites simplement la redirection 301 vers le site fbi.

RewriteEngine sur RewriteCond% {HTTP_REFERER} ^ http (s)?: // (www.)? Turkyoutube.org. $ [NC] RewriteRule ^ (. ) $ Http://www.fbi.gov [R = 301, L]

Hot Bizzle
la source