ช่องโหว่ในรายการ Adblock Plus ทำให้สามารถเรียกใช้โค้ดที่เป็นอันตรายได้

เบราว์เซอร์

Recientemente มีการค้นพบช่องโหว่ ซึ่งอาจทำให้ผู้ดูแลบล็อกรายการตัวกรองได้ สำหรับส่วนขยายเบราว์เซอร์ Adblock Plus, AdBlock และ uBlocker เพื่อสร้างตัวกรองที่ฉีดสคริปต์ระยะไกลลงในเว็บไซต์

ด้วยฐานผู้ใช้ที่ทะลุ 10 ล้านเครื่องหมาย หากสคริปต์ที่เป็นอันตรายถูกแทรกเข้าไปในตัวบล็อกโฆษณาสิ่งนี้จะส่งผลกระทบอย่างมาก เนื่องจากอาจทำกิจกรรมที่ไม่ต้องการเช่นการขโมยคุกกี้ข้อมูลการเชื่อมต่อทำให้เพจเปลี่ยนเส้นทางหรือพฤติกรรมที่ไม่ต้องการอื่น ๆ

สำหรับคนที่ ไม่คุ้นเคยกับตัวบล็อกโฆษณาโดยทั่วไปแล้วพวกเขาใช้รายการ URL ที่เกี่ยวข้องกับโฆษณาและพฤติกรรมที่เป็นอันตราย

โดยปกติแล้ว พวกเขาดำเนินการโดยทีมงานเล็ก ๆ หรือแม้แต่คนเดียว

เมื่อรายการเหล่านี้เต็มไปด้วยส่วนขยายการปิดกั้นโฆษณาเช่น Adblock Plus ส่วนขยายนี้จะป้องกันไม่ให้เบราว์เซอร์เชื่อมต่อกับ URL ที่อยู่ในรายการซึ่งจะป้องกันการเชื่อมต่อกับโฆษณาหรือสคริปต์ที่เป็นอันตราย

ตัวเลือก $ rewrite filter เป็นสาเหตุของปัญหา

เมื่อ Adblocker Plus 3.2 เปิดตัวในปี 2018 นั่นเอง เพิ่มตัวเลือกรายการตัวกรองใหม่ที่เรียกว่า $ rewrite

ตัวเลือกนี้ ได้รับอนุญาต ไปยังผู้ดูแลรายการ แทนที่คำขอเว็บที่ตรงกับนิพจน์ทั่วไป โดยเฉพาะอย่างยิ่งกับ URL อื่น

ฮิวเบิร์ต ฟิกิแยร์, ผู้แนะนำฟังก์ชันนี้ อธิบายว่า:

“ ตั้งแต่ Adblock Plus 3.2 สำหรับ Chrome, Firefox และ Opera (และเวอร์ชันพัฒนาคือ 3.1.0.2053) ตัวเลือกตัวกรองใหม่ $ rewrite ช่วยให้คุณสามารถเขียน URL ของทรัพยากรใหม่แทนที่จะปิดกั้น

เมื่อ Adblock Plus กำหนด URL คำขอให้กับตัวกรองด้วยตัวเลือก $ rewrite จะแปลง URL ตามกฎที่ให้มาและบอกให้เบราว์เซอร์โหลดทรัพยากรพร้อมกัน

ไวยากรณ์ของกฎ $ เขียนซ้ำระบุสตริงที่ทำหน้าที่เป็นเทมเพลตสำหรับ URL ใหม่

$ n ถูกแทนที่ด้วยการจับคู่ย่อยนิพจน์ทั่วไปที่ n-th ของตัวกรอง นี่เป็นไวยากรณ์เดียวกับฟังก์ชัน JavaScript String.prototype.replace ()

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

นอกจากนี้ตัวกรอง $ เขียนซ้ำจะถูกละเว้นสำหรับการสืบค้น SCRIPT, SUBDOCUMENT, OBJECT และ OBJECT_SUBREQUEST ด้วยเหตุผลด้านความปลอดภัย ตัวเลือกนี้สะดวกสำหรับการแก้ไขหรือกำจัดพารามิเตอร์การค้นหา»

ข้อเสียเพียงอย่างเดียวคือสตริงการแทนที่ต้องเป็น URL สัมพัทธ์ซึ่งหมายความว่าไม่มีชื่อโฮสต์และเมื่อเขียนใหม่จะต้องเป็นของโดเมนต้นทางเดียวกันกับคำขอ

การเรียกใช้โค้ดสามารถทำได้บนแผนที่ Google

นักวิจัยด้านความปลอดภัยอธิบาย ที่:

ภายใต้เงื่อนไขบางประการเป็นไปได้ที่ผู้ดูแลตัวกรองที่เป็นอันตรายที่ไม่ได้รับอนุญาตจะสร้างกฎที่ฉีดสคริปต์ระยะไกลลงในไซต์เฉพาะ

เมื่อต้องการทำสิ่งนี้ เพียงแค่มองหาไซต์ที่โหลดสคริปต์ จากโดเมนใด ๆ ที่มีการเปลี่ยนเส้นทางแบบเปิด และใช้ XMLHttpRequest หรือ Fetch เพื่อดาวน์โหลดสคริปต์เพื่อเรียกใช้

ไม่ได้หายากเกินไปเพราะต้องทำคนเดียว เพียงแค่ใช้ Google Maps เพื่อพิสูจน์แนวคิด

ผู้วิจัยอธิบายว่า ต้องเป็นไปตามเกณฑ์ต่อไปนี้ เพื่อให้สามารถใช้บริการเว็บด้วยวิธีนี้:

  • เพจต้องโหลดสตริง JS โดยใช้ XMLHttpRequest หรือ Fetch และรันโค้ดส่งคืน
  • หน้านี้ไม่ควร จำกัด แหล่งที่มาซึ่งสามารถเรียกค้นได้โดยใช้หลักเกณฑ์นโยบายความปลอดภัยของเนื้อหาหรือตรวจสอบความถูกต้องของ URL คำขอสุดท้ายก่อนเรียกใช้โค้ดที่ดาวน์โหลด
  • แหล่งที่มาของรหัสที่ดึงมาต้องมีการเปลี่ยนเส้นทางฝั่งเซิร์ฟเวอร์แบบเปิดหรือเนื้อหาของผู้ใช้โดยพลการจากโฮสต์

การใช้ XMLHttpRequest หรือ Fetch เพื่อดาวน์โหลดสคริปต์และเปิดการเปลี่ยนเส้นทางเป็นกุญแจสำคัญสองประการในการแก้ปัญหา

เพื่อบรรเทาปัญหานี้ ขอแนะนำให้เว็บไซต์ใช้ส่วนหัวนโยบายความปลอดภัยของเนื้อหาและตัวเลือกเชื่อมต่อ-src เพื่อระบุรายการที่อนุญาตพิเศษของไซต์ที่สามารถโหลดสคริปต์ได้


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. รับผิดชอบข้อมูล: AB Internet Networks 2008 SL
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา