วิธีการแฮ็กเกอร์ให้ช้าลง


17

ตัวย่อสคริปต์บางตัวในเดลีประเทศอินเดียพยายามแฮ็คไซต์ของเราตั้งแต่เมื่อคืน เขาเขียนสคริปต์ของเบราว์เซอร์ที่ทำให้คำขอเซิร์ฟเวอร์ของเราเป็นลูปซ้อนกันขนาดใหญ่พยายามทุกอย่างภายใต้ดวงอาทิตย์

เขาไม่ได้เดินทางไปไหนและไม่ผ่านมาแม้แต่การป้องกันขั้นพื้นฐานของเรา (แต่เขากำลังเติมไฟล์บันทึกของเรา)

เราส่งกลับ403 Unauthorizedไปที่คำขอของเขาเกือบจะทันทีที่เข้ามา แต่ยิ่งเราบล็อกคำขอของเขาได้เร็วเท่าใดสคริปต์ของเขาก็จะทำงานเร็วขึ้นเท่านั้น

เราขอแนะนำ "การหน่วงเวลา" ของการจัดเรียงบางอย่างก่อนส่งการตอบกลับ 403 กลับ ยิ่งยาวยิ่งดี

คำถาม:เราจะหน่วงเวลาการแฮ็คโดยไม่ส่งผลกระทบต่อส่วนที่เหลือของไซต์ได้อย่างไร

  • ฉันคิดว่าการนอนหลับ (15,000) ในหัวข้อของเขาจะเป็นข่าวร้ายสำหรับผู้เข้าชมเว็บไซต์อื่น ๆ
  • การปั่นด้ายใหม่ให้กับเขาดูเหมือนจะเกินความจริง
  • มีวิธีอื่นในการส่งการตอบกลับล่าช้าหรือไม่
  • เราจะบังคับให้เบราว์เซอร์ของเขารอนานเท่าไร ฉันคิดว่าฉันไม่สนใจมากถ้าเขาได้รับ403 Unauthorizedข้อผิดพลาดหรือหมดเวลาในที่สุดดังนั้นเราอาจจะรอไม่ จำกัด / ไม่มีที่สิ้นสุด

36
มีเหตุผลที่คุณไม่สามารถกำหนดค่าไฟร์วอลล์เพื่อลดทราฟฟิกที่มาจากที่อยู่ IP ของเขาได้หรือไม่? ปัญหานี้จะแก้ไขได้ดีกว่าในระดับเครือข่ายกว่าระดับแอปพลิเคชัน การรับส่งข้อมูลที่ลดลงจะหมายความว่าเขาจะต้องนั่งที่นั่นจนกว่าการร้องขอการเชื่อมต่อหมดเวลา และการไม่ตอบสนองนั้นมีประสิทธิภาพมากกว่าการทิ้งคำตอบ "ไม่ได้รับอนุญาต" กลับมาเพราะมันทำให้เขาไม่มีข้อมูลที่จะตรวจสอบได้อย่างมีประสิทธิภาพ
cdhowie

3
ทำไมไม่เพียงแค่บล็อกไอพีของเขา
โฮแกน

2
ถอดปลั๊กเซิร์ฟเวอร์ของคุณ
อิบราฮิมฮาชิมิ

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

@ ล่าช้าการถอดปลั๊กเซิร์ฟเวอร์ของคุณเป็นหนึ่งในสิ่งที่แย่ที่สุดที่คุณสามารถทำได้ นอกจาก DoSing ด้วยตัวคุณเองโปรดดูที่security.stackexchange.com/q/181/33
AviD

คำตอบ:


37

ควรมีไฟร์วอลล์แยกต่างหากที่หน้าเว็บเซิร์ฟเวอร์ของคุณ คุณต้องการบล็อกคำขอไม่ให้เข้าถึงเซิร์ฟเวอร์ของคุณเช่น IP ของเขาที่เกี่ยวข้องกับเซิร์ฟเวอร์ของคุณไม่มีอยู่อีกต่อไป


1
สวัสดีโจเอลนี่คือคำตอบที่ "ยอมรับ" แต่เนื่องจากคำถามถูกถ่ายโอนจาก StackOverflow ดูเหมือนว่าฉันไม่มีสิทธิ์ที่จะยอมรับมันจริง ๆ ฉันให้คำตอบของคุณ +1 นี่คือสิ่งที่ฉันจะทำ
Flipster

2
@flip คลิกที่ชื่อของคุณจากนั้นคลิกลิงก์ 'บัญชี' ที่ด้านขวาของหน้าเว็บ ซึ่งจะช่วยให้คุณสามารถเชื่อมโยงสิ่งนี้กลับไปยังบัญชีสแต็คล้นของคุณและรับสิทธิ์การเป็นเจ้าของคำถามอีกครั้ง
Joel Coel

1
แต่คุณต้องการดำเนินการโดยอัตโนมัติ - ไม่มีประเด็นในการจัดการกับปัญหาดังกล่าวเป็นกรณี ๆ ไป (ดูคำตอบของฉัน)
Unreason

5

