الهجمات الإلكترونية المدعومة بالذكاء الاصطناعي: كيفية الكشف عن التهديدات الذكية ومنعها والدفاع ضدها

اقرأ الآن
نستخدمُ الذكاء الاصطناعي في ترجمات الموقع، ومع أننا نسعى جاهدين لبلوغ الدقة قد لا تكون هذه الترجمات دقيقةً بنسبة 100% دائمًا. تفهّمك لهذا الأمر هو موضع تقدير لدينا.

تحليل شامل ل CVE-2024-6778: ثغرة حالة السباق في أدوات تطوير كروم

ب OPSWAT
شارك هذا المنشور

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

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

خلفية CVE-2024-6778

CVE-2024-6778 هي ثغرة أمنية تتعلق بحالة سباق تم اكتشافها في أدوات تطوير كروم DevTools. وهي تمكّن المهاجمين من حقن HTML أو JavaScript خبيثة في صفحات متصفح ذات امتيازات خاصة عبر ملحقات متصفح خبيثة. وفقًا لقاعدة بيانات الثغرات الأمنية الوطنية (NVD)، تم تصنيف هذه الثغرة الأمنية بدرجة عالية من الخطورة، حيث بلغت درجة CVSS 8.8.  

يرجع تصنيف الخطورة العالية لهذه الثغرة الأمنية إلى قدرتها على تمكين تنفيذ التعليمات البرمجية عن بُعد، مما قد يؤدي إلى تعريض الأنظمة للخطر والإضرار بالسرية وتقليل التوافر.  

نظرة عامة على أمان الكروم

للحصول على فهم أعمق للآثار المترتبة على CVE-2024-6778، من المهم معرفة الجوانب الرئيسية لنموذج أمان Chromium. كروميوم هو الأساس المفتوح المصدر لمتصفحات مثل جوجل كروم ومايكروسوفت إيدج وأوبرا و Brave. وهو يستخدم نموذجًا متعدد العمليات حيث تعمل كل علامة تبويب، والتي يشار إليها أيضًا باسم العارض، ومكونات المتصفح المختلفة في عمليات معزولة لتعزيز الاستقرار والأمان من خلال الحد من نطاق الاختراقات المحتملة. 

أحد العناصر الأساسية لأمان Chromium هو آلية وضع الحماية الخاصة به، والتي تقيد عمليات العارض من الوصول المباشر إلى موارد النظام. بدلاً من ذلك، تتم إدارة جميع التفاعلات من خلال قنوات IPC (الاتصال بين العمليات) لضمان تنفيذ العمليات المصرح بها فقط.  

لا تخضع جميع المكونات داخل Chromium لصندوق رمل كامل. تُعرَض صفحات WebUI، مثل chrome://settings و chrome://downloads، ضمن عمليات العارض ولكنها تعمل بقيود صندوق رمل جزئي. تمنحها هذه العملية إمكانية الوصول إلى واجهات برمجة تطبيقات المتصفح التي لا يمكن الوصول إليها عادةً عبر الويب.

على سبيل المثال، تلعب صفحة chrome://policy دورًا حيويًا في بيئات المؤسسات لأنها تمكّن المسؤولين والمستخدمين من تكوين نُهُج أمان المستعرض وفرضها. تتم إدارة هذه النُهج أيضاً من خلال نهج المجموعة على أنظمة ويندوز.  

نظرًا لأن chrome://policy يمكن أن يتفاعل مباشرةً مع نظام التشغيل، فهو هدف ثمين للمهاجمين. ومع الثغرة CVE-2024-6778 التي تستغل حالة سباق داخل أدوات تطوير كروم DevTools، يمكن للمهاجمين حقن تعليمات برمجية خبيثة في هذه الصفحات، مما يشكل مخاطر أمنية خطيرة.  

التحليل الفني لفيروس CVE-2024-6778

الاكتشاف

تم اكتشاف هذه الثغرة الأمنية في ميزة اختبار تم تقديمها في الإصدار 117 من Chrome Enterprise. تتيح هذه الميزة اختبار السياسة من خلال صفحة chrome://policy/test. ونظرًا لمحدودية التوثيق الرسمي لهذه الميزة، أجرى زملاؤنا فحصًا شاملاً لشفرة مصدر كروم المصدر، مدعومًا برؤى من مؤلف مكافحة التطرف العنيف، لفهم تطبيقها بشكل كامل وتحديد الثغرات الأمنية المرتبطة بها.

مكونات إدارة السياسات 

كشف تحليل الشيفرة المصدرية لزملاء OPSWAT أنه ضمن chrome://policy/test، تتم إدارة السياسات باستخدام معلومات السياسة وتوصيلها بين واجهة الويب وعمليات المتصفح من خلال PolicyTestBrowserProxy الفصل. إن معلومات السياسة تُعرَّف البنية على النحو التالي:  

وبمزيد من الفحص الإضافي للفئة المسؤولة عن التعامل مع هذه السياسات تم تحديد طريقة تسمى تطبيقTestPolicies. تستفيد هذه الطريقة من API خاصة, تعيينالسياسات المحلية للاختبار المحليلتطبيق قائمة من النُهج بشكل ديناميكي.

لاكتساب نظرة ثاقبة حول كيفية معالجة طلبات السياسات عبر API هذه، قام الزملاء بتحليل التعامل مع السياسات المحلية للاختبار المحلي داخل طريقة معالج السياسةUIHandler الفصل: 

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

وقد تبين أن هذا التحقق غير كافٍ، لأنه يضمن فقط أن مزود_اختبار_المحلي غير فارغة قبل تطبيق السياسات. إنشاء وتهيئة مزود_اختبار_المحلي يتم التحكم فيها بواسطة إنشاء إذا كان مسموحًا الطريقة:  

ضمن إنشاء إذا كان مسموحًا فإن قيمة الإرجاع تعتمد كليًا على نتيجة الطريقة IsPolicyTestingEnabled الدالة. تحدد هذه الدالة ما إذا كانت الدالة LocalTestPolicyPolicyProvider مثيل، بناءً على مجموعة من تفضيلات المستخدم وقناة إصدار المتصفح: 

منذ خدمة_مسبقة باستمرار إلى لا شيء في كل مرة IsPolicyTestingTestingEnabled() يتم استدعاؤه، يتم تجاوز الشرط الأول، تاركًا قرار التمكين معتمدًا فقط على قناة إصدار المتصفح.

في إصدارات Chromium التي لا تحمل علامة تجارية، يتم تعيين قناة الإصدار افتراضيًا إلى القناة::غير معروف. وفقًا لمنطق الدالة القناة::غير معروف يعامل بنفس معاملة القناة::DEFAULTالتي تمكّن ميزة اختبار السياسة بشكل افتراضي. كشف تحليل تدفق التعليمات البرمجية أن API الخاصة تعيينالسياسات المحلية للاختبار المحلي يمكن استدعاؤها عبر واجهة WebUI لتطبيق النُهج دون أي قيود وصول ذات مغزى. 

الاستغلال

من خلال تحديد API الخاصة هذه والاستفادة منها، يمكن للمهاجم تطبيق النُهج بشكل تعسفي من خلال واجهة برمجة API WebUI، مما يتيح التلاعب بالإعدادات مثل تم تمكين BrowserSwitcherEnabled, BrowserSwitcherUrlistLIST, مسار المتصفح البديلو معلمات المتصفح البديل لتنفيذ الأوامر. على سبيل المثال، من خلال تعيين مسار المتصفح البديل إلى بوويرشيل و معلمات المتصفح البديل إلى ["حساب"]، يمكن تنفيذ أوامر الصدفة العشوائية عند زيارة عنوان URL محدد.

تطبيق سياسة المستخدم الخبيثة التعسفية عبر API الخاصة

لتوضيح كيف يمكن تطبيق السياسات باستخدام الخاص تعيينالسياسات المحلية للاختبار المحلي API التي تم تحديدها في التحليل السابق، فإن كود JavaScript التالي هو عبارة عن برنامج نصي يقوم بتعيين السماح بديناصور بيض عيد الفصح ويطبقها بفعالية من خلال واجهة الويب عن طريق استدعاء تعيينالسياسات المحلية للاختبار المحلي:

