วันนี้เจอ blog ที่น่าสนใจของ Christian Haschek มาเลยเอามาปรับกับเว็บไซด์หน่อย 😀 เรื่องของเรื่องคือ ตัว Christian เค้าเบื่อพวกที่ชอบมานั่งใช้เครื่องมือมา scan เว็บไซด์ของเค้า หรือพวกที่พยายามจะเจาะไปที่ wp-admin ของเค้า ก็เลยทำเรื่อง Zip Bomb ขึ้นมาตอบโต้คนเหล่านั้น

Zip bomb คือการที่เราใช้งาน zip เพื่อทำการบีบอัดไฟล์ขนาดใหญ่ๆที่ไม่มีอะไรเลยนอกจาก 0 (zero) ไว้ ซึ่งโดยปกติแล้ว web browser และเครื่องมือการ scan ส่วนใหญ่รองรับการส่งข้อมูล http แบบบีบอัด (gzip) อยู่แล้ว ดังนั้นหากมีใคร scan เข้ามาก็จะส่ง zip file กลับไปให้แทนนั่นเอง

zip สามารถทำงานบีบอัดได้ขนาดไหน จะมีปัญหาการส่งทำให้ฝั่งเราต้องเสีย bandwidth ขา upload ไปแทนหรือเปล่า ยกตัวอย่างให้ดังนี้ละกัน เราสามารถ zip ไฟล์ขนาด 4.5 Peta Byte ( 4,500,000 GB) ให้เหลือแค่ 42 kilobyte เท่านั้น เมื่อพยายามเปิดไฟล์ดังกล่าวจะทำให้เกิดอาการ disk เต็มและ RAM หมดได้ แต่เนื่องด้วย http ไม่รองรับ zip ทำให้เราต้องไปใช้ gzip แทน ซึ่งผลลัพธ์ก็แตกต่างกันอยู่แต่ก็ยังถือว่าได้ผลดีระดับหนึ่งครับ

โดยเราใช้คำสั่งนี้ในการสร้าง gzip file ของ file ที่มีขนาด 10 GB

ซึ่งไฟล์ 10G.zip นั้นจะมีขนาดแค่ 10 MB เท่านั้น

ทีนี้หากมี bot เข้ามา(ดูจาก User-Agent)เราก็ส่ง gzip ดังกล่าวกลับไปให้โดยเขียนเป็น

ผลจากการทดสอบเปลี่ยน User-agent ใน Browser ต่างๆ และการใช้งาน Web Vulnerability Scanner ต่างๆ จะเห็นว่ามีทั้ง Hang ไปเลย, ไม่แสดงผลลัพธ์อะไร, ใช้ RAM จนหมด นั่นหมายความว่ามันก็ work สำหรับการตอบโต้เหล่า Script Kiddy นะครับ 😀

Source:: Christian Haschek Blog