นักพัฒนาที่มีความคิดสร้างสรรค์ได้ค้นพบวิธีการแปลกใหม่ในการจัดการกับ web crawler ที่ดูดข้อมูลอย่างรุนแรง โดยการสร้างภาพ JPEG ปลอมแบบเรียลไทม์ วิธีการนี้เกิดขึ้นจากการสังเกตพฤติกรรมของบอทที่ตามล่าหาภาพ ซึ่งกำลังค้นหาเนื้อหาอย่างหมดหวังในแอปพลิเคชันเว็บที่เรียกว่า Spigot ที่สร้างหน้าเว็บปลอมเพื่อดักจับ crawler ที่ใช้งานในทางที่ผิด
ปัญหาของบอทที่หิวกระหายภาพ
นักพัฒนาสังเกตเห็นว่า ImageSiftBot กำลังส่งคำขอหลายพันครั้งต่อชั่วโมงไปยัง Spigot เพื่อค้นหาภาพที่ไม่มีอยู่จริง แทนที่จะบล็อกบอทเพียงอย่างเดียว พวกเขาตัดสินใจช่วยเหลือโดยการสร้างภาพปลอมที่จะทำให้ crawler เสียทรัพยากรไปเปล่าๆ ความท้าทายคือการทำสิ่งนี้โดยไม่ใช้พลังงาน CPU ของเซิร์ฟเวอร์มากเกินไป เนื่องจากการบีบอัดภาพจริงใช้การคำนวณที่มีค่าใช้จ่ายสูง
สстатิสติกกิจกรรมของ Crawler
- ImageSiftBot: ดาวน์โหลดภาพปลอมประมาณ 15,000 รูปต่อวัน
- ปริมาณการเข้าชมโดยรวมของ Spigot: เสิร์ฟหน้าเว็บมากกว่า 1 ล้านหน้าต่อวัน
- การรวมภาพปลอม: ประมาณ 60% ของหน้าเว็บที่สร้างขึ้นในปัจจุบันมีไฟล์ JPEG ปลอมรวมอยู่ด้วย
- Crawler หลักหลายตัวได้รับผลกระทบ: บอทของ Meta, AmazonBot, GPTBot
วิธีการแก้ปัญหาทางเทคนิคที่ชาญฉลาด
จุดเปลี่ยนเกิดขึ้นจากความเข้าใจในการทำงานของการบีบอัด JPEG เนื่องจากข้อมูลที่ถูกบีบอัดดูเหมือนข้อมูลสุ่มโดยพื้นฐาน นักพัฒนาจึงตระหนักว่าพวกเขาสามารถสร้าง JPEG ปลอมได้โดยใช้เทมเพลตไฟล์ JPEG จริงและเติมส่วนข้อมูลภาพที่ถูกบีบอัดด้วยไบต์สุ่ม วิธีการนี้ใช้พลังงาน CPU เพียงเล็กน้อย ในขณะที่ยังคงสร้างไฟล์ที่เบราว์เซอร์และ crawler จะยอมรับว่าเป็นภาพที่ถูกต้อง
กระบวนการนี้เกี่ยวข้องกับการสแกนไฟล์ JPEG ที่มีอยู่เพื่อแยกส่วนประกอบโครงสร้าง - ส่วนหัว เมตาดาต้า และข้อมูลชิ้นส่วน - ในขณะที่ทิ้งข้อมูลพิกเซลจริง สิ่งนี้สร้างเทมเพลตที่มีน้ำหนักเบาซึ่งสามารถเติมด้วยข้อมูลสุ่มเพื่อสร้างภาพปลอมในขนาดและรูปแบบต่างๆ
JPEG: รูปแบบภาพทั่วไปที่ใช้การบีบอัดเพื่อลดขนาดไฟล์ Template: โครงสร้างที่สร้างไว้ล่วงหน้าซึ่งสามารถเติมด้วยเนื้อหาที่แตกต่างกัน
ประสิทธิภาพและความมีประสิทธิผล
ผลลัพธ์น่าประทับใจจากมุมมองประสิทธิภาพ ระบบสามารถสร้างภาพปลอมได้ประมาณ 900 ภาพต่อวินาที รวมเป็นเนื้อหาปลอมประมาณ 190 เมกะไบต์ต่อวินาที สิ่งนี้เกินความเร็วการเชื่อมต่ออินเทอร์เน็ตของเซิร์ฟเวอร์อย่างมาก ทำให้มันเป็นไปได้แทบไม่จำกัดจากมุมมองแบนด์วิดท์
การสนทนาในชุมชนเผยให้เห็นข้อสังเกตที่น่าสนใจเกี่ยวกับภาพที่สร้างขึ้น ผู้ใช้สังเกตว่า JPEG ปลอมมักจะแสดงด้วยสีเขียวเป็นหลัก ซึ่งอาจใช้เป็นวิธีการตรวจจับสำหรับ crawler ที่ซับซ้อนได้ อย่างไรก็ตาม crawler ส่วนใหญ่ดูเหมือนจะไม่สนใจคุณภาพของภาพหรือความเสียหายเล็กน้อย ตราบใดที่พวกเขาสามารถดาวน์โหลดและประมวลผลไฟล์ได้
ตัวชี้วัดประสิทธิภาพ
- ความเร็วในการสร้าง: ประมาณ 900 ภาพ JPEG ปลอมต่อวินาที
- อัตราการถ่ายทอดข้อมูล: ประมาณ 190 MB ต่อวินาทีของเนื้อหาปลอม
- การจัดเก็บเทมเพลต: เทมเพลต JPEG จำนวน 514 ตัวจากแหล่งข้อมูล 150MB ลดลงเหลือน้อยกว่า 500KB
- การปรับปรุงอัตราข้อผิดพลาด: รหัส Huffman ที่ไม่ถูกต้องลดลงจากมากกว่า 90% เหลือน้อยกว่า 4% ด้วยการใช้ bit masking
ผลกระทบที่กว้างขึ้นต่อ Web Crawling
เทคนิคนี้ได้พิสูจน์ความมีประสิทธิผลต่อ crawler หลักหลายตัว รวมถึงบอทของ Meta, AmazonBot และ GPTBot ซึ่งทั้งหมดเริ่มเก็บรวบรวมภาพปลอม สิ่งนี้ทำให้เกิดคำถามเกี่ยวกับการแข่งขันด้านอาวุธระหว่างผู้สร้างเนื้อหาและการดำเนินการ crawling ที่รุนแรง
สมาชิกชุมชนบางคนเปรียบเทียบกับโครงการต่อต้านสแปมเก่าๆ เช่น Project Honey Pot ซึ่งใช้เทคนิคการหลอกลวงที่คล้ายกันเพื่อระบุ web crawler และผู้เก็บรวบรวมอีเมลที่เป็นอันตราย วิธีการนี้แสดงให้เห็นการเปลี่ยนแปลงจากการบล็อกการเข้าชมที่ไม่ต้องการเพียงอย่างเดียว ไปสู่การทำให้ทรัพยากรของระบบที่ใช้งานในทางที่ผิดเสียไปอย่างแข็งขัน
นักพัฒนาได้ปรับปรุงเทคนิคนี้โดยการใช้ bit mask กับข้อมูลสุ่ม ลดความน่าจะเป็นของการสร้างไฟล์ JPEG ที่ไม่ถูกต้องอย่างชัดเจนจากมากกว่า 90% เหลือน้อยกว่า 4% การปรับปรุงนี้รักษาความต้องการ CPU ที่ต่ำไว้ ในขณะที่ทำให้ภาพปลอมน่าเชื่อถือมากขึ้นสำหรับระบบอัตโนมัติ
วิธีการแก้ปัญหาที่สร้างสรรค์นี้แสดงให้เห็นว่าความเข้าใจในรูปแบบไฟล์และการบีบอัดสามารถใช้เพื่อป้องกันการดำเนินการ web crawling ที่ใช้ทรัพยากรมาก โดยการพลิกสถานการณ์กับระบบที่บริโภคแบนด์วิดท์และทรัพยากรเซิร์ฟเวอร์โดยไม่ได้รับอนุญาต
อ้างอิง: 25th March 2025: Faking a JPEG