Jak zatrzymać atak bota na moją stronę?


14

Mam witrynę (zbudowaną za pomocą wordpress), która jest obecnie poddawana atakowi bota (co mogę powiedzieć). Plik jest żądany w kółko, a strona odsyłająca jest (prawie za każdym razem) turkyoutube.org/player/player.swf. Żądany plik znajduje się głęboko w moich plikach motywu, po którym zawsze następuje „ ?v=” i długi ciąg znaków (tj r.php?v=Wby02FlVyms&title=izlesen.tk_Wby02FlVyms&toke.).

Próbowałem ustawić regułę .htaccess dla tego obiektu odsyłającego, który wydaje się działać, z wyjątkiem tego, że teraz moja strona 404 jest ładowana w kółko, co nadal wykorzystuje dużą przepustowość. Czy istnieje sposób na utworzenie reguły .htaccess, która z mojej strony nie wymaga użycia przepustowości?

Próbowałem również utworzyć plik robots.txt, ale atak wydaje się to ignorować.

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

2
Czy za każdym razem atak pochodzi z tego samego adresu IP?
Ben Hoffman

Czy twoja .htaccessreguła celowo uruchamia plik 404? Wygląda na to, że zgłoszenie błędu odmowy zwykłego pozwolenia oznaczałoby mniejsze zużycie przepustowości.
artlung

To jest odpowiednia część pliku .htaccess: RewriteCond% {HTTP_REFERER} turkyoutube \ .org [NC] RewriteRule. * - [F]
Travis Northcutt

Jednak pomimo tego, że moje dzienniki dostępu pokazują „Kod HTTP: 404”, wygląda na to, że moje użycie przepustowości zostało zatrzymane, kiedy dokonałem tej zmiany .htaccess.
Travis Northcutt

Czy masz .htaccesskod, który opublikowałeś przed czy po głównych .htaccessregułach wordpress ?
artlung

Odpowiedzi:


8

Co powiesz na mały manewr korbomitowy ?

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

Uwaga: nieprzetestowane, ale powinny przekierowywać żądania z powrotem do siebie za pomocą 401 Not Authorizedkodu statusu. To znaczy, jeśli bot nawet obsługuje przekierowania (bardzo mało prawdopodobne), ale nadal będzie widział kod statusu. Kod stanu 404 może być bardziej skuteczny. Każdy z nich powinien powiedzieć botowi, że prawdopodobnie powinien się poddać.

Zasada opublikowana w komentarzach jest również bardziej niż wystarczająca, jeśli rozszerzysz wyrażenie, aby bardziej pasowało do hosta. Używam czegoś bliskiego (o ile jest to reguła) do blokowania dopasowywania agentów użytkownika libwww-perl:

RewriteCond %{HTTP_USER_AGENT} libwww-perl.*
RewriteRule .* - [F,L]

Czy zauważyłeś, że wiele botów ma HTTP_USER_AGENT = libwww-perl? Wygląda na to, że większość botów kłamałaby.
Liam,

@Liam - zaskakująco spora część z nich nigdy nie próbuje maskować się jako prawdziwa przeglądarka (choć na pewno więcej robi niż nie). Myślałem też, że to dziwne :)
Tim Post

Zauważ, że używasz tutaj bardzo powolnego wyrażenia regularnego. Jest .*$to odpowiednik niczego, co jest znacznie szybsze. Również RewriteRule .* - [F,L]nie ma potrzeby, *ponieważ i tak ignorujesz wpis.
Alexis Wilke

2

Oprócz blokowania adresów IP analizowałbym żądane pliki. Dość powszechna jest sytuacja w systemach open source, takich jak WordPress i Joomla, co jest jednym z powodów, dla których są często aktualizowane. Jeśli zaniedbałeś kilka aktualizacji, możliwe, że ktoś przeniknął do Twojej witryny.

Ten scenariusz zdarzył mi się dwa razy, raz na stronie testowej, która nigdy nie została w pełni wdrożona (ale pozostała na miejscu), a innym razem na stronie internetowej firmy, gdzie pracownik z ważnym dostępem „wrzucił” phpBB dla swojej rodziny komunikować się - aktualizacje zapobiegłyby problemom. W obu przypadkach problem został wykryty w przypadku analiz, ponieważ wydaje się, że może być prawdziwy w twoim przypadku. Atak Joomla wstrzyknął javascript, który spowodował, że przeglądarka użytkownika załadowała oprogramowanie, podczas gdy ta ostatnia pozwoliła hakerowi na przesłanie plików na serwer, które były częścią rozproszonej „alternatywnej” strony google, która prowadzi użytkownika do p * rn za każdym razem. Chociaż nie jest to całkiem powszechny hack, na wszelki wypadek sprawdź tabelę użytkowników DB.

Z pewnością nie chcę wywoływać niepokoju, ale nigdy nie boli poświęcić czasu na przeglądanie witryny raz na jakiś czas, aby dokładnie wiedzieć, co się dzieje. Czasami będziesz zaskoczony tym, co znajdziesz.


Myślę, że tak właśnie się dzieje. Wygląda na to, że żądany plik nie powinien nawet tam być. Na szczęście skontaktował się ze mną przyjazny współpracownik WordPress, więc czuję, że uda nam się to rozgryźć.
Travis Northcutt,

1

Jeśli atak pochodzi z tego samego numeru IP za każdym razem (lub niewielkiego zestawu numerów IP), należy zablokować ten numer IP w zaporze. To nie powinno kosztować żadnej przepustowości ani obciążenia serwera.

Jeśli hostujesz go na komputerze z systemem Linux, który masz dostęp do konta root, ten artykuł wyjaśnia, jak to zrobić.


Nie zawsze pochodzi z tego samego adresu IP.
Travis Northcutt

0

Używam DenyHosts [1] na wszystkich moich serwerach. DenyHosts zabrania wszystkich adresów IP, które nie mogły się zalogować po n razy. Możesz także wysyłać powiadomienia. Masz więc świetny przegląd, z którego systemu ips / hosts pochodzą loginy; i ma również funkcję aktualizacji internetowej i inne wspaniałe funkcje. Ale nadal jest bardzo prosty w instalacji.

Inną metodą jest zabronienie wszystkich zakresów / bloków IP (np.) Z Chin lub innych krajów, które nie są twoją grupą docelową. Można to zrobić za pomocą „czarnych list” online lub po prostu za pomocą pliku hosts.deny (takiego jak DenyHosts).

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


-1

Po prostu zrób przekierowanie 301 na stronę fbi.

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.