ฉันจะตรวจจับ Slowloris ได้อย่างไร?


14

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

ขอบคุณ

คำตอบ:


5

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

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

นี่คือข้อมูลเพิ่มเติม: http://ha.ckers.org/blog/20090617/slowloris-http-dos/


10

ระดับ 1: DOS ช้า ๆ ง่าย ๆ


เพื่อค้นหาที่อยู่ ip ของผู้โจมตี slowloris ฉันใช้บรรทัดคำสั่งต่อไปนี้:

netstat -ntu -4 -6 |  awk '/^tcp/{ print $5 }' | sed -r 's/:[0-9]+$//' |  sort | uniq -c | sort -n

นี่จะทำให้คุณมีจำนวนการเชื่อมต่อที่ใช้งานอยู่สำหรับ IP ที่เชื่อมต่อแต่ละรายการ

หากคุณอยู่ภายใต้การจู่โจมของ DOS ง่าย ๆ ตัวเล็ก ๆ ที่มี IP หนึ่งหรือสองสามตัวที่มีการเชื่อมต่อ 50-100 (หรือมากกว่า) นั้นน่าจะเป็นผู้โจมตีที่ช้าที่สุดที่คุณสามารถปล่อยได้

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

การเพิ่มเวลาประมวลผล (อาร์กิวเมนต์% D หรือ% T) ในบันทึก apache ของคุณอาจช่วยตรวจจับการโจมตีช้า "postmortem" โดยการวิเคราะห์บันทึกหากคุณไม่มีข้อมูลนี้ในบันทึกของคุณคุณจะไม่พบสิ่งที่น่าสนใจ . ดูhttp://httpd.apache.org/docs/current/mod/mod_log_config.htmlสำหรับบันทึกการกำหนดค่า

ระดับ 2: DDOSL ขนาดใหญ่จริง ๆ


netstat (ใช้ watch netstat เพื่อรีเฟรช) ยังคงช่วยให้คุณเห็นว่า IP บางตัวเชื่อมต่ออยู่เสมอ

ในการต่อสู้กับ slowloris บน apache ให้ติดตั้งโมดูล reqtimeout และตั้งค่าตัวอย่าง:

http://pastebin.com/3BNNwfyb

หลังจากนั้นทุก 408 ที่คุณเห็นใน access_log คือ 99.999% แน่ใจว่า ip ของผู้โจมตีช้า

ด้วยการใช้ reqtimeout apache module คุณสามารถยืนหยัดต่อสู้กับหลายพัน ips และหลายพันแพ็กเก็ต / วินาทีบนเซิร์ฟเวอร์เฉพาะที่เหมาะสม

Iptables สามารถช่วยเล็กน้อยกับสิ่งที่ชอบ:

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j DROP
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.