มีระบบตรวจจับการบุกรุกจริงทั้งเล็กและใหญ่ที่จะทำสิ่งนี้โดยอัตโนมัติสำหรับคุณขึ้นอยู่กับตัวกรองต่างๆ honeypots และกลไกอื่น ๆ

ตัวอย่างเช่นดูfail2banซึ่งสามารถกำหนดค่าให้ดำเนินการตามการวิเคราะห์บันทึก

วิธีนี้คุณสามารถ

  • กรองที่อยู่ IP เดียวได้อย่างง่ายดายซึ่งการโจมตีกำลังมาโดยไม่ส่งผลกระทบต่อผู้ใช้ไซต์ของคุณ
  • คุณสามารถเขียน regex ของคุณเองเพื่อวิเคราะห์บันทึก
  • คุณสามารถกำหนดการกระทำของคุณเอง (เค้นแทนการห้าม ฯลฯ )

มีเครื่องมืออื่น ๆ และใหญ่กว่านี้ให้ดูในส่วนของวิกิพีเดีย

ตามคำถามของคุณถูกทำเครื่องหมายเป็น asp.net ฉันถือว่าแพลตฟอร์มเซิร์ฟเวอร์ของคุณเป็น windows ยังถ้าใช้ไฟร์วอลล์ linux เป็นตัวเลือกคุณสามารถลองข้างต้น

  • ใส่ไฟร์วอลล์ linux ระหว่าง WAN และเซิร์ฟเวอร์ของคุณ
  • ให้การเข้าถึงเครื่องไฟร์วอลล์กับบันทึก IIS ของคุณ
  • เขียน regex เพื่อวิเคราะห์มัน
  • เสียบเข้ากับเทมเพลตที่มีอยู่เพื่อการแบน

ไฟร์วอลล์ดังกล่าวสามารถทำงานได้บนฮาร์ดแวร์ที่เรียบง่ายที่สุด - คิดว่าแม้แต่บางอย่างเช่นเราเตอร์ Linksys (ดูที่นี่ ) สำหรับแบนด์วิดท์ลิงก์ที่ดีมาก


4

หากพวกเขามาจากที่อยู่ IP ที่เฉพาะเจาะจงหรือบล็อกที่อยู่คุณอาจต้องการเพิ่มเส้นทาง blackhole ไปที่:

ip ro add blackhole 10.69.96.0/24
ip ro flush cache

คุณยังสามารถทำสิ่งนี้ได้โดยใช้กฎ iptables แต่ตระหนักว่ากฎ iptables นั้นถูกสำรวจแบบเป็นเส้นตรงดังนั้นหากคุณเริ่มเพิ่มกฎ iptables สำหรับทุก ๆ ตารางการจัดเส้นทางถูกปรับให้เหมาะสมสำหรับการจัดการรายการจำนวนมาก ตัวอย่างเช่นหนึ่งในกล่องของฉันมีรายการ 350K อยู่ในตารางเส้นทางของมันโดยไม่มีปัญหา แต่ถ้าฉันมีกฎ iptables 3K กล่องก็จะล้มลงอย่างแน่นอน

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


1
+1 ฉันชอบข้อมูลของคุณเกี่ยวกับประสิทธิภาพที่สัมพันธ์กันของการกำหนดเส้นทางกับ netfilter ในสถานการณ์นี้ iptablesบนเคอร์เนลที่มีipsetความสามารถสามารถจับคู่รายการที่อยู่ IP ขนาดใหญ่ได้อย่างมีประสิทธิภาพ แต่ดูเหมือนว่าไม่มี distros สำคัญใด ๆ ที่เปิดใช้งานipsetในเมล็ดของพวกเขา
Steven Monday

จุดดี ipset เป็นสิ่งที่ดูเหมือนว่ามันจะมีประโยชน์สำหรับสิ่งต่าง ๆ เหล่านี้ แต่ก็ไม่พร้อมใช้งาน มีระบบอื่นที่เรียกว่า NF-HIPAC ว่าเป็นเครื่องมือเพิ่มประสิทธิภาพ iptables ทั่วไปมากขึ้น แต่การโพสต์สุดท้ายในรายการทางไปรษณีย์และการเปิดตัวสุดท้ายคือจากปี 2005
ฌอน Reifschneider

3

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


2

สิ่งที่คุณกำลังมองหาคือ Apache module mod_evaisve

บน Distros ที่ใช้ Debian ให้ติดตั้งโดยใช้

apt-get install libapache2-mod-evasive

CentOS / RHEL

yum install mod_evasive

mod_evasive คอยติดตามคำขอที่มาถึง Apache และแบนไอพีโดยใช้ iptables ที่ผ่านค่าเกณฑ์ มันเป็นเครื่องมือที่ดีที่สุดสำหรับการโจมตี DoS ที่ใช้ HTTP และแม้แต่การโจมตี DoS แบบกระจายเมื่อคุณถูกโจมตีโดยบ็อตเน็ตขนาดใหญ่ที่มี IP หลายพันตัว

รันเป็นโมดูล Apache ที่โหลดระหว่างรันไทม์และไม่แยกเป็น daemon

