تسمح الثغرة الأمنية في قوائم Adblock Plus بتنفيذ تعليمات برمجية ضارة

المتصفح

مؤخرا تم اكتشاف ثغرة أمنية مما قد يسمح للمشرفين بحظر قوائم عوامل التصفية لملحقات متصفح Adblock Plus و AdBlock و uBlocker لإنشاء عوامل تصفية تضخ البرامج النصية البعيدة في مواقع الويب.

مع قاعدة المستخدمين التي تجاوزت علامة 10 ملايين ، إذا تم إدخال نصوص ضارة في أدوات منع الإعلانات ، فسيكون لذلك تأثير كبير لأنهم قد ينفذون أنشطة غير مرغوب فيها ، مثل سرقة ملفات تعريف الارتباط أو معلومات الاتصال أو التسبب في إعادة توجيه الصفحة أو أي سلوك آخر غير مرغوب فيه.

لاولئك الذين ليسوا على دراية بأدوات منع الإعلانات ، فهم يستخدمون بشكل أساسي قوائم عناوين URL المتعلقة بالإعلانات والسلوك الضار.

عموما يديرها فريق صغير من الناس أو حتى شخص واحد.

عندما يتم تحميل هذه القوائم بملحق حظر الإعلانات مثل Adblock Plus ، فإن هذا الامتداد سيمنع المتصفح من الاتصال بعناوين URL المدرجة في القائمة ، وبالتالي يمنع هذا الاتصال بالإعلانات أو البرامج النصية الضارة.

خيار مرشح إعادة الكتابة $ يسبب المشكلة

عندما Adblocker Plus 3.2 تحديث تم إطلاقه في عام 2018 ، إضافة خيار جديد لقائمة التصفية ، يسمى $ Rewrite.

هذا الخيار مسموح إلى مشرف القائمة استبدل طلب ويب يتطابق مع تعبير عادي على وجه الخصوص مع عنوان URL آخر.

Hubert Figuière ، الذي قدم هذه الوظيفة ، أوضح أن:

"منذ Adblock Plus 3.2 لـ Chrome و Firefox و Opera (وإصدارات التطوير 3.1.0.2053) ، يتيح لك خيار مرشح جديد إعادة كتابة $ إعادة كتابة مورد عنوان URL بدلاً من حظره.

عندما يقوم Adblock Plus بتعيين عنوان URL لطلب إلى مرشح مع خيار إعادة الكتابة بالدولار ، فإنه يحول عنوان URL بناءً على القاعدة المقدمة ويخبر المتصفح بتحميل المورد في نفس الوقت.

بناء جملة القاعدة $ يعيد الكتابة تحديد السلسلة التي تعمل كقالب لعنوان URL الجديد.

يتم استبدال $ n بالمطابقة الفرعية n-th للتعبير العادي الخاص بالمرشح. هذا هو نفس بناء الجملة مثل وظيفة JavaScript String.prototype.replace ().

إذا كان عنوان URL الناتج نسبيًا (أي ليس لديك مضيف) ، سيتم استخدام أصل الاستعلام الأصلي كأساس. في كلتا الحالتين ، إذا كان عنوان URL الجديد لا يشارك الأصل ، فسيتم اعتبار إعادة الكتابة غير ناجحة وسيمر الطلب الأولي.

أيضًا ، يتم تجاهل عوامل تصفية إعادة الكتابة $ لاستعلامات SCRIPT و SUBDOCUMENT و OBJECT و OBJECT_SUBREQUEST لأسباب أمنية. هذا الخيار مناسب لتعديل أو حذف معامِلات الاستعلام ».

الجانب السلبي الوحيد هو أن السلسلة البديلة يجب أن تكون عنوان URL نسبيًا ، مما يعني أنها لا تحتوي على اسم مضيف ، وعند إعادة كتابتها ، يجب أن تنتمي إلى نفس النطاق الأصلي مثل الطلب.

يتم تنفيذ التعليمات البرمجية حتى على خرائط جوجل

وأوضح باحث أمني ما يلي:

في ظل ظروف معينة ، من الممكن أن يقوم مشرف صيانة عامل التصفية الضار غير المصرح به بإنشاء قاعدة تضخ برنامجًا نصيًا بعيدًا في موقع معين.

للقيام بذلك ، ابحث فقط عن موقع يقوم بتحميل البرامج النصية من أي مجال يحتوي على إعادة توجيه مفتوحة واستخدم XMLHttpRequest أو Fetch لتنزيل البرامج النصية للتشغيل.

لم يكن من الصعب العثور عليه لأن القيام بذلك بمفرده فقط استخدم خرائط Google كدليل على المفهوم.

وأوضح الباحث ذلك يجب استيفاء المعايير التالية بحيث يمكن استغلال خدمة الويب بهذه الطريقة:

  • يجب أن تقوم الصفحة بتحميل سلسلة JS باستخدام XMLHttpRequest أو Fetch وتنفيذ كود الإرجاع.
  • يجب ألا تقيد الصفحة المصادر التي يمكن استردادها منها باستخدام إرشادات سياسة أمان المحتوى ، أو التحقق من صحة عنوان URL النهائي للطلب قبل تنفيذ التعليمات البرمجية التي تم تنزيلها.
  • يجب أن يكون لمصدر الشفرة المستردة إعادة توجيه مفتوحة من جانب الخادم أو محتوى مستخدم عشوائي من المضيف.

استخدام XMLHttpRequest أو Fetch لتنزيل البرامج النصية وفتح إعادة التوجيه هما مفتاحان لحل المشكلة.

للتخفيف من هذه المشكلة ، من المستحسن أن تستخدم مواقع الويب عنوان سياسة أمان المحتوى وخيار connect-src لتحديد قائمة بيضاء بالمواقع التي يمكن تحميل البرامج النصية منها.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: AB Internet Networks 2008 SL
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.