Wie kann ich einen Bot-Angriff auf meine Site stoppen?

14

Ich habe eine Site (mit WordPress erstellt), die derzeit von einem Bot angegriffen wird (soweit ich das beurteilen kann). Eine Datei wird immer wieder angefordert, und der Verweiser ist (fast jedes Mal) turkyoutube.org/player/player.swf. Die angeforderte Datei befindet sich tief in meinen Themendateien und wird immer von " ?v=" und einer langen Zeichenfolge (dh r.php?v=Wby02FlVyms&title=izlesen.tk_Wby02FlVyms&toke) gefolgt .

Ich habe versucht, eine .htaccess-Regel für diesen Referrer festzulegen, was anscheinend funktioniert, außer dass meine 404-Seite jetzt immer wieder geladen wird und immer noch viel Bandbreite verbraucht. Gibt es eine Möglichkeit, eine .htaccess-Regel zu erstellen, für die meinerseits keine Bandbreitennutzung erforderlich ist?

Ich habe auch versucht, eine robots.txt-Datei zu erstellen, aber der Angriff scheint das zu ignorieren.

#This is the relevant part of the .htaccess file:
RewriteCond %{HTTP_REFERER} turkyoutube\.org [NC]
RewriteRule .* - [F]
Travis Northcutt
quelle
2
Kommt der Angriff jedes Mal von derselben IP?
Ben Hoffman
Löst Ihre .htaccessRegel absichtlich die 404-Datei aus? Es scheint, als würde durch das Auslösen eines Fehlers, dem eine einfache Berechtigung verweigert wurde, weniger Bandbreite verbraucht.
Artlung
Dies ist der relevante Teil der .htaccess-Datei: RewriteCond% {HTTP_REFERER} turkyoutube \ .org [NC] RewriteRule. * - [F]
Travis Northcutt
Obwohl in meinen Zugriffsprotokollen "HTTP-Code: 404" angezeigt wird, scheint meine Bandbreitennutzung gestoppt zu sein, als ich diese .htaccess-Änderung vorgenommen habe.
Travis Northcutt
Haben Sie den .htaccessCode, den Sie vor oder nach den wichtigsten WordPress- .htaccessRegeln gepostet haben ?
Artlung

Antworten:

8

Wie wäre es mit einem kleinen Corbomit-Manöver ?

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

Beachten Sie, dass ungeprüfte Anforderungen mit einem 401 Not AuthorizedStatuscode an sich selbst zurückgeleitet werden sollten. Dies ist der Fall, wenn der Bot sogar Weiterleitungen verarbeitet (sehr unwahrscheinlich), aber der Statuscode weiterhin angezeigt wird. Ein 404-Statuscode ist möglicherweise effektiver. Entweder sollte man dem Bot sagen, dass er wahrscheinlich aufgeben sollte.

Die Regel, die Sie in den Kommentaren gepostet haben, ist auch mehr als angemessen, wenn Sie den Ausdruck erweitern, damit er ein wenig mehr mit dem Host übereinstimmt. Ich verwende etwas Nahes (soweit es die eigentliche Regel betrifft), um die Zuordnung von Benutzeragenten zu blockieren libwww-perl:

RewriteCond %{HTTP_USER_AGENT} libwww-perl.*
RewriteRule .* - [F,L]
Tim Post
quelle
Finden Sie, dass viele Bots HTTP_USER_AGENT = libwww-perl haben? Dies scheint etwas zu sein, worüber die meisten Bots lügen würden.
Liam
@Liam - überraschenderweise versuchen ein anständiger Prozentsatz von ihnen niemals, sich als echter Browser auszugeben (obwohl es mit Sicherheit mehr gibt als nicht). Ich fand es auch seltsam :)
Tim Post
Beachten Sie, dass Sie hier viele sehr langsame reguläre Ausdrücke verwenden. Das .*$entspricht nichts, was viel schneller ist. Auch das RewriteRule .* - [F,L], keine Notwendigkeit, *da du den Eintrag sowieso ignorierst.
Alexis Wilke
2

Abgesehen von der IP-Blockierung würde ich die angeforderten Dateien überprüfen. Open-Source-Systeme wie WordPress und Joomla werden häufig ausgenutzt. Dies ist einer der Gründe, warum sie häufig aktualisiert werden. Wenn Sie einige Updates vernachlässigt haben, ist es möglich, dass jemand in Ihre Website eingedrungen ist.

Ich habe dieses Szenario zweimal erlebt, einmal auf einer Testwebsite, die nie vollständig bereitgestellt wurde (aber an Ort und Stelle belassen wurde), und ein anderes Mal auf einer Unternehmenswebsite, auf der ein Mitarbeiter mit gültigem Zugriff eine phpBB für seine Familie "angeschlichen" hat zu kommunizieren - Updates hätten die Probleme verhindert. In beiden Fällen wurde das Problem bei der Analyse festgestellt, da es in Ihrem Fall möglicherweise zutrifft. Durch den Joomla-Angriff wurde Javascript injiziert, wodurch der Browser des Benutzers Software laden konnte. Letzteres erlaubte dem Hacker, Dateien auf den Server hochzuladen, die Teil einer verteilten "alternativen" Google-Site waren, die den Benutzer jedes Mal zu p * rn führte. Auch wenn dies kein alltäglicher Hack ist, überprüfen Sie Ihre DB-Benutzertabelle für alle Fälle.

Ich will mit Sicherheit keinen Alarm auslösen, aber es schadet nie, sich ab und zu die Zeit zu nehmen, Ihre Website zu durchsuchen, um genau zu wissen, was los ist. Manchmal werden Sie überrascht sein, was Sie finden.

bpeterson76
quelle
Ich denke, genau das passiert tatsächlich. Es sieht so aus, als ob die angeforderte Datei nicht einmal dort sein sollte. Zum Glück hat mich ein freundlicher WordPress-Mitarbeiter kontaktiert, und ich habe das Gefühl, wir werden es herausfinden.
Travis Northcutt
1

Wenn der Angriff jedes Mal von derselben IP-Nummer (oder einem kleinen Satz von IP-Nummern) ausgeht, sollten Sie diese IP-Nummer in Ihrer Firewall blockieren. Das sollte keine Bandbreite kosten oder Ihren Webserver belasten.

Wenn Sie es auf einem Linux-Computer hosten, auf dem Sie über Root-Zugriff auf diesen Artikel verfügen, wird die Vorgehensweise erläutert.

Kris
quelle
Es kommt nicht jedes Mal von derselben IP.
Travis Northcutt
0

Ich verwende DenyHosts [1] auf allen meinen Servern. DenyHosts verbietet alle IPs, die sich nach n-mal nicht anmelden konnten. Sie können auch Benachrichtigungen senden. Sie haben also einen guten Überblick darüber, von welchen IPS / Hosts die Logins stammen. und es hat auch eine Web-Update-Funktion und andere tolle Funktionen. Die Installation ist dennoch sehr einfach.

Eine andere Methode besteht darin, alle IP-Bereiche / -Blöcke (z. B.) aus China oder anderen Ländern, die nicht Ihre Zielgruppe sind, zu verbieten. Dies kann mit Online- "Blacklists" oder einfach mit der hosts.deny-Datei (wie DenyHosts) erfolgen.

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

waechter
quelle
-1

Führen Sie einfach die 301-Weiterleitung zur fbi-Site aus.

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

Heißes Bizzle
quelle