ฉันจะหยุดการโจมตีบอทบนไซต์ของฉันได้อย่างไร


14

ฉันมีเว็บไซต์ (สร้างด้วย wordpress) ที่อยู่ภายใต้การโจมตีบอท (ดีที่สุดที่ฉันสามารถบอกได้) ไฟล์ที่มีการร้องขอกว่าและมากกว่าและอ้างอิงเป็น turkyoutube.org/player/player.swf(เกือบทุกครั้ง) ไฟล์ที่ถูกร้องขอนั้นลึกในไฟล์ธีมของฉันและตามด้วย " ?v=" และสตริงยาว ๆ (เช่นr.php?v=Wby02FlVyms&title=izlesen.tk_Wby02FlVyms&toke)

ฉันได้ลองตั้งค่ากฎ. htaccess สำหรับผู้อ้างอิงนั้นซึ่งดูเหมือนว่าจะใช้งานได้ยกเว้นตอนนี้หน้า 404 ของฉันกำลังโหลดซ้ำแล้วซ้ำอีกซึ่งยังคงใช้แบนด์วิดท์จำนวนมาก มีวิธีสร้างกฎ. htaccess ที่ไม่ต้องการใช้แบนด์วิดท์ในส่วนของฉันหรือไม่?

ฉันพยายามสร้างไฟล์ robots.txt ด้วย แต่ดูเหมือนว่าการโจมตีจะไม่สนใจสิ่งนั้น

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

2
การโจมตีมาจาก IP เดียวกันทุกครั้งหรือไม่
Ben Hoffman

.htaccessกฎของคุณตั้งใจเปิดไฟล์ 404 หรือไม่ ดูเหมือนว่าการโยนข้อผิดพลาดปฏิเสธสิทธิ์ธรรมดาจะเป็นการใช้แบนด์วิดท์น้อยลง
artlung

นี่คือส่วนที่เกี่ยวข้องของไฟล์. htaccess: RewriteCond% {HTTP_REFERER} turkyoutube \ .org [NC] RewriteRule. * - [F]
Travis Northcutt

อย่างไรก็ตามแม้ว่าบันทึกการเข้าถึงของฉันจะแสดง "Http Code: 404" ดูเหมือนว่าการใช้แบนด์วิดท์ของฉันจะหยุดลงเมื่อฉันทำการเปลี่ยนแปลง. htaccess
Travis Northcutt

คุณมี.htaccessรหัสที่คุณโพสต์ก่อนหรือหลัง.htaccessกฎของเวิร์ดเพรสหลักหรือไม่?
artlung

คำตอบ:


8

วิธีการประลอง corbomiteเล็กน้อย?

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

หมายเหตุยังไม่ได้ทดสอบแต่ควรเปลี่ยนเส้นทางคำขอจากพวกเขากลับไปยังตัวเองด้วย401 Not Authorizedรหัสสถานะ นั่นคือถ้าบอทจัดการกับการเปลี่ยนเส้นทาง (ไม่น่าเป็นไปได้มาก) แต่มันจะยังเห็นรหัสสถานะ รหัสสถานะ 404 อาจมีประสิทธิภาพมากกว่า คนใดคนหนึ่งควรบอกบอทว่ามันอาจจะยอมแพ้

กฎที่คุณโพสต์ในความคิดเห็นนั้นก็เพียงพอแล้วหากคุณขยายการแสดงออกเพื่อให้ตรงกับโฮสต์อีกเล็กน้อย ฉันใช้สิ่งที่ใกล้เคียง (เท่าที่กฎจริง) เพื่อบล็อกการจับคู่ตัวแทนผู้ใช้libwww-perl:

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

คุณพบว่าบอตจำนวนมากมี HTTP_USER_AGENT = libwww-perl หรือไม่ ดูเหมือนว่าสิ่งที่บอทส่วนใหญ่จะโกหก
เลียม

@ เลียม - น่าแปลกใจที่มีเปอร์เซ็นต์ที่ดีของพวกเขาไม่เคยพยายามที่จะปลอมตัวเป็นเบราว์เซอร์ที่แท้จริง ฉันคิดว่ามันก็แปลกเหมือนกัน :)
Tim Post

โปรดทราบว่าคุณใช้ regex ช้ามากที่นี่ .*$เทียบเท่ากับอะไรซึ่งเป็นจำนวนมากได้เร็วขึ้น นอกจากนี้ยังRewriteRule .* - [F,L]ไม่จำเป็นต้องมี*เนื่องจากคุณไม่สนใจรายการต่อไป
Alexis Wilke

2