يمكن تطبيق السياسة بنجاح لتعطيل سياسة تعطيل السماح بديناصور بيض عيد الفصح الإعداد.

للحصول على تأثير أكبر، قد يستهدف المهاجم المتصفح الجلاد السياسة:

تمكّن هذه السياسة المتصفح من استدعاء مسار متصفح بديل إذا كان عنوان URL يطابق شروطاً معينة. يمكن استغلالها من خلال تكوين هذا المسار للإشارة إلى نظام قابل للتنفيذ لتنفيذ أوامر نظام التشغيل. يوضح كود JavaScript التالي هذا النهج:

يقوم هذا البرنامج النصي بالمهام التالية: 

  • تمكين المتصفح الجلاد ميزة لـ example.com 
  • تعيين مسار المتصفح البديل لـ PowerShell 
  • التنفيذ حساب كلما تم الوصول إلى عنوان URL المحدد.

محاكاة ملحقات كروم الخبيثة

يؤدي تحديد واجهة API الخاصة التي تسمح بتطبيق السياسات إلى تقديم ناقل هجوم كبير للمهاجمين. لاستغلال هذه الثغرة بفعالية، سيحتاج المهاجم إلى تطوير امتداد خبيث لمتصفح كروم يستخدم واجهة برمجة API Chrome DevTools API لتنفيذ تعليمات برمجية خبيثة من JavaScript.  

ولإظهار التأثير المحتمل في العالم الحقيقي، قام زملاؤنا بمحاكاة سيناريو يتم فيه تثبيت امتداد Chrome خبيث على متصفح ضعيف واستخدامه لتنفيذ الهجوم، حيث تمكّن واجهات برمجة تطبيقات chrome.devtools APIs في امتدادات Chrome المطورين من توسيع واجهة DevTools في Chrome والتفاعل معها.  

ومع ذلك، فإن تنفيذ واجهة API DevTools من خلال ملحق يطرح بعض التحديات التي يجب تجاوزها. أولًا، لا تعمل واجهة API DevTools إلا عندما تكون DevTools مفتوحة وتفحص موقعًا إلكترونيًا بنشاط. ثانيًا، لا تسمح واجهة برمجة API DevTools بتنفيذ التعليمات البرمجية على واجهة مستخدم الويب، WebUI. يساعد هذا التقييد في الحفاظ على أمن وسلامة واجهة مستخدم الويب أثناء عمليات التطوير والفحص

علامات تشير إلى تنفيذ Javascript عبر API إعادة التحميل

كشف المزيد من التحليل أن الدالة chrome.devtools.inspectedWindow.reoad تفتقر إلى التحقق من التحقق مما إذا كان مسموحًا للملحق بتشغيل البرامج النصية على الصفحة التي تم فحصها. مستوى دفاعها الوحيد هو خادم امتداد devtools، الذي يحظر الوصول بمجرد تغيير عنوان URL للصفحة التي تم فحصها.  

حول:الصفحات الفارغة ترث أذونات وأصل الصفحة التي فتحتها. هذا يعني أن القدرة على تنفيذ التعليمات البرمجية على about:blank عند إعادة توجيهها من إشارات WebUI هي ثغرة محتملة.

تنفيذ التعليمات البرمجية على واجهة المستخدم على الويب عبر API لإعادة التحميل