แม้ว่าผู้โจมตีอัจฉริยะที่ควบคุมบ็อตเน็ตขนาดใหญ่ยังคงสามารถทำลายเว็บเซิร์ฟเวอร์ของคุณได้โดยกำหนดเวลาคำร้องขอที่ส่งมาจากซอมบี้แต่ละตัวในบ็อตเน็ตเพื่อไม่ให้ IP ใดที่ผ่านค่าเกณฑ์

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


0

หากคุณใช้ linux ให้ใช้ iptables เพื่อ จำกัด คนที่ชอบ 1 ไบต์ / วินาทีด้วยความล่าช้าขนาดใหญ่และทำให้เขาใช้ตลอดไปเพื่อรับคำขอเดียว หากมีการแจกจ่ายนั่นจะไม่ช่วยอะไรมาก

ฉันไม่แน่ใจว่าคุณจะใช้ Windows ได้อย่างไร แต่คุณอาจพบตัวเลือกที่คล้ายกันในเราเตอร์หรือฮาร์ดแวร์ไฟร์วอลล์หากคุณมีตัวเลือก

แก้ไข: เห็นด้วยกับข้างต้นนี้เป็นเหมือนคำถามข้อผิดพลาดเซิร์ฟเวอร์


2
เทคนิคนี้บางครั้งใช้ในการโจมตี DDoS - โดยผู้โจมตี การทำสิ่งนี้บนเซิร์ฟเวอร์เป็นสิ่งที่ต่อต้าน <_ <
p-static

ไม่ถูกต้องที่จะบอกว่ามันถูกใช้ในการโจมตี DDoS - เอฟเฟกต์นี้คือเป้าหมายของการโจมตี DDoS ทำบนเซิร์ฟเวอร์ / ไฟร์วอลล์ แต่เฉพาะการโจมตีคอมพิวเตอร์เป็นเพียงการป้องกันที่แท้จริง (AFAIK)
ไม่มีเหตุผล

0

หากที่อยู่ IP ของค่าคงที่ของคนที่แต่งตัวประหลาดคุณสามารถสร้าง HttpModule ที่กำหนดเองได้ให้ทำการเชื่อมต่อผ่านการเปลี่ยนแปลงในไฟล์ web.config และมีการหน่วงเวลาเมื่อมันได้รับการยอมรับว่าเป็นที่อยู่ IP นี้ หรือคุณสามารถส่งรหัส 404 กลับมาให้เขาหรือให้เขาเปลี่ยนเส้นทางไปที่อื่น


0

คุณรู้ว่าพวกเขาอยู่ในอินเดีย เว็บไซต์ของคุณมีผู้อุปถัมภ์ชาวอินเดียจำนวนมากหรือไม่ซึ่งจะ จำกัด เพียงการบล็อกช่วง IP ทั้งหมดที่ระดับไฟร์วอลล์โดยเพิ่มขึ้นเรื่อย ๆ จนกว่าโฟลว์หยุดทำงานหรือไม่ ไม่ใช่วิธีแก้ปัญหาที่แน่นอน แต่ถ้าคุณแค่จัดการกับ 'script kiddie' ทั่วไปมันน่าจะเพียงพอที่จะทำให้หมดกำลังใจและส่งไปยังเป้าหมายอื่น

ยิ่งไปกว่านั้นถ้ามันมาจาก IP เดียวคุณสามารถตอบกลับด้วยการปฏิเสธบริการโจมตีของคุณเอง :)


นั่นไม่ใช่วิธีแก้ปัญหาอย่างแท้จริงตัดวุ้นด้วยขวาน และ B, DDOS ไม่ใช่ข้อเสนอแนะที่ดีจริงๆ (แม้ว่าฉันคิดว่าคุณล้อเล่น), ไม่มีเหตุผลที่จะทำ) ทำ smth illagel b) เพิ่มภาระบนเซิร์ฟเวอร์ของคุณ!
Trufa

0

นอกเหนือจากคำตอบที่คุณได้รับคุณจะต้องบันทึกเอกสารของคุณ (บันทึกการติดตาม) และส่งไปยังผู้ให้บริการของคุณ สิ่งนี้มีประสิทธิภาพมากที่สุดในระหว่างเกิดเหตุการณ์เนื่องจากผู้ให้บริการของคุณสามารถเป็นสักขีพยานการจู่โจม แม้ว่าคุณจะประสบความสำเร็จในการวัดผลของคุณเป็นสิ่งสำคัญที่จะลดความพยายามเพิ่มเติมและช่วยให้ผู้ให้บริการของคุณในการเพิ่มการร้องขอไปยังผู้ให้บริการของผู้โจมตี; การกระทำที่มีประสิทธิภาพมากที่สุดคือผู้ให้บริการของผู้โจมตีที่จะปฏิเสธการให้บริการแก่ลูกค้าของเขาผู้โจมตีที่ระบุ


0

หากโปรแกรมเมอร์ของคุณคุณสามารถทำงานกับเหตุการณ์. net Begin_Request และวาง "สลีป" ไว้ที่นั่น

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