นอกเหนือจากการปิดกั้น IP ฉันจะพิจารณาไฟล์ที่มีการร้องขอ มันเป็นเรื่องธรรมดาสำหรับระบบโอเพ่นซอร์สเช่น WordPress และ Joomla เพื่อหาช่องโหว่ซึ่งเป็นสาเหตุหนึ่งที่ทำให้พวกเขาอัพเดทบ่อยครั้ง หากคุณละเลยการอัปเดตบางอย่างอาจเป็นไปได้ว่ามีใครบางคนเจาะเว็บไซต์ของคุณ

ฉันเคยมีสถานการณ์นั้นเกิดขึ้นกับฉันสองครั้งครั้งหนึ่งในเว็บไซต์ทดสอบที่ไม่เคยติดตั้งอย่างสมบูรณ์ (แต่ถูกทิ้งไว้) และอีกครั้งในเว็บไซต์ของ บริษัท ที่พนักงานที่สามารถเข้าถึง "snuck" phpBB สำหรับครอบครัวของเขาได้ เพื่อสื่อสาร - การอัพเดตจะช่วยป้องกันปัญหา ในทั้งสองกรณีพบปัญหากับการวิเคราะห์เนื่องจากดูเหมือนว่าอาจเป็นจริงในกรณีของคุณ การจู่โจม Joomla ส่งผลให้จาวาสคริปต์ที่ทำให้เบราว์เซอร์ของผู้ใช้โหลดซอฟต์แวร์ในขณะที่แฮกเกอร์อนุญาตให้อัพโหลดไฟล์ไปยังเซิร์ฟเวอร์ซึ่งเป็นส่วนหนึ่งของเว็บไซต์ google "ทางเลือก" แบบกระจายที่นำผู้ใช้ไปสู่ ​​p * rn ทุกครั้ง แม้ว่าจะไม่ใช่แฮ็คทั่วไปก็ตามให้ตรวจสอบตารางผู้ใช้ DB ของคุณในกรณีนี้

แน่นอนว่าฉันไม่ได้ตั้งใจที่จะปลุก แต่มันไม่เคยเจ็บปวดที่จะใช้เวลาขุดผ่านเว็บไซต์ของคุณเป็นครั้งคราวเพื่อที่จะได้รู้ว่าเกิดอะไรขึ้น บางครั้งคุณจะประหลาดใจในสิ่งที่คุณค้นหา


ฉันคิดว่านี่เป็นสิ่งที่เกิดขึ้นจริง ดูเหมือนว่าไฟล์ที่ร้องขอไม่ควรอยู่ที่นั่น ขอบคุณผู้ร่วมสนับสนุนเวิร์ดเพรสหลักที่เป็นมิตรติดต่อฉันดังนั้นฉันรู้สึกว่าเราจะหาได้
Travis Northcutt

1

หากการโจมตีมาจากหมายเลข IP เดียวกันทุกครั้ง (หรือชุดหมายเลข IP ขนาดเล็ก) คุณควรบล็อกหมายเลข IP นั้นในไฟร์วอลล์ของคุณ ไม่ควรใช้แบนด์วิดท์หรือโหลดบนเว็บเซิร์ฟเวอร์ของคุณ

หากคุณกำลังโฮสต์บนเครื่อง Linux ที่คุณมีสิทธิ์เข้าถึงรูทของบทความนี้จะอธิบายวิธีการทำเช่นนี้


มันไม่ได้มาจาก IP เดียวกันทุกครั้ง
Travis Northcutt

0

ฉันใช้ DenyHosts [1] กับเซิร์ฟเวอร์ของฉันทั้งหมด DenyHosts ไม่อนุญาต IP ทั้งหมดที่ล้มเหลวในการเข้าสู่ระบบหลังจาก n ครั้ง นอกจากนี้คุณยังสามารถส่งการแจ้งเตือน ดังนั้นคุณจึงมีภาพรวมที่ดีจากการเข้าสู่ระบบของ ips / โฮสต์ และยังมีฟังก์ชั่นอัพเดทเว็บและคุณสมบัติที่ยอดเยี่ยมอื่น ๆ แต่ก็ยังติดตั้งได้ง่ายมาก

อีกวิธีหนึ่งคือการไม่อนุญาตช่วง / บล็อก IP ทั้งหมด (ในตัวอย่าง) จากประเทศจีนหรือประเทศอื่น ๆ ที่ไม่ใช่กลุ่มเป้าหมายของคุณ ซึ่งสามารถทำได้ด้วย "บัญชีดำ" ออนไลน์หรือเพียงแค่ไฟล์ hosts.deny (เช่น DenyHosts)

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


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.