การลด Bad Bot อย่างง่ายด้วย Signal Sciences
มีกิจกรรมบอทมากมายบนอินเทอร์เน็ต ใครก็ตามที่ได้รับมอบหมายให้ปกป้องเว็บไซต์ที่มีการเข้าชมสูงจะรู้เรื่องนี้ดี บอทบางตัวนั้นดีและเป็นที่ต้องการ ลองนึกถึงโปรแกรมรวบรวมข้อมูลของเครื่องมือค้นหา บอทบางตัวไม่เป็นอันตราย เช่น สคริปต์ทำการเรียก API หรือตรวจสอบความพร้อมใช้งานของไซต์ แต่บ่อยครั้ง บอทสามารถสร้างความรำคาญที่ส่งผลกระทบต่อประสิทธิภาพการทำงานหรือเป็นอันตรายโดยสิ้นเชิง นี่คือบอทที่ "ไม่ดี" ที่คุณต้องการให้คุณสามารถบล็อกได้อย่างง่ายดายและไม่จัดการอีกต่อไป ในโพสต์นี้ ฉันต้องการแบ่งปันวิธีการอัตโนมัติแบบง่ายๆ เพื่อปรับใช้การลดบอทที่ไม่ดีได้ค่อนข้างดีโดยใช้ไฟร์วอลล์แอปพลิเคชันเว็บ Signal Sciences (WAF)
การกำหนดประเภทบอท
ก่อนที่ฉันจะลงรายละเอียด ฉันขอเสนอวิธีนิยามบอทและบอทที่ไม่ดี บอทคือไคลเอนต์ที่ส่งคำขอมายังไซต์ของคุณซึ่งไม่ใช่มนุษย์ซึ่งใช้งานเว็บเบราว์เซอร์สมัยใหม่ ดังนั้นบอทจึงเป็นสคริปต์ เครื่องมือบรรทัดคำสั่ง โปรแกรม มัลแวร์ ฯลฯ ที่ทำงานโดยอัตโนมัติหรือถูกเรียกใช้โดยมนุษย์ สิ่งที่ทำให้บอทไม่ดีคือพฤติกรรมของมัน ตัวอย่างเช่น กำลังส่งเพย์โหลดที่เป็นอันตรายหรือการตรวจสอบหาไดเร็กทอรีและไฟล์ส่วนตัวหรือไม่
ตัวอย่างคำขอของ Bot:
ตัวอย่างคำขอ Bad Bot:
ระบุบอท
ขั้นตอนแรกคือการระบุบ็อตที่อาจกำลังตรวจสอบ รวบรวมข้อมูล หรือเจาะที่ไซต์ของคุณ เพื่อให้ทุกอย่างเรียบง่าย เราสามารถใช้วิธีการพื้นฐานในการระบุบ็อต — เพียงแค่พิจารณาจากความยาวสตริงของ user-agent สตริงตัวแทนผู้ใช้คือส่วนหัวของคำขอซึ่งกำหนดโดยไคลเอ็นต์ ซึ่งช่วยให้เซิร์ฟเวอร์และเครือข่ายเพียร์สามารถระบุได้ มนุษย์ทั่วไปที่ใช้เบราว์เซอร์สมัยใหม่จะมีความยาวสตริงของ user-agent ขั้นต่ำเป็นจำนวนหนึ่งเสมอx แม้ว่าบอทสามารถปลอมแปลงสตริง user-agent ได้ แต่บอทส่วนใหญ่ทำไม่ได้ สตริง user-agent มักจะสั้นกว่าสตริง user-agent ของเบราว์เซอร์มาก ผลก็คือ เราสามารถสันนิษฐานได้ว่าxลบจำนวนn บาง ตัวไม่ใช่มนุษย์ — มันคือบอท คุณสามารถกำหนดเกณฑ์ของคุณได้ว่าxและnควรเป็นอย่างไร
มีแหล่งข้อมูลมากมายบนอินเทอร์เน็ตที่คุณสามารถค้นหารายการสตริง user-agent ได้ นี่คือตัวอย่างหนึ่งในแหล่งที่มาเหล่านี้:
- https://useragentstring.com/pages/Chrome/
- https://useragentstring.com/pages/Firefox/
- https://useragentstring.com/pages/Edge/
เมื่อใช้กฎและสัญญาณนี้ การตรวจสอบข้อมูลที่สร้างขึ้นในช่วงเวลาหนึ่งจะคุ้มค่า มันสามารถให้การมองเห็นการเข้าชมที่น่าสนใจที่คุณอาจไม่เคยรู้มาก่อน
ตัวอย่างผลลัพธ์จากกฎของ Bot:
สำหรับคำอธิบายโดยย่อของกฎระดับองค์กรและกฎระดับไซต์ หากคุณไม่คุ้นเคยกับแนวคิด กฎที่ใช้ในระดับองค์กรสามารถนำไปใช้กับทุกไซต์ที่เรียกใช้ตัวแทน Signal Sciences กฎที่ใช้ในระดับไซต์จะถูกนำไปใช้ในตัวแทนสำหรับไซต์นั้นๆ เท่านั้น ใช้ตัวเลือกที่เหมาะสมที่สุดในสภาพแวดล้อมของคุณ
ระบุบอทที่ไม่ดี
ตอนนี้คุณสามารถระบุบอทได้แล้ว พวกมันมีพฤติกรรมอย่างไร? ใน Signal Sciences เราสามารถสร้างระดับองค์กรง่ายๆ เพื่อกำหนดพฤติกรรมที่ไม่ดีสำหรับบอทได้ เงื่อนไขแรกสำหรับกฎนี้จะค้นหาสัญญาณของ Bot และเงื่อนไขที่สองจะค้นหาจำนวนของการโจมตี ความผิดปกติ หรือสัญญาณที่กำหนดเอง คุณสามารถปรับกฎได้อย่างง่ายดายเพื่อรวมสัญญาณที่เหมาะสมที่สุดสำหรับสถานการณ์ของคุณ ในตัวอย่างด้านล่าง เรายังรวมรายการ IP ที่ตรงกับข้อมูลภัยคุกคามของ Intel เพื่อสรุปกฎ หากเป็นบอทและกำลังทำสิ่งที่ไม่ดีจำนวนหนึ่ง แสดงว่าเป็นบอทที่ไม่ดี และเพิ่มสัญญาณ "Bad Bot" ในคำขอ
ตัวอย่างผลลัพธ์จากกฎ Bad Bot:
การบังคับใช้
ขั้นตอนสุดท้ายคือการสร้างกฎการบังคับใช้ ไม่ว่าจะเป็นกฎการจำกัดอัตราหรือกฎการบล็อก โปรดทราบว่ามีการใช้กฎการจำกัดอัตราที่ระดับไซต์ กฎการบล็อกสามารถใช้ได้ที่ระดับองค์กรหรือระดับไซต์ และจะบล็อกการรับส่งข้อมูลทั้งหมดด้วยสัญญาณ Bad Bot ใช้ความระมัดระวังกับการบล็อกระดับนี้ พิจารณาตรวจสอบข้อมูลเมื่อเวลาผ่านไปเพื่อให้มั่นใจว่ากฎการบล็อกจะไม่ส่งผลกระทบต่อทราฟฟิกการผลิตที่ถูกต้องตามกฎหมาย อีกทางหนึ่ง กฎการจำกัดอัตราจะให้ความยืดหยุ่นในการกำหนดระดับความอดทนของคุณก่อนที่จะบล็อกทราฟฟิก Bad Bot ในตัวอย่างด้านล่าง เงื่อนไขของกฎการจำกัดอัตราอยู่ในคำขอใดๆ ที่มีสัญญาณ Bad Bot และจะเริ่มบล็อกหลังจากเห็นสัญญาณ Bad Bot 10 รายการภายใน 1 นาที การตัดสินใจปิดกั้นจะมีผลเป็นเวลา 5 นาที เกณฑ์การนับและระยะเวลาการดำเนินการสามารถปรับเปลี่ยนเป็นค่าที่คุณต้องการได้อย่างง่ายดาย
บทสรุป
การใช้ประโยชน์จากความยาวสตริงของ user-agent สำหรับการตรวจจับบ็อตเป็นวิธีการง่ายๆ และจากประสบการณ์ของฉัน มีประสิทธิภาพในการระบุการเข้าชมส่วนใหญ่ของบ็อต ด้วยการกำหนดความยาวสตริงของ user-agent สำหรับสถานการณ์ของคุณ การระบุพฤติกรรมที่ไม่ดี และการใช้การจำกัดอัตรา คุณจะเริ่มต้นได้อย่างมั่นคงในการลดทราฟฟิกบอทที่ไม่ต้องการ Signal Sciences ทำให้แนวทางนี้ง่ายต่อการใช้งานด้วยความสามารถของกฎ อย่างไรก็ตาม หากคุณไม่มี Signal Sciences เมื่อพิจารณาจากแนวทางง่ายๆ นี้แล้ว การสำรวจความสามารถของเครื่องมือที่คุณมีอยู่เพื่อระบุบ็อต บอตที่ไม่ดี และการบังคับใช้ก็คุ้มค่า