Làm thế nào tôi có thể ngăn chặn một cuộc tấn công bot trên trang web của tôi?


14

Tôi có một trang web (được xây dựng với wordpress) hiện đang bị tấn công bot (tốt nhất tôi có thể nói). Một tập tin đang được yêu cầu nhiều lần, và người giới thiệu là (hầu như mọi lúc) turkyoutube.org/player/player.swf. Tệp đang được yêu cầu nằm sâu trong các tệp chủ đề của tôi và luôn được theo sau bởi " ?v=" và một chuỗi dài (nghĩa là r.php?v=Wby02FlVyms&title=izlesen.tk_Wby02FlVyms&toke).

Tôi đã thử đặt quy tắc .htaccess cho người giới thiệu đó, có vẻ như hoạt động, ngoại trừ việc bây giờ trang 404 của tôi đang được tải đi tải lại, hiện vẫn đang sử dụng nhiều băng thông. Có cách nào để tạo quy tắc .htaccess không yêu cầu sử dụng băng thông từ phía tôi không?

Tôi cũng đã thử tạo một tệp robots.txt, nhưng cuộc tấn công dường như đang bỏ qua điều đó.

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

2
Có phải cuộc tấn công đến từ cùng một IP mỗi lần?
Ben Hoffman

.htaccessquy tắc của bạn có chủ ý kích hoạt tệp 404? Có vẻ như ném một lỗi bị từ chối cấp phép đơn giản sẽ sử dụng ít băng thông hơn.
artlung

Đây là phần có liên quan của tệp .htaccess: RewriteCond% {HTTP_REFERER} turkyoutube \ .org [NC] RewriteRule. * - [F]
Travis Northcutt

Tuy nhiên, mặc dù nhật ký truy cập của tôi hiển thị "Mã http: 404", có vẻ như việc sử dụng băng thông của tôi đã dừng khi tôi thực hiện thay đổi .htaccess đó.
Travis Northcutt

Bạn có .htaccessmã bạn đã đăng trước hoặc sau các .htaccessquy tắc wordpress chính ?
artlung

Câu trả lời:


8

Làm thế nào về một chút cơ động corbomite ?

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

Lưu ý, chưa được kiểm tra nhưng nên chuyển hướng yêu cầu từ chúng trở lại chính chúng bằng 401 Not Authorizedmã trạng thái. Đó là, nếu bot thậm chí xử lý các chuyển hướng (rất khó xảy ra), nhưng nó vẫn sẽ thấy mã trạng thái. Mã trạng thái 404 có thể hiệu quả hơn. Một trong hai nên nói với bot rằng nó có lẽ nên từ bỏ.

Quy tắc bạn đã đăng trong các bình luận cũng là quá đủ nếu bạn mở rộng biểu thức để phù hợp với máy chủ hơn một chút. Tôi sử dụng một cái gì đó gần (theo quy tắc thực tế) để chặn kết hợp tác nhân người dùng libwww-perl:

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

Bạn có thấy rằng nhiều bot có HTTP_USER_AGENT = libwww-perl không? Điều này có vẻ như một cái gì đó hầu hết các bot sẽ nói dối.
Liam

@Liam - thật đáng ngạc nhiên, một tỷ lệ khá cao trong số họ không bao giờ cố gắng giả trang thành một trình duyệt thực sự (mặc dù chắc chắn, làm nhiều hơn là không). Tôi cũng nghĩ nó thật lạ :)
Tim Post

Lưu ý rằng bạn đang sử dụng rất nhiều regex rất chậm ở đây. Điều .*$này tương đương với không có gì nhanh hơn nhiều. Ngoài ra RewriteRule .* - [F,L], không cần cho dù *bạn bỏ qua mục nào.
Alexis Wilke

2

Ngoài việc chặn IP, tôi sẽ xem xét kỹ các tệp đang được yêu cầu. Đó là một điều khá phổ biến đối với các hệ thống nguồn mở như WordPress và Joomla được khai thác, đó là một lý do tại sao chúng được cập nhật thường xuyên. Nếu bạn đã bỏ qua một vài cập nhật, có thể ai đó đã xâm nhập trang web của bạn.

Tôi đã có kịch bản đó xảy ra với tôi hai lần, một lần trên một trang web thử nghiệm chưa bao giờ được triển khai đầy đủ (nhưng bị bỏ lại tại chỗ) và một lần khác trên trang web của công ty nơi một nhân viên có quyền truy cập hợp lệ "lấy" phpBB cho gia đình anh ta để giao tiếp - cập nhật sẽ ngăn chặn các vấn đề. Trong cả hai trường hợp, vấn đề được tìm thấy với các phân tích vì có vẻ như đó là sự thật trong trường hợp của bạn. Cuộc tấn công Joomla đã chèn javascript khiến trình duyệt của người dùng tải phần mềm, trong khi cuộc tấn công sau đó cho phép tin tặc tải các tệp lên máy chủ là một phần của trang web google "thay thế" phân tán dẫn người dùng đến p * rn mỗi lần. Mặc dù nó không hoàn toàn là một hack thông thường, hãy kiểm tra bảng người dùng DB của bạn, chỉ trong trường hợp.

Tôi chắc chắn không có ý định gây ra báo động, nhưng sẽ không bao giờ đau lòng dành thời gian để tìm hiểu trang web của bạn một lần để biết chính xác những gì đang xảy ra. Đôi khi bạn sẽ ngạc nhiên về những gì bạn tìm thấy.


Tôi nghĩ rằng đây chính xác là những gì đang xảy ra, thực sự. Có vẻ như tập tin đang được yêu cầu thậm chí không nên ở đó. Rất may, một người đóng góp cốt lõi wordpress thân thiện đã liên lạc với tôi, vì vậy tôi cảm thấy như chúng ta sẽ hiểu được nó.
Travis Northcutt

1

Nếu cuộc tấn công đến từ cùng một số IP mỗi lần (hoặc một bộ số IP nhỏ), bạn nên chặn số IP đó trong tường lửa của mình. Điều đó sẽ không tốn bất kỳ băng thông hoặc tải trên máy chủ web của bạn.

Nếu bạn đang lưu trữ nó trên máy Linux mà bạn có quyền truy cập root vào bài viết này giải thích cách thực hiện việc này.


Nó không đến từ cùng một IP mỗi lần.
Travis Northcutt

0

Tôi sử dụng Denyhosts [1] trên tất cả các máy chủ của mình. Denyhosts không cho phép tất cả các IP không đăng nhập được sau n lần. Bạn cũng có thể gửi thông báo. Vì vậy, bạn có một cái nhìn tổng quan tuyệt vời từ đó ips / lưu trữ thông tin đăng nhập đến; và nó cũng có chức năng cập nhật web và các tính năng tuyệt vời khác. Nhưng nó vẫn rất đơn giản để cài đặt.

Một phương pháp khác là không cho phép tất cả Phạm vi / Khối IP (ví dụ) từ Trung Quốc hoặc các quốc gia khác không phải là nhóm mục tiêu của bạn. Điều này có thể được thực hiện với "Danh sách đen" trực tuyến hoặc chỉ với tệp hosts.deny (như Denyhosts).

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


-1

Đơn giản chỉ cần thực hiện chuyển hướng 301 đến trang web fbi.

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.