2 คะแนน โดย GN⁺ 2025-04-30 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ทราฟฟิกบนเว็บส่วนใหญ่มาจากบอต และบางส่วนถูกใช้เพื่อจุดประสงค์ที่เป็นอันตราย
  • Zip Bomb เป็นไฟล์บีบอัดขนาดเล็ก แต่เมื่อแตกไฟล์แล้วสามารถขยายเป็นไฟล์ขนาดใหญ่มากจนทำให้เซิร์ฟเวอร์ทำงานหนักเกินไปได้
  • เทคโนโลยีการบีบอัดถูกใช้เพื่อส่งข้อมูลบนเว็บอย่างมีประสิทธิภาพ และบอตก็ใช้ประโยชน์จากสิ่งนี้เช่นกัน
  • เมื่อตรวจพบบอตที่เป็นอันตราย เซิร์ฟเวอร์จะส่งไฟล์ที่บีบอัดด้วย gzip เพื่อทำให้บอตใช้งานไม่ได้
  • Zip Bomb ไม่ใช่วิธีแก้ปัญหาที่สมบูรณ์แบบ แต่มีประสิทธิภาพในการป้องกันบอตแบบง่าย

การใช้ Zip Bomb เพื่อปกป้องเซิร์ฟเวอร์

  • ทราฟฟิกบนเว็บส่วนใหญ่มาจากบอต และบางส่วนถูกใช้เพื่อจุดประสงค์ที่เป็นอันตราย
  • บอตที่เป็นอันตรายสามารถค้นหาช่องโหว่ของเซิร์ฟเวอร์และแทรกสคริปต์อันตรายเพื่อเปลี่ยนเซิร์ฟเวอร์ให้กลายเป็น botnet ได้
  • Zip Bomb เป็นไฟล์บีบอัดขนาดเล็ก แต่เมื่อแตกไฟล์แล้วสามารถขยายเป็นไฟล์ขนาดใหญ่มากจนทำให้เซิร์ฟเวอร์ทำงานหนักเกินไปได้

การประยุกต์ใช้เทคโนโลยีการบีบอัด

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

วิธีสร้าง Zip Bomb

  • ใช้คำสั่ง dd เพื่อสร้างข้อมูลขนาด 10GB แล้วบีบอัดด้วย gzip ให้กลายเป็นไฟล์ขนาด 10MB
  • เมื่อเซิร์ฟเวอร์ตรวจพบคำขอที่เป็นอันตราย ก็จะส่งไฟล์ Zip Bomb ขนาด 10MB เพื่อทำให้บอตใช้งานไม่ได้

ข้อจำกัดของ Zip Bomb

  • Zip Bomb ไม่ใช่วิธีแก้ปัญหาที่สมบูรณ์แบบ และบอตบางตัวอาจตรวจจับและหลบเลี่ยงได้
  • อย่างไรก็ตาม มันมีประสิทธิภาพในการป้องกันบอตแบบง่าย และเป็นเครื่องมือที่มีประโยชน์สำหรับการปกป้องเซิร์ฟเวอร์

บทความที่เกี่ยวข้อง

  • วิธีจัดการคำขอเว็บ 1.3 ล้านรายการ
  • การเปลี่ยนลายเซ็นเซิร์ฟเวอร์ Apache
  • การปฏิบัติตาม Do Not Track ใน Google Analytics

