2010-09-29 39 views
5

Tôi có một khách hàng có miền dường như bị tấn công khá mạnh bởi những gì dường như là một DDoS. Trong nhật ký, nó là các tác nhân người dùng tìm kiếm thông thường với các IP ngẫu nhiên nhưng chúng lật qua các trang quá nhanh để trở thành con người. Họ cũng không có vẻ yêu cầu bất kỳ hình ảnh nào. Tôi dường như không thể tìm thấy bất kỳ mô hình nào và sự nghi ngờ của tôi chính là một hạm đội của Windows Zombies.Ý tưởng BOT/Spider Trap

Các khách hàng gặp sự cố trong quá khứ với các cuộc tấn công SPAM - thậm chí phải trỏ MX tại Postini để nhận được 6,7 GB/ngày rác để dừng máy chủ.

Tôi muốn thiết lập một cái bẫy BOT trong một thư mục không được phép bởi robots.txt ... chưa bao giờ thử bất cứ điều gì như thế này trước đây, hy vọng ai đó có ý tưởng sáng tạo để bẫy BOT!

CHỈNH SỬA: Tôi đã có rất nhiều ý tưởng để bắt được một .. đó là những gì cần làm khi nó ở trong bẫy.

+3

Đây là một câu hỏi thú vị, và tôi rất muốn nhìn thấy một số câu trả lời. Nhưng tôi nghi ngờ rằng nó có thể phù hợp hơn với [Server Fault] (http://serverfault.com). –

+1

Tôi đồng ý nhưng các nhà phát triển sáng tạo hơn rất nhiều rồi các chuyên gia CNTT..lol! – Mikey1980

+1

Nhưng ai đó "tạo ra" giải pháp này đã có, và các chàng trai CNTT rất giỏi triển khai nó. –

Trả lời

0

Trước tiên, bạn có thể xem địa chỉ IP đến từ đâu. Tôi đoán là tất cả họ đều đến từ một quốc gia như Trung Quốc hay Nigeria, trong trường hợp này bạn có thể thiết lập một thứ gì đó trong htaccess để không cho phép tất cả IP từ hai quốc gia đó, để tạo ra một cái bẫy cho bot, tôi havent ý tưởng nhỏ nhất

+0

IP là tất cả các nơi .. mà trong trường hợp của SPAM nó đã được khá rõ ràng rằng nguồn gốc đã bị nhiễm cửa sổ máy. – Mikey1980

6

Bạn có thể thiết lập tập lệnh PHP có URL bị cấm bởi robots.txt. Trong kịch bản đó, bạn có thể kéo IP nguồn của bot bị nghi ngờ đánh bạn (thông qua $ _SERVER ['REMOTE_ADDR']), và sau đó thêm IP đó vào bảng danh sách đen cơ sở dữ liệu. Sau đó, trong ứng dụng chính của bạn, bạn có thể kiểm tra IP nguồn, tìm kiếm IP đó trong bảng danh sách đen của bạn và nếu bạn tìm thấy nó, hãy ném một trang 403 để thay thế. (Có thể với thông báo như "Chúng tôi đã phát hiện thấy sự lạm dụng đến từ IP của bạn, nếu bạn cảm thấy điều này là do nhầm lẫn, hãy liên hệ với chúng tôi theo số ...")

Ở phía trên, bạn sẽ tự động bị đưa vào danh sách đen các chương trình xấu. Nhược điểm, nó không phải là khủng khiếp hiệu quả, và nó có thể nguy hiểm. (Một người ngây thơ kiểm tra trang đó tò mò có thể dẫn đến việc cấm một lượng lớn người dùng.)

Chỉnh sửa: Hoặc (giả sử tôi) bạn có thể chỉ cần thêm GeoIP kiểm tra ứng dụng của bạn và từ chối lượt truy cập dựa trên quốc gia xuất xứ.

+6

Bạn có thể có một số loại hình ảnh xác thực để tự động hóa danh sách bỏ cấm cho những người thực sự nhấp vào nó. –

+0

Ooh vâng, ý tưởng hay. –

+0

bạn đã có câu trả lời tốt nhất .. triển khai thực hiện giải pháp này sorta (không lưu trữ trong db), kết hợp nó với gợi ý của Scott và một torcher bot nhỏ. Xem câu trả lời của tôi để biết thêm chi tiết – Mikey1980

1

Những gì bạn có thể làm là lấy một hộp khác (một loại cừu hy sinh) không trên cùng một ống với máy chủ chính của bạn, sau đó lưu trữ trang chuyển hướng đến chính nó (nhưng với tên trang ngẫu nhiên trong url). điều này có thể làm cho bot bị mắc kẹt trong một vòng lặp vô hạn buộc lên cpu và băng thông trên con chiên hy sinh của bạn nhưng không phải trên hộp chính của bạn.

1

Tôi có xu hướng nghĩ rằng đây là vấn đề được giải quyết tốt hơn với bảo mật mạng nhiều hơn mã hóa, nhưng tôi thấy logic trong cách tiếp cận/câu hỏi của bạn.

Có một số câu hỏi và thảo luận về lỗi này trên máy chủ có thể đáng được điều tra.

https://serverfault.com/search?q=block+bots

1

Vâng, tôi phải nói rằng, kinda thất vọng - Tôi đã hy vọng đối với một số ý tưởng sáng tạo. Tôi đã tìm ra giải pháp lý tưởng ở đây .. http://www.kloth.net/internet/bottrap.php

<html> 
    <head><title> </title></head> 
    <body> 
    <p>There is nothing here to see. So what are you doing here ?</p> 
    <p><a href="http://your.domain.tld/">Go home.</a></p> 
    <?php 
     /* whitelist: end processing end exit */ 
     if (preg_match("/10\.22\.33\.44/",$_SERVER['REMOTE_ADDR'])) { exit; } 
     if (preg_match("Super Tool",$_SERVER['HTTP_USER_AGENT'])) { exit; } 
     /* end of whitelist */ 
     $badbot = 0; 
     /* scan the blacklist.dat file for addresses of SPAM robots 
     to prevent filling it up with duplicates */ 
     $filename = "../blacklist.dat"; 
     $fp = fopen($filename, "r") or die ("Error opening file ... <br>\n"); 
     while ($line = fgets($fp,255)) { 
     $u = explode(" ",$line); 
     $u0 = $u[0]; 
     if (preg_match("/$u0/",$_SERVER['REMOTE_ADDR'])) {$badbot++;} 
     } 
     fclose($fp); 
     if ($badbot == 0) { /* we just see a new bad bot not yet listed ! */ 
     /* send a mail to hostmaster */ 
     $tmestamp = time(); 
     $datum = date("Y-m-d (D) H:i:s",$tmestamp); 
     $from = "[email protected]"; 
     $to = "[email protected]"; 
     $subject = "domain-tld alert: bad robot"; 
     $msg = "A bad robot hit $_SERVER['REQUEST_URI'] $datum \n"; 
     $msg .= "address is $_SERVER['REMOTE_ADDR'], agent is $_SERVER['HTTP_USER_AGENT']\n"; 
     mail($to, $subject, $msg, "From: $from"); 
     /* append bad bot address data to blacklist log file: */ 
     $fp = fopen($filename,'a+'); 
     fwrite($fp,"$_SERVER['REMOTE_ADDR'] - - [$datum] \"$_SERVER['REQUEST_METHOD'] $_SERVER['REQUEST_URI'] $_SERVER['SERVER_PROTOCOL']\" $_SERVER['HTTP_REFERER'] $_SERVER['HTTP_USER_AGENT']\n"); 
     fclose($fp); 
     } 
    ?> 
    </body> 
</html> 

Sau đó, để bảo vệ trang ném <?php include($DOCUMENT_ROOT . "/blacklist.php"); ?> trên dòng đầu tiên của mỗi trang ..blacklist.php chứa:

<?php 
    $badbot = 0; 
    /* look for the IP address in the blacklist file */ 
    $filename = "../blacklist.dat"; 
    $fp = fopen($filename, "r") or die ("Error opening file ... <br>\n"); 
    while ($line = fgets($fp,255)) { 
     $u = explode(" ",$line); 
     $u0 = $u[0]; 
     if (preg_match("/$u0/",$_SERVER['REMOTE_ADDR'])) {$badbot++;} 
    } 
    fclose($fp); 
    if ($badbot > 0) { /* this is a bad bot, reject it */ 
     sleep(12); 
     print ("<html><head>\n"); 
     print ("<title>Site unavailable, sorry</title>\n"); 
     print ("</head><body>\n"); 
     print ("<center><h1>Welcome ...</h1></center>\n"); 
     print ("<p><center>Unfortunately, due to abuse, this site is temporarily not available ...</center></p>\n"); 
     print ("<p><center>If you feel this in error, send a mail to the hostmaster at this site,<br> 
      if you are an anti-social ill-behaving SPAM-bot, then just go away.</center></p>\n"); 
     print ("</body></html>\n"); 
     exit; 
    } 
?> 

Tôi định đưa ra lời khuyên của Scott Chamberlain và an toàn để lên kế hoạch triển khai Captcha trên tập lệnh. Nếu người dùng trả lời chính xác thì nó sẽ chỉ die hoặc chuyển hướng trở lại trang gốc. Chỉ để cho vui, tôi đang ném cái bẫy vào một thư mục có tên /admin/ và được thêm vào Disallow: /admin/ vào robots.txt.

EDIT: Ngoài ra tôi đang chuyển hướng các bot bỏ qua các quy tắc để trang này: http://www.seastory.us/bot_this.htm

+2

một cách tiếp cận ngớ ngẩn. nó sẽ giết trang web của bạn nhanh hơn bất kỳ cuộc tấn công ddos ​​nào sẽ làm (mặc dù tôi nghi ngờ bạn đã thấy một trang web). –

Các vấn đề liên quan