เว็บไซต์ผู้ใหญ่กำลังใช้ประโยชน์จากข้อบกพร่องพื้นฐานในการออกแบบรูปแบบภาพ SVG เพื่อจัดการกับการโต้ตอบบนโซเชียลมีเดียโดยไม่ได้รับความยินยอมจากผู้ใช้ นักวิจัยด้านความปลอดภัยได้ค้นพบเว็บไซต์ผู้ใหญ่หลายสิบแห่งที่ฝังโค้ด JavaScript ที่เป็นอันตรายไว้ภายในไฟล์ภาพ SVG ที่ดูไร้เดียงสา เปลี่ยนให้กลายเป็นอาวุธสำหรับการโจมตี cross-site request forgery
การโจมตีนี้ทำงานโดยการซ่อนโค้ด JavaScript ที่ถูกปกปิดอย่างหนักภายในไฟล์ SVG โดยใช้เทคนิคที่เรียกว่า JSFuck ซึ่งปลอมตัวสคริปต์ที่เป็นอันตรายให้เป็นกำแพงของตัวอักษรที่ดูเหมือนสุ่ม เมื่อผู้ใช้คลิกที่ภาพที่ถูกดักไว้เหล่านี้ โค้ดที่ซ่อนอยู่จะเริ่มทำงาน สร้างการกด like ใน Facebook สำหรับโพสต์โปรโมตของเว็บไซต์ผู้ใหญ่โดยอัตโนมัติ ทั้งหมดนี้ในขณะที่ผู้ใช้ยังคงไม่รู้ตัวอย่างสมบูรณ์
การโจมตีผ่าน SVG ในอดีต
- 2023: แฮกเกอร์สนับสนุน รัสเซีย ใช้ช่องโหว่ webmail Roundcube ผ่าน SVG cross-site scripting
- มิถุนายน 2024: การโจมตีแบบ Phishing ใช้ไฟล์ SVG สร้างหน้าจอ login ปลอมของ Microsoft
- สิงหาคม 2024: เว็บไซต์ผู้ใหญ่ถูกค้นพบว่าใช้ไฟล์ SVG เพื่อจัดการการกด like ใน Facebook
ความยืดหยุ่นที่อันตรายของรูปแบบ SVG สร้างฝันร้ายด้านความปลอดภัย
ไม่เหมือนกับรูปแบบภาพแบบดั้งเดิมอย่าง JPEG หรือ PNG ไฟล์ SVG ใช้ข้อความที่ใช้ XML เป็นฐานซึ่งสามารถรวมโค้ด HTML และ JavaScript เข้าไปได้ ความยืดหยุ่นนี้เดิมทีตั้งใจให้สามารถสร้างกราฟิกและแอนิเมชันที่หลากหลาย แต่กลับสร้างช่องโหว่ด้านความปลอดภัยที่สำคัญซึ่งเบราว์เซอร์ต่อสู้เพื่อควบคุมได้อย่างเหมาะสม
การอพิพากษ์ของชุมชนเผยให้เห็นความหงุดหงิดอย่างลึกซึ้งต่อปรัชญาการออกแบบของ SVG นักพัฒนาหลายคนโต้แย้งว่าสิ่งที่ควรจะเป็นรูปแบบกราฟิกเวกเตอร์อย่างง่าย กลับกลายเป็นแพลตฟอร์มเว็บแอปพลิเคชันที่มีพลังมากเกินไปพร้อมกับผลกระทบด้านความปลอดภัยที่ร้ายแรง ความสามารถของรูปแบบในการรัน JavaScript ทำให้ไม่เหมาะสมสำหรับเว็บไซต์เนื้อหาที่สร้างโดยผู้ใช้ โดยมี Wikipedia เป็นหนึ่งในแพลตฟอร์มไม่กี่แห่งที่ยอมรับการอัปโหลด SVG และแม้แต่พวกเขาก็แปลง SVG ส่วนใหญ่เป็นภาพ PNG เพื่อความปลอดภัย
XML-based: ภาษามาร์กอัปที่ใช้แท็กในการจัดโครงสร้างข้อมูล คล้ายกับ HTMLCross-site request forgery (CSRF): การโจมตีที่หลอกผู้ใช้ให้ทำการกระทำที่ไม่ต้องการบนเว็บไซต์ที่พวกเขาได้รับการยืนยันตัวตน
มาตรการความปลอดภัยของเบราว์เซอร์ยังไม่เพียงพอ
การโจมตีนี้เน้นย้ำช่องโหว่ที่สำคัญในสถาปัตยกรรมความปลอดภัยของเบราว์เซอร์สมัยใหม่ แม้จะมีการพัฒนาหลายปีที่เน้นการแยกโดเมนออกจากกัน ไฟล์ SVG ยังคงสามารถรัน JavaScript ที่โต้ตอบกับเว็บไซต์อื่นได้เมื่อผู้ใช้เข้าสู่ระบบบริการอย่าง Facebook
เบราว์เซอร์มีการป้องกันบางอย่างโดยการปฏิบัติต่อไฟล์ SVG แตกต่างกันขึ้นอยู่กับวิธีการฝัง เมื่อโหลดผ่านแท็ก <img>
JavaScript จะไม่ทำงาน แต่เมื่อฝังผ่านแท็ก <iframe>
หรือ <object>
สคริปต์สามารถทำงานได้อย่างอิสระ อย่างไรก็ตาม พฤติกรรมที่ไม่สอดคล้องกันนี้ทำให้ทั้งนักพัฒนาและระบบความปลอดภัยสับสน
ชุมชนเทคนิคได้ตอบสนองด้วยการแนะนำการบล็อก JavaScript อย่างเข้มงวดผ่านส่วนขยายเบราว์เซอร์อย่าง NoScript และ uBlock Origin แม้ว่าเครื่องมือเหล่านี้จะต้องใช้เวลาในการตั้งค่าอย่างมากและอาจทำให้ฟังก์ชันการทำงานของเว็บไซต์เสียหาย ผู้ใช้ที่มีประสบการณ์รายงานว่าพวกเขาป้องกันการโจมตีดังกล่าวได้อย่างมีประสิทธิภาพในขณะที่มักจะปรับปรุงความเร็วในการโหลดหน้าเว็บด้วยการบล็อกสคริปต์บุคคลที่สามที่ไม่จำเป็น
วิธีการฝัง SVG และการทำงานของ JavaScript
- แท็ก
<img>
: JavaScript ถูกปิดใช้งาน (ปลอดภัย) - แท็ก
<iframe>
: JavaScript เปิดใช้งาน (เสี่ยงต่อการโจมตี) - แท็ก
<object>
: JavaScript เปิดใช้งาน (เสี่ยงต่อการโจมตี) - องค์ประกอบ SVG แบบ Inline: JavaScript เปิดใช้งาน (เสี่ยงต่อการโจมตี)
บทบาทของ Facebook ในการเปิดโอกาสให้เกิดการโจมตี
ความสำเร็จของการโจมตีเหล่านี้อาศัยฟังก์ชันปุ่มไลค์ของ Facebook ซึ่งดูเหมือนจะมีช่องโหว่ต่อการโจมตี CSRF เมื่อผู้ใช้ยังคงเข้าสู่ระบบบัญชีของพวกเขา นักวิจารณ์ชี้ให้เห็นว่า Facebook สามารถใช้การป้องกันที่แข็งแกร่งกว่าต่อการโต้ตอบอัตโนมัติ แต่บริษัทดูเหมือนจะลังเลที่จะแก้ไขช่องโหว่ที่อาจรบกวนกลไกการเก็บรวบรวมข้อมูลของตัวเอง
มันไม่ใช่ช่องโหว่ CSRF หากเป็นพฤติกรรมที่ตั้งใจไว้ ในโลกที่คุกกี้ same-site เป็นค่าเริ่มต้น คุณต้องเลือกเข้าร่วมสิ่งแบบนี้อย่างแข็งขัน
ประสิทธิภาพของการโจมตีขึ้นอยู่กับผู้ใช้ที่รักษาเซสชัน Facebook ที่ใช้งานอยู่ ซึ่งเป็นแนวปฏิบัติทั่วไปที่ผู้เชี่ยวชาญด้านความปลอดภัยไม่แนะนำอย่างยิ่ง การรัน Facebook ในคอนเทนเนอร์เบราว์เซอร์ที่แยกหรือโปรไฟล์แยกสามารถป้องกันการโจมตี cross-site เหล่านี้ แม้ว่าผู้ใช้หลายคนจะพบว่าการป้องกันดังกล่าวไม่สะดวก
มาตรการความปลอดภัยที่แนะนำ
- ใช้โปรแกรมบล็อก JavaScript ( NoScript , uBlock Origin )
- เรียกใช้ Facebook ในคอนเทนเนอร์เบราว์เซอร์แยกต่างหาก
- เรียกดูเนื้อหาสำหรับผู้ใหญ่ในโหมดไม่ระบุตัวตน
- ปิดการใช้งานคุกกี้จากบุคคลที่สาม
- ใช้โปรไฟล์เบราว์เซอร์แยกต่างหากสำหรับกิจกรรมที่แตกต่างกัน
![]() |
---|
รูปภาพนี้สื่อถึงภูมิทัศน์ดิจิทัลที่เว็บไซต์สำหรับผู้ใหญ่ใช้ประโยชน์จากช่องโหว่เพื่อใช้กลยุทธ์การจัดการต่อผู้ใช้เว็บ |
ผลกระทบในวงกว้างต่อความปลอดภัยเว็บ
เหตุการณ์นี้เป็นส่วนหนึ่งของแนวโน้มที่ใหญ่กว่าที่ผู้โจมตีใช้ประโยชน์จากเทคโนโลยีเว็บที่ถูกต้องตามกฎหมายเพื่อวัตถุประสงค์ที่เป็นอันตราย การโจมตีก่อนหน้านี้ได้ใช้ไฟล์ SVG เพื่อใช้ประโยชน์จากบริการเว็บเมลและสร้างหน้าฟิชชิ่งที่น่าเชื่อถือ แสดงให้เห็นถึงความหลากหลายของรูปแบบในฐานะเวกเตอร์การโจมตี
สถานการณ์นี้สะท้อนปัญหาที่ลึกซึ้งกว่าของมาตรฐานเว็บที่ให้ความสำคัญกับฟังก์ชันการทำงานมากกว่าความปลอดภัย เมื่อเว็บไซต์กลายเป็นเรื่องซับซ้อนมากขึ้นและดึงทรัพยากรจากหลายสิบโดเมนที่แตกต่างกัน ผู้ใช้เผชิญกับความเสี่ยงที่เพิ่มขึ้นต่อการโจมตีที่ซับซ้อนซึ่งใช้ประโยชน์จากลักษณะที่เชื่อมต่อกันของการเรียกดูเว็บสมัยใหม่
นักวิจัยด้านความปลอดภัยยังคงค้นพบวิธีใหม่ ๆ ที่ไฟล์ SVG สามารถถูกใช้เป็นอาวุธ ตั้งแต่การโจมตี cross-site scripting ไปจนถึงแคมเปญปฏิเสธการให้บริการ จนกว่าเบราว์เซอร์จะใช้นโยบายที่เข้มงวดมากขึ้นสำหรับเนื้อหาที่สามารถรันได้ภายในรูปแบบภาพ ผู้ใช้ต้องพึ่งพาเครื่องมือความปลอดภัยของบุคคลที่สามและนิสัยการเรียกดูที่ระมัดระวังเพื่อปกป้องตัวเองจากภัยคุกคามที่พัฒนาไปเรื่อย ๆ เหล่านี้
อ้างอิง: Adult sites are stashing exploit code inside racy .svg files