1 ความคิดเห็น

 
GN⁺ 2025-04-30
ความคิดเห็นบน Hacker News
  • จำได้ว่าตอนเด็กเคยแกล้งทำ ln -s /dev/zero index.html บนโฮมเพจของตัวเอง ตอนนั้นเบราว์เซอร์ไม่ชอบสิ่งนี้ และบางครั้งก็ทำให้ระบบค้างหรือดับไปเลย
    • ต่อมาเบราว์เซอร์เริ่มตรวจสอบคอนเทนต์จริง จึงหยุดคำขอแบบนี้
  • ทุกวันนี้เบราว์เซอร์แทบทั้งหมดรองรับ zstd และ brotli ดังนั้นระเบิดลักษณะนี้อาจได้ผลมากกว่าเดิม
    • มีคอมเมนต์เก่าที่แสดงอัตราการบีบอัด 1.2M:1 และ zstd ทำได้ดียิ่งกว่า
  • บอตอาจไม่รองรับมาตรฐานการบีบอัดสมัยใหม่
    • นี่อาจเป็นวิธีที่ดีในการกันบอต: เนื่องจากเบราว์เซอร์สมัยใหม่ทั้งหมดรองรับ zstd จึงสามารถบังคับใช้กับ user agent ของเบราว์เซอร์ที่ไม่ได้อยู่ใน whitelist เพื่อทำให้สแครปเปอร์สับสนได้
  • ที่ทำงานเก่า บอตเคยพบช่องโหว่ของ WordPress และแทรกสคริปต์อันตรายลงบนเซิร์ฟเวอร์
    • ฟังดูขำดีที่ไม่ใช่มีแค่ฉันคนเดียวที่เคยเจอ PHP shell ถูกปล่อยลงเซิร์ฟเวอร์ภายใน 1 ชั่วโมงหลังตั้งค่า WordPress
  • zip bomb เป็นอะไรที่สนุกดี เคยพบช่องโหว่ในผลิตภัณฑ์ด้านความปลอดภัยที่ตรวจสอบ zip archive ที่มีขนาดเกินค่าหนึ่งได้ไม่ถูกต้อง
    • ทำให้เมื่อใส่ zip bomb ลงในเอกสาร Office XML แม้จะมีมัลแวร์ที่ระบุได้ง่ายอยู่ข้างใน ผลิตภัณฑ์ก็ยังปล่อยผ่าน
  • เคยหาวิธีทำให้ ssh client ที่พยายามเดารหัสผ่าน root ผ่าน ssh ล่มได้
    • สุดท้ายพวก script kiddies ก็ยิง ddos ใส่เซิร์ฟเวอร์ของฉัน
    • เลยเปลี่ยนไปใช้วิธีระบุ 'ผู้ไม่หวังดี' แล้วบล็อก IP ด้วยกฎไฟร์วอลล์
    • แต่ยิ่งทำยากขึ้นเรื่อย ๆ เพราะ IPV6
  • คนที่ทำเว็บเพจสามารถสร้าง zip bomb ผ่านลิงก์ที่มนุษย์มองไม่เห็นได้ (ตัวอักษรสีขาวบนพื้นขาว, ไม่มีการไฮไลต์เมื่อ hover/คลิกที่ anchor)
    • บอตจะดาวน์โหลดมันไปตรวจสอบ (รวมถึง crawler และ AI scraper เช่นกัน)
  • นี่คือ gzip bomb (ทำงานเหมือนเว็บเพจบีบอัดทั่วไป) ไม่ใช่ไฟล์ zip แบบคลาสสิกที่ใช้กันเพื่อหลบระบบตรวจไวรัส
  • เคยเอาสิ่งนี้ไปใช้งานแทนสคริปต์ honeypot ปกติ
    • มันไม่ได้ผลดีนัก
    • ดูจากล็อกของเว็บเซิร์ฟเวอร์จะเห็นว่าบอตไม่ได้ดาวน์โหลดพิษ 10 เมกะไบต์จนหมด
    • มันหยุดที่ขนาดต่าง ๆ กัน และจนถึงตอนนี้ยังไม่เคยเห็นตัวไหนดึงไปเกินประมาณ 1.5Mb
    • หรือจริง ๆ แล้วมันได้ผลอยู่? มันกำลังถอดรหัสสตรีมแบบเรียลไทม์แล้วล่มอยู่หรือเปล่า? เช่น สิ่งที่บันทึกว่าอ่านไป 1.5Mb อาจถูกถอดรหัสเป็น 1.5Gb ใน RAM แบบเรียลไทม์แล้วทำให้ล่มได้ไหม?
    • ไม่มีทางรู้ได้
  • ไม่นานมานี้เคยมีเหตุการณ์ที่โครงสร้างพื้นฐานต่อต้านการเซ็นเซอร์ของ Tor Project ไปโฮสต์อยู่บนไซต์ที่เปิดให้ทำงานคล้ายโพสต์บล็อกเกี่ยวกับ zip bomb
    • Google ไป crawl ไฟล์ zip ตัวหนึ่งแล้วเพิ่มโดเมนนั้นเข้าไปในรายการโดเมนอันตราย ส่งผลให้ส่วนสำคัญของเครื่องมือ Snowflake ของ Tor เสียหาย
    • ใช้เวลาหลายสัปดาห์กว่าจะแก้ปัญหาได้
  • ในหนึ่งในแอปพลิเคชันของฉัน เพื่อป้องกันการอัปโหลด จึงสร้างพาร์ทิชันดิสก์ชั่วคราวแบบขนาดคงที่ 10MB เพื่อจำกัดผลกระทบหากมีการอัปโหลดไฟล์ที่ใหญ่เกินไป
  • ใช้สคริปต์ที่ประกอบขึ้นมาหลายปีเพื่อทำงานคล้ายกัน
    • ทุกปีจะตรวจสอบล็อก 404 แล้วเพิ่มเส้นทางช่องโหว่ที่ถูกเรียกบ่อยที่สุดลงใน blacklist
    • ถ้ามีการร้องขอ URL นั้น 3 ครั้ง ก็จะเพิ่มโฮสต์นั้นเข้าไปใน greylist ที่อนุญาตเฉพาะเส้นทางที่ถูกต้องตามกฎหมายซึ่งมีจำกัดเท่านั้น