حالة السباق في chrome.devtools.inspectedWindow.reoad() يسمح بتنفيذ التعليمات البرمجية على صفحات WebUI في كروم (على سبيل المثال، chrome://policy)، والتي عادةً ما تكون محمية. تستفيد عملية الاستغلال من قدرة API إعادة التحميل على حقن جافا سكريبت أثناء انتقالات الصفحة. إليك كيفية عملها:

  • واجهة الويب المستهدفة: افتح صفحة WebUI (على سبيل المثال، chrome://policy) في علامة تبويب وأرفق أدوات التطوير.
  • حقن النص البرمجي: استخدم API إعادة التحميل() مع نص محقون لتشغيل JavaScript عشوائي أثناء إعادة التحميل.
  • استغلال حالة سباق الاستغلال: تحدث حالة السباق عندما يتم تشغيل إعادة التحميل قبل تهيئة آليات أمان WebUI بالكامل، مما يسمح بتنفيذ البرنامج النصي المحقون.

في سياق التنقل من صفحة حول: صفحة فارغة إلى chrome://policy:  

نظرًا لأنه يتم التحقق من عنوان URL فقط بدلاً من أصل الصفحة، توجد فترة وجيزة بعد التصفح حيث يعكس الأصل الصفحة الجديدة بينما يظل عنوان URL دون تغيير.

إذا كان chrome.devtools.inspectedWindow.reoad أثناء هذه النافذة، فقد يؤدي ذلك إلى تنفيذ JavaScript على الصفحة الوجهة عن غير قصد.

تحسين الموثوقية لظروف السباق

استغلال حالة السباق غير موثوق بطبيعته بسبب اعتماده على التوقيت. بالإضافة إلى ذلك، يمكن أن تتسبب عمليات إعادة التحميل السريع أو النصوص البرمجية المشوهة في تعطل الصفحة. هناك طريقة جديدة لتحسين الموثوقية تتضمن تحريض تعطل الصفحة عن قصد، حيث يتم عادةً إلغاء الأوامر الصادرة عبر DevTools أثناء التعطل، ولكن إعادة تحميل الصفحة تم تعيينه إلى chrome.devtools.inspectedWindow.reoad() مدرجًا في القائمة البيضاء ويتم تنفيذه بعد إعادة تحميل الصفحة.

فيما يلي نموذج سير عمل لتعطيل الصفحة عن طريق دفع الأوامر اللاحقة:  

يمكن أن تؤدي عبارة مصحح الأخطاء في البرنامج النصي للمحتوى إلى حدوث عطل

يؤدي استخدام مصحح الأخطاء مرتين في تتابع سريع إلى تعطيل عملية التنقل في البرنامج النصي للمحتوى. يمكن أن يؤدي إلى حدوث عطل عن طريق وضع حالة_الملاحة_التنقل_الملاحة إلى حالة غير متوقعة. تنشأ هذه المشكلة عندما RenderFrameImpl::SynchronouslyCommitAboutAboutBlankForBug778318 يتم تنفيذه, تغيير _حالة_التزام_الملاحة إلى قيمة غير متوقعة.

يوقف الاستدعاء الأول التنفيذ مؤقتًا، ويترك حالة_الملاحة_التنقل_الملاحة في حالة غير متناسقة، وتتوقف الثانية مؤقتًا خلال CHECK_EQ مما يؤدي إلى فشل التحقق من صحة الحالة والتسبب في حدوث عطل.

الاصلاح

قد يؤدي إهمال تحديث إصدار المتصفح بانتظام إلى تعريض جهازك لتهديدات أمنية خطيرة، خاصةً تلك المرتبطة بمكافحة التطرف العنيف (CVEs) (الثغرات الأمنية الشائعة والتعرضات). للمساعدة في التخفيف من هذه المخاطر، يوفر MetaDefender Endpoint™ حماية قوية من خلال اكتشاف إصدار المتصفح والتحقق من الثغرات الأمنية، بما في ذلك CVEs المعروفة مثل CVE-2024-6778.  

يضمن MetaDefender Endpoint تحديث تطبيقك ويضع علامة على أي إصدارات قديمة أو مصابة. كما يسرد التطبيقات المثبتة التي تحتوي على ثغرات أمنية معروفة، مصنفة حسب خطورة CVE، ويوصي بإصلاحات للتخفيف من التهديدات المحتملة بشكل فعال. للاطلاع على عرض توضيحي مباشر حول كيفية مساعدة MetaDefender Endpoint في التخفيف من هذه المخاطر، تواصل مع أحد خبرائنا اليوم. 

العلامات:

ابق على اطلاع دائم OPSWAT!

اشترك اليوم لتلقي آخر تحديثات الشركة, والقصص ومعلومات عن الفعاليات والمزيد.