it-swarm-es.com

¿Cómo puedo detener un ataque de bot en mi sitio?

Tengo un sitio (construido con WordPress) que actualmente está bajo un ataque de bot (lo mejor que puedo decir). Se solicita un archivo una y otra vez, y el referente es (casi siempre) turkyoutube.org/player/player.swf. El archivo que se solicita está en lo profundo de mis archivos de tema y siempre va seguido de "?v=" y una cadena larga (es decir, r.php?v=Wby02FlVyms&title=izlesen.tk_Wby02FlVyms&toke).

Intenté establecer una regla .htaccess para ese referente, que parece funcionar, excepto que ahora mi página 404 se está cargando una y otra vez, que todavía usa mucho ancho de banda. ¿Hay alguna manera de crear una regla .htaccess que no requiera el uso de ancho de banda por mi parte?

También intenté crear un archivo robots.txt, pero el ataque parece estar ignorando eso.

#This is the relevant part of the .htaccess file:
RewriteCond %{HTTP_REFERER} turkyoutube\.org [NC]
RewriteRule .* - [F]
14
Travis Northcutt

¿Qué tal un poco maniobra de corbomita ?

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

Tenga en cuenta que no se ha probado pero debe redirigir las solicitudes de ellos a ellos mismos con un código de estado 401 Not Authorized. Es decir, si el bot incluso maneja redirecciones (muy poco probable), pero aún verá el código de estado. Un código de estado 404 puede ser más efectivo. Cualquiera de los dos debería decirle al bot que probablemente debería rendirse.

La regla que publicaste en los comentarios también es más que adecuada si amplías un poco más la expresión para que coincida con el Host. Utilizo algo cercano (en cuanto a la regla real) para bloquear la coincidencia de agentes de usuario libwww-Perl:

RewriteCond %{HTTP_USER_AGENT} libwww-Perl.*
RewriteRule .* - [F,L]
8
Tim Post

Además del bloqueo de IP, examinaría los archivos que se solicitan. Es bastante común que los sistemas de código abierto como WordPress y Joomla sean explotados, lo cual es una de las razones por las que se actualizan con frecuencia. Si ha descuidado algunas actualizaciones, es posible que alguien haya penetrado en su sitio.

Me ha sucedido ese escenario dos veces, una vez en un sitio de prueba que nunca se implementó por completo (pero se dejó en su lugar) y otra vez en un sitio web de la compañía donde un empleado con acceso válido "coló" un phpBB para su familia para comunicarse: las actualizaciones habrían evitado los problemas. En ambos casos, el problema se encontró con el análisis, ya que parece ser cierto en su caso. El ataque de Joomla inyectó JavaScript que provocó que el navegador del usuario cargara software, mientras que este último permitió que el hacker cargara archivos al servidor que formaban parte de un sitio de Google "alternativo" distribuido que llevó al usuario a p * rn cada vez. Aunque no es del todo un truco común, verifique su tabla de usuarios de DB, por si acaso.

Ciertamente no pretendo causar alarma, pero nunca está de más tomarse el tiempo de buscar en su sitio de vez en cuando para saber exactamente lo que está sucediendo. A veces te sorprenderá lo que encuentres.

2
bpeterson76

Si el ataque proviene del mismo número de IP cada vez (o un pequeño conjunto de números de IP), debe bloquear ese número de IP en su firewall. Eso no debería costar ningún ancho de banda o carga en su servidor web.

Si lo aloja en una máquina Linux a la que tiene acceso raíz este artículo explica cómo hacerlo.

1
Kris

Uso DenyHosts [1] en todos mis servidores. DenyHosts no permite todas las IP que no pudieron iniciar sesión después de n veces. También puedes enviar notificaciones. Por lo tanto, tiene una excelente visión general de qué ips/hosts provienen los inicios de sesión; y también tiene una función de actualización web y otras excelentes características. Pero todavía es muy simple de instalar.

Otro método es no permitir todos los rangos/bloques de IP (por ejemplo, en China) u otros países que no sean su grupo objetivo. Esto se puede hacer con las "listas negras" en línea o simplemente con el archivo hosts.deny (como DenyHosts).

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

0
fwaechter