ฉันใช้ ZIP Bomb เพื่อปกป้องเซิร์ฟเวอร์ของฉัน
(idiallo.com)บทนำ
- ทราฟฟิกอินเทอร์เน็ตส่วนใหญ่เป็นบอต และในจำนวนนี้บางส่วนมีจุดประสงค์ร้าย เช่น สแปมและการแฮ็ก
- ผู้เขียนเคยได้รับความเสียหายจากบอตมาก่อน เช่น เซิร์ฟเวอร์ WordPress ติดมัลแวร์ หรือถูกนำออกจากผลการค้นหาของ Google
- เพื่อป้องกันปัญหานี้ จึงเริ่มใช้ Zip Bomb
เนื้อหา
-
Zip Bomb คืออะไร?
- เป็นไฟล์บีบอัดขนาดเล็ก แต่เมื่อแตกไฟล์แล้วจะขยายเป็นขนาดใหญ่มาก
- ไฟล์บีบอัด 1MB อาจขยายเป็น 1GB และ 10MB อาจขยายเป็น 10GB จนทำให้เซิร์ฟเวอร์ทำงานล้มเหลว
-
ความสามารถ gzip ที่มีอยู่เดิม
- บนเว็บมีการใช้การบีบอัด gzip เพื่อเพิ่มประสิทธิภาพในการส่งข้อมูล
- บอตส่วนใหญ่ก็รองรับการบีบอัด gzip เช่นกัน
-
วิธีรับมือด้วย Zip Bomb
- หากตัดสินว่าเป็นบอตอันตราย ก็จะตอบกลับด้วย
200 OKพร้อมไฟล์ Zip Bomb ที่บีบอัดด้วย gzip - ระหว่างที่เปิดไฟล์นี้ บอตอาจล่มหรือค้างอยู่บนเซิร์ฟเวอร์ของตัวเอง
- โดยทั่วไปจะใช้ขนาด 1MB (ขยายเป็น 1GB) หรือ 10MB (ขยายเป็น 10GB)
- หากตัดสินว่าเป็นบอตอันตราย ก็จะตอบกลับด้วย
-
วิธีสร้าง Zip Bomb
dd if=/dev/zero bs=1G count=10 | gzip -c > 10GB.gz- สร้างข้อมูลไบต์ 0 ขนาด 10GB จาก
/dev/zeroแล้วบีบอัดด้วย gzip - ผลลัพธ์คือ zip bomb ขนาดประมาณ 10MB
- สร้างข้อมูลไบต์ 0 ขนาด 10GB จาก
-
ตัวอย่างการนำไปใช้บนเซิร์ฟเวอร์
- หากมิดเดิลแวร์ตรวจพบ IP blacklist หรือรูปแบบที่เป็นอันตราย ก็จะส่ง Zip Bomb
if (ipIsBlackListed() || isMalicious()) { header("Content-Encoding: deflate, gzip"); header("Content-Length: "+ filesize(ZIP_BOMB_FILE_10G)); readfile(ZIP_BOMB_FILE_10G); exit; }
บทสรุป
- Zip Bomb ไม่ใช่มาตรการป้องกันที่สมบูรณ์แบบ
- บอตที่ซับซ้อนอาจตรวจจับและหลบเลี่ยงวิธีนี้ได้
- แต่สำหรับบอตระดับต่ำที่ไล่ครอว์ลเว็บแบบหว่านแห มันเป็น วิธีป้องกันที่มีประสิทธิภาพ
- แม้จะใช้ทรัพยากรของเซิร์ฟเวอร์บางส่วน แต่ก็ถือว่าคุ้มค่าสำหรับด้านความปลอดภัย
29 ความคิดเห็น
ผมคิดว่านี่เป็นวิธีที่น่าลองสักครั้ง หากไม่มีวิธีที่มีประสิทธิภาพในการบล็อกบอตที่สร้างทราฟฟิกสแปม
อ่านแล้วสนุกดี ให้ความรู้สึกเหมือนบทความที่เอาระเบิดกลิตเตอร์ไปให้โจรขโมยพัสดุ :)
วิดีโอนั้นสนุกดีนะ เหมือนอันนั้นเป๊ะเลย 555
บทความบนอินเทอร์เน็ตไม่ใช่พัสดุที่มีเจ้าของของใครสักคน
ถ้าเป็นทรัพย์สินที่ไม่เปิดเผยต่อสาธารณะ ก็คงใส่ขั้นตอนยืนยันตัวตนไว้แล้ว
มองว่าใกล้เคียงกับการเอาใบปลิวไปวางไว้ข้างถนนแล้วเคลือบยาพิษร้ายแรงไว้บนนั้นก็ได้เหมือนกัน
นี่เป็นคนละแนวคิดกับการเอาใบปลิวอาบยาพิษไปติดไว้ด้วยเจตนาร้ายครับ
ในเชิงจริยธรรมก็คงไม่ใช่วิธีที่ดีนัก และก็ไม่ใช่วิธีแก้ปัญหาที่ต้นตอด้วย
นี่เป็นครั้งแรกที่ผมเจอเคสแบบนี้ เลยอยากรู้ว่าทางแก้ที่เป็นต้นตอจริง ๆ คืออะไร!!
เห็นด้วยครับ
งั้นบอตอันตรายนี่ถือว่าเป็นวิธีที่มีจริยธรรมหรือไง 555
บอตอันตรายจริง ๆ จับด้วยวิธีแบบนี้ไม่ได้หรอก
gzip bomb ก็เอาไม่อยู่
แค่มองว่าเป็นคนที่ไม่รู้เรื่องเขียนโพสต์เรื่องระเบิดขำ ๆ ขึ้นมาสักอันก็พอ
คนแบบนี้นี่เองที่ทำให้การอ้างว่าป้องกันตัวโดยชอบธรรมได้รับการยอมรับได้ยากขึ้นนะ ฮ่าๆ...
มีเหตุผลอะไรบ้างที่ทำให้สิ่งนี้ไม่ใช่วิธีที่ถูกต้องในเชิงจริยธรรม? ผมสงสัยอยู่
เป็นบทความที่น่าสนุกดีนะ! เป็นวิธีที่คาดไม่ถึงจริง ๆ ขอบคุณที่บอกให้รู้ครับ!
จุดประสงค์ของการโพสต์บทความแบบนี้คืออะไรกันแน่?
ผมคิดว่าในความเป็นจริง แทบไม่มีโอกาสเลยที่บริษัทที่รันครอว์เลอร์จะมาอ่านบทความนี้แล้วถึงขั้นยกเว้นไม่เก็บข้อมูลจากเว็บนี้
ถ้าอย่างนั้น บทความนี้เขียนขึ้นมาเพื่อผู้อ่านกลุ่มไหนกัน?
เป็นบทความแนะนำเพื่อบอกคนที่ทำบล็อกเหมือนกันว่ามีวิธีแบบนี้อยู่
หรือเป็นการยั่วประมาณว่า บล็อกของฉันแน่นเรื่องความปลอดภัยขนาดนี้ ถ้าแน่จริงก็ลองครอว์ลดูสิ?
ผมสงสัยจริง ๆ ว่าการโพสต์บทความนี้แล้วจะได้อะไร
ก็แค่มีวิธีแบบนี้อยู่ด้วยเท่านั้นเองมั้ง..
ก็เป็นบล็อกส่วนตัวนี่นา จะเขียนอะไรก็ไม่ได้เหรอ? 🤔
แน่นอนว่าเพราะไม่ใช่พื้นที่สาธารณะ ก็อาจเป็นแค่โพสต์ที่เขียนขึ้นมาแบบไม่ได้คิดอะไรมากก็ได้
เหมือนกับที่ในคอมมูนิตี้คนอาจคอมเมนต์แบบไม่ได้คิดอะไรมากเช่นกัน
ผมคงไม่สามารถบล็อกครอว์เลอร์ได้ทั้งหมดอยู่แล้ว ดังนั้นการไม่รับแม้แต่ความพยายามเข้ามาน่าจะดีที่สุด แต่ผมก็สงสัยว่าเจตนาที่อยากเรียกความสนใจนั้นคืออะไร
งั้นก็หมายความว่าถ้าตัดสินว่าเป็นบอตจาก IP ก็จะส่งระเบิดกลับไปเหมือนกันสินะครับ ฮ่าๆ
รู้สึกได้ถึงความโกรธของผู้เขียนเลย ฮ่าๆ
ไอเดียคือถ้ามีคำขอที่มาพร้อมการระบุว่า agent เป็น bot ก็จะมอบระเบิดให้เลย..
ดูมีเจตนาร้ายเกินไปหน่อย อย่างไรเสีย agent ก็ซ่อนได้ง่ายอยู่แล้ว ถ้าเป็นบอตที่มุ่งร้ายจริงก็จะไม่แสดงเจตนาร้ายออกมาตรงๆ
ช่วงนี้มีให้เห็นเป็นระยะถึงกรณีความเสียหายจากทราฟฟิกที่มากเกินไปซึ่งมาจากบริการที่เชื่อมกับ LLM และจริง ๆ แล้วก็ดูเหมือนจะมองได้ว่าเป็นมาตรการรับมือสำหรับปัญหาประเภทนั้นเช่นกัน ตัวอย่างเช่น หากดูฟังก์ชันค้นหาเว็บของ ChatGPT เป็นต้น ด้วยลักษณะของกลุ่มผู้ใช้ จึงมีความเป็นไปได้สูงที่จะเกิดทราฟฟิกมากเกินไปแบบ “ไม่ได้มีเจตนาร้าย” และได้ยินมาว่าพวกนี้สามารถคัดกรองออกได้ง่ายด้วยการจับคู่เอเจนต์แบบพื้นฐาน ถ้านี่คือเจตนาที่แท้จริง ก็มีแต่จะสิ้นเปลืองค่าเซิร์ฟเวอร์ของ OpenAI (และชื่อเสียง?) ไปเปล่า ๆ นะครับ..
ดังนั้นนี่จึงเป็นบทความที่ไม่มีสาระ
OpenAI ก็เป็นบริษัทที่ใหญ่พอจะมีมารยาทประมาณนั้น(?) ได้อยู่แล้วครับ
และก็น่าจะยากที่การที่ผู้ใช้คลิกผลการค้นหาด้วยตัวเองจะก่อให้เกิดทราฟฟิกที่เป็นภาระมากขนาดนั้น น่าจะเป็นปัญหาที่ครอว์เลอร์ทำงานมากเกินไปไม่ใช่หรือครับ?
ผมเห็นด้วยว่าทั้ง
User-Agentที่คุณพูดถึงหรือการตรวจจับตาม IP ที่กล่าวถึงในต้นฉบับนั้น ข้อมูลระบุตัวตนสามารถปลอมแปลงได้ จึงยากจะฟันธงว่าเป็นอันตรายจริงหรือไม่ บอตที่มีเจตนาร้ายจริง ๆ ก็น่าจะเข้ามาอย่างแนบเนียนกว่านี้ส่วนตัวผมคิดว่าแทนที่จะรับมือกับการโจมตีแบบนี้ การเปิดให้มี crawling API ที่จำกัดโหลดน่าจะเป็น "แรงจูงใจ" ที่สมจริงกว่าคือ อนุญาตให้มีการเข้าถึงอัตโนมัติที่ถูกต้องตามกฎหมายได้ ขณะเดียวกันก็ปกป้องทรัพยากรของเซิร์ฟเวอร์ด้วย 555
ตอนนี้จริง ๆ ก็มีสิ่งที่เราเห็นพ้องกันมานานแล้วชื่อว่า bots.txt นี่แหละ..
นี่เป็นความเห็นที่ไม่เกี่ยวกับบทความนี้ แต่ดูเหมือนว่าช่วงหลังมีผู้ใช้บางคนที่เข้ามาคอมเมนต์เชิงลบใน hada ที่ผมติดตามอยู่เพิ่มขึ้นอย่างเห็นได้ชัดนะครับ บรรยากาศก็ดูต่างไปมากพอสมควรจากช่วงก่อนที่แทบไม่มีคอมเมนต์หรือมีอยู่แค่ไม่กี่คอมเมนต์
ส่วนตัวผมคิดว่าน่าจะดีถ้ามีฟีเจอร์บล็อก หรือมีฟีเจอร์ที่ทำให้คอมเมนต์เป็นสีเทาเมื่อถูกรายงานจากหลายคน
คาดว่าผู้ใช้ที่ได้รับคำแนะนำจำนวนมากจะได้รับสิทธิ์ใช้งานฟีเจอร์ดังกล่าว
2222222222222222