ช่องโหว่ใน Adblock Plus ที่อนุญาตให้มีการเรียกใช้โค้ดเมื่อใช้ตัวกรองที่น่าสงสัย

ในตัวบล็อกโฆษณา Adblock Plus ระบุ ความอ่อนแอ, อนุญาต จัดระเบียบการดำเนินการของโค้ด JavaScript ในบริบทของไซต์ ในกรณีที่ใช้ตัวกรองที่ไม่ได้รับการยืนยันซึ่งจัดเตรียมโดยผู้โจมตี (ตัวอย่างเช่น เมื่อเชื่อมต่อชุดกฎของบุคคลที่สาม หรือผ่านการแทนที่กฎระหว่างการโจมตี MITM)

ผู้เขียนรายการที่มีชุดตัวกรองสามารถจัดระเบียบการดำเนินการโค้ดของตนในบริบทของไซต์ที่เปิดโดยผู้ใช้โดยเพิ่มกฎด้วยตัวดำเนินการ "เขียนใหม่" ซึ่งช่วยให้คุณสามารถแทนที่ส่วนหนึ่งของ URL ได้ ตัวดำเนินการเขียนซ้ำไม่อนุญาตให้คุณแทนที่โฮสต์ใน URL แต่อนุญาตให้คุณจัดการอาร์กิวเมนต์คำขอได้อย่างอิสระ เฉพาะข้อความเท่านั้นที่สามารถใช้เป็นมาสก์ทดแทนได้ และอนุญาตให้ใช้แทนสคริปต์ อ็อบเจ็กต์ และแท็กเอกสารย่อยได้ ถูกบล็อก.

อย่างไรก็ตาม การเรียกใช้โค้ดสามารถทำได้ด้วยวิธีแก้ไขปัญหาชั่วคราว
เว็บไซต์บางแห่ง รวมถึง Google Maps, Gmail และ Google Images ใช้เทคนิคการโหลดบล็อก JavaScript ที่ปฏิบัติการได้แบบไดนามิก ซึ่งส่งในรูปแบบข้อความเปล่า หากเซิร์ฟเวอร์อนุญาตให้มีการเปลี่ยนเส้นทางคำขอ การส่งต่อไปยังโฮสต์อื่นสามารถทำได้โดยการเปลี่ยนพารามิเตอร์ URL (ตัวอย่างเช่น ในบริบทของ Google การเปลี่ยนเส้นทางสามารถทำได้ผ่าน API "google.com/search") นอกเหนือจากโฮสต์ที่อนุญาตให้มีการเปลี่ยนเส้นทางแล้ว การโจมตียังสามารถดำเนินการกับบริการที่อนุญาตให้มีการโพสต์เนื้อหาของผู้ใช้ (การโฮสต์โค้ด แพลตฟอร์มการโพสต์บทความ ฯลฯ)

วิธีการโจมตีที่นำเสนอจะมีผลเฉพาะกับหน้าที่โหลดสตริงของโค้ด JavaScript แบบไดนามิก (เช่น ผ่าน XMLHttpRequest หรือ Fetch) จากนั้นจึงดำเนินการ ข้อจำกัดที่สำคัญอีกประการหนึ่งคือความจำเป็นในการใช้การเปลี่ยนเส้นทางหรือวางข้อมูลที่กำหนดเองไว้ที่ด้านข้างของเซิร์ฟเวอร์ดั้งเดิมที่ออกทรัพยากร อย่างไรก็ตาม เพื่อแสดงให้เห็นถึงความเกี่ยวข้องของการโจมตี จึงได้แสดงวิธีจัดระเบียบการเรียกใช้โค้ดของคุณเมื่อเปิด map.google.com โดยใช้การเปลี่ยนเส้นทางผ่าน “google.com/search”

การแก้ไขยังอยู่ในระหว่างการเตรียมการ ปัญหายังส่งผลต่อตัวบล็อคด้วย AdBlock и uBlock. ตัวบล็อก uBlock Origin ไม่ได้รับผลกระทบจากปัญหานี้ เนื่องจากไม่รองรับตัวดำเนินการ "เขียนใหม่" ครั้งหนึ่งผู้เขียน uBlock Origin
ปฏิเสธ เพิ่มการสนับสนุนสำหรับการเขียนใหม่ อ้างถึงปัญหาด้านความปลอดภัยที่อาจเกิดขึ้นและข้อจำกัดระดับโฮสต์ที่ไม่เพียงพอ (เสนอตัวเลือกแถบค้นหาแทนการเขียนใหม่เพื่อล้างพารามิเตอร์แบบสอบถามแทนที่จะแทนที่)

นักพัฒนา Adblock Plus พิจารณาว่าการโจมตีจริงไม่น่าเป็นไปได้ เนื่องจากการเปลี่ยนแปลงทั้งหมดในรายการกฎมาตรฐานได้รับการตรวจสอบ และการเชื่อมต่อรายการบุคคลที่สามนั้นหายากมากในหมู่ผู้ใช้ การแทนที่กฎผ่าน MITM ถูกป้องกันโดยการใช้ HTTPS เริ่มต้นสำหรับการดาวน์โหลดรายการบล็อกมาตรฐาน (สำหรับรายการอื่น ๆ มีการวางแผนที่จะห้ามการดาวน์โหลดผ่าน HTTP ในรุ่นอนาคต) สามารถใช้คำสั่งเพื่อป้องกันการโจมตีทางฝั่งไซต์ได้ CSP (นโยบายความปลอดภัยของเนื้อหา) ซึ่งคุณสามารถกำหนดโฮสต์ที่สามารถโหลดทรัพยากรภายนอกได้อย่างชัดเจน

ที่มา: opennet.ru

เพิ่มความคิดเห็น