مناقشة المخاطر الأمنية لقيمة Sentinel في محرك Chrome V8
قيمة الحارس هي قيمة خاصة في الخوارزميات، وعادةً ما توجد كشرط إنهاء في الخوارزميات التكرارية أو المتكررة. تحتوي شيفرة مصدر Chrome على العديد من قيم الحارس. أظهرت الأبحاث الأخيرة أن تسرب كائنات قيمة الحارس المحددة قد يؤدي إلى تنفيذ تعليمات برمجية عشوائية داخل صندوق رمل Chrome.
ستتناول هذه المقالة كائن قيمة Sentinel جديد: Oddball غير مُهيأ. ظهرت هذه الطريقة الالتفافية لأول مرة في تقرير ثغرة معينة، حيث قدم باحث الأمن الشيفرة الكاملة. من الجدير بالذكر أن هذه الطريقة لا تزال قابلة للاستخدام في أحدث إصدار من V8، ولم يتم إصلاحها بعد.
تتميز هذه الطريقة بعمومية قوية:
في ثغرة CVE معينة، كانت الـ poc الأولية هي تسريب oddball غير مهيأ داخليًا.
في تقرير آخر عن ثغرة CVE، كشف الباحثون عن UninitializedOddball بشكل مباشر، على الرغم من أن سلسلة الاستغلال لم تكن كاملة في ذلك الوقت، إلا أنها أظهرت بالفعل وجود مخاطر أمان.
في تقرير الثغرات الأخير تم تقديم طريقة الاستغلال الكاملة.
توضح هذه الحالات شيوع المشكلة وخطورتها. حتى الآن، لم يصلح برنامج المراسلة هذا الثغرة.
تطبيق قيمة الحارس في V8
تم تعريف عدد كبير من الكائنات الأصلية في شفرة V8 المصدرية، وهي مرتبة بشكل متجاور في الذاكرة. بمجرد الكشف عن الكائنات الأصلية التي لا ينبغي تسريبها إلى JavaScript، قد يتم تنفيذ أي كود داخل الصندوق الرملي.
للتأكد من فعالية هذه الطريقة في V8 الأحدث، يمكننا تعديل دالة native في V8، لنكشف Uninitialized Oddball في JavaScript.
! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel](https://img-cdn.gateio.im/webp-social/moments-263e5651876fc00c4e0af0cfcd350210.webp019283746574839201
تجاوز حماية HardenType
يمكننا بناء كود، عندما ترجع دالة UninitializedOddball، لتحقيق قراءة عشوائية نسبية. يمكن أن يُظهر تحليل الشيفرة التجميعية المحسّنة أن الدالة تتحقق فقط من صحة خصائص الكائن، ولكنها لا تتحقق من القيم المقابلة للخصائص، وتحسب مباشرةً الإزاحة للحصول على عناصر المصفوفة وفقًا لدلالة JavaScript، مما يؤدي إلى تشويش النوع، وتحقيق قراءة عشوائية.
! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel])https://img-cdn.gateio.im/webp-social/moments-26c26345e3ec4effeea2e3e6b7cd8772.webp019283746574839201
! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel](https://img-cdn.gateio.im/webp-social/moments-ed89289bebf59d4b27f5bffb5511a8c5.webp019283746574839201
! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel])https://img-cdn.gateio.im/webp-social/moments-0e52075003a8ee2ca492a5fc9f35c36b.webp019283746574839201
بالمثل، يمكن بناء الكتابة العشوائية أيضًا من خلال طرق مماثلة. يُنصح عند تحسين دالة لإرجاع عناصر المصفوفة، بزيادة التحقق من مصفوفة الخريطة، لتجنب حساب إزاحة القيمة المرجعة مباشرة.
تنبيه مخاطر الأمان
تشير التحليلات إلى أن برنامج التواصل المحدد لم يقم بعد بإصلاح هذه الثغرة. على أنظمة x86، بسبب نقص ضغط العناوين، يمكن القراءة والكتابة بشكل عشوائي مباشرة بالنسبة للعملية بأكملها. على الرغم من تفعيل ASLR، إلا أن حجم الملف الكبير لا يزال يزيد من احتمالية القراءة والكتابة في المحتوى الحساس. بالجمع بين طرق مثل تحليل PE، من المحتمل إكمال سلسلة الاستغلال الكاملة في فترة زمنية قصيرة.
هذه الثغرة الأمنية لا تتعلق فقط بخلل فردي، بل أدت أيضًا إلى انخفاض كبير في صعوبة استغلال بعض الثغرات المماثلة السابقة. لم يعد الهكر بحاجة إلى مزيد من البحث لتحقيق استغلال كامل، بما في ذلك جميع الثغرات المماثلة التي تم الإبلاغ عنها سابقًا.
تتناول هذه المقالة بإيجاز الطرق التي يمكن من خلالها تحقيق القراءة العشوائية من خلال تسريب Uninitialized Oddball. هناك العديد من القيم Sentinel الأخرى في V8، والتي قد تحتوي على مخاطر أمنية مماثلة. هذا يمنحنا بعض الدروس:
هل من الممكن أن يؤدي تسرب قيمة Sentinel الأخرى أيضًا إلى هروب من صندوق الرمل V8؟
هل ينبغي اعتبار هذه الأنواع من المشكلات ثغرات أمنية رسمية؟
هل من الضروري إضافة متغيرات تتعلق بقيمة Sentinel في اختبار fuzz لاكتشاف المزيد من المشكلات المحتملة؟
بغض النظر عن ذلك، فإن هذه النوعية من المشكلات قد تقلل بشكل كبير من الفترة الزمنية التي يحتاجها القراصنة لتحقيق الاستغلال الكامل، مما يستحق اهتمامًا كبيرًا.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
تسجيلات الإعجاب 8
أعجبني
8
4
مشاركة
تعليق
0/400
ArbitrageBot
· 07-11 10:52
كيف فعلت جوجل ذلك؟ كيف يمكن أن يكون هناك ثغرة؟
شاهد النسخة الأصليةرد0
SelfSovereignSteve
· 07-10 20:07
أين حماية المتصفح؟
شاهد النسخة الأصليةرد0
StablecoinArbitrageur
· 07-10 19:58
همم، استغلال آخر مع فرصة 99.8% أن يتم تصحيحه قبل أي فرصة أرباح ذات معنى...
شاهد النسخة الأصليةرد0
DefiPlaybook
· 07-10 19:45
هل تمت أيضًا توزيع مجاني للمتصفح؟ هل يمكننا الاستفادة من هذه الفرصة؟
ثغرة تسرب قيمة Sentinel في محرك V8: تحليل طريقة جديدة للهروب من صندوق الرمل في Chrome
مناقشة المخاطر الأمنية لقيمة Sentinel في محرك Chrome V8
قيمة الحارس هي قيمة خاصة في الخوارزميات، وعادةً ما توجد كشرط إنهاء في الخوارزميات التكرارية أو المتكررة. تحتوي شيفرة مصدر Chrome على العديد من قيم الحارس. أظهرت الأبحاث الأخيرة أن تسرب كائنات قيمة الحارس المحددة قد يؤدي إلى تنفيذ تعليمات برمجية عشوائية داخل صندوق رمل Chrome.
ستتناول هذه المقالة كائن قيمة Sentinel جديد: Oddball غير مُهيأ. ظهرت هذه الطريقة الالتفافية لأول مرة في تقرير ثغرة معينة، حيث قدم باحث الأمن الشيفرة الكاملة. من الجدير بالذكر أن هذه الطريقة لا تزال قابلة للاستخدام في أحدث إصدار من V8، ولم يتم إصلاحها بعد.
تتميز هذه الطريقة بعمومية قوية:
في ثغرة CVE معينة، كانت الـ poc الأولية هي تسريب oddball غير مهيأ داخليًا.
في تقرير آخر عن ثغرة CVE، كشف الباحثون عن UninitializedOddball بشكل مباشر، على الرغم من أن سلسلة الاستغلال لم تكن كاملة في ذلك الوقت، إلا أنها أظهرت بالفعل وجود مخاطر أمان.
في تقرير الثغرات الأخير تم تقديم طريقة الاستغلال الكاملة.
توضح هذه الحالات شيوع المشكلة وخطورتها. حتى الآن، لم يصلح برنامج المراسلة هذا الثغرة.
تطبيق قيمة الحارس في V8
تم تعريف عدد كبير من الكائنات الأصلية في شفرة V8 المصدرية، وهي مرتبة بشكل متجاور في الذاكرة. بمجرد الكشف عن الكائنات الأصلية التي لا ينبغي تسريبها إلى JavaScript، قد يتم تنفيذ أي كود داخل الصندوق الرملي.
للتأكد من فعالية هذه الطريقة في V8 الأحدث، يمكننا تعديل دالة native في V8، لنكشف Uninitialized Oddball في JavaScript.
! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel](https://img-cdn.gateio.im/webp-social/moments-263e5651876fc00c4e0af0cfcd350210.webp019283746574839201
تجاوز حماية HardenType
يمكننا بناء كود، عندما ترجع دالة UninitializedOddball، لتحقيق قراءة عشوائية نسبية. يمكن أن يُظهر تحليل الشيفرة التجميعية المحسّنة أن الدالة تتحقق فقط من صحة خصائص الكائن، ولكنها لا تتحقق من القيم المقابلة للخصائص، وتحسب مباشرةً الإزاحة للحصول على عناصر المصفوفة وفقًا لدلالة JavaScript، مما يؤدي إلى تشويش النوع، وتحقيق قراءة عشوائية.
! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel])https://img-cdn.gateio.im/webp-social/moments-26c26345e3ec4effeea2e3e6b7cd8772.webp019283746574839201
! الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel
! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel](https://img-cdn.gateio.im/webp-social/moments-ed89289bebf59d4b27f5bffb5511a8c5.webp019283746574839201
! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel])https://img-cdn.gateio.im/webp-social/moments-0e52075003a8ee2ca492a5fc9f35c36b.webp019283746574839201
! الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel
بالمثل، يمكن بناء الكتابة العشوائية أيضًا من خلال طرق مماثلة. يُنصح عند تحسين دالة لإرجاع عناصر المصفوفة، بزيادة التحقق من مصفوفة الخريطة، لتجنب حساب إزاحة القيمة المرجعة مباشرة.
تنبيه مخاطر الأمان
تشير التحليلات إلى أن برنامج التواصل المحدد لم يقم بعد بإصلاح هذه الثغرة. على أنظمة x86، بسبب نقص ضغط العناوين، يمكن القراءة والكتابة بشكل عشوائي مباشرة بالنسبة للعملية بأكملها. على الرغم من تفعيل ASLR، إلا أن حجم الملف الكبير لا يزال يزيد من احتمالية القراءة والكتابة في المحتوى الحساس. بالجمع بين طرق مثل تحليل PE، من المحتمل إكمال سلسلة الاستغلال الكاملة في فترة زمنية قصيرة.
هذه الثغرة الأمنية لا تتعلق فقط بخلل فردي، بل أدت أيضًا إلى انخفاض كبير في صعوبة استغلال بعض الثغرات المماثلة السابقة. لم يعد الهكر بحاجة إلى مزيد من البحث لتحقيق استغلال كامل، بما في ذلك جميع الثغرات المماثلة التي تم الإبلاغ عنها سابقًا.
! الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel
ملخص
تتناول هذه المقالة بإيجاز الطرق التي يمكن من خلالها تحقيق القراءة العشوائية من خلال تسريب Uninitialized Oddball. هناك العديد من القيم Sentinel الأخرى في V8، والتي قد تحتوي على مخاطر أمنية مماثلة. هذا يمنحنا بعض الدروس:
هل من الممكن أن يؤدي تسرب قيمة Sentinel الأخرى أيضًا إلى هروب من صندوق الرمل V8؟
هل ينبغي اعتبار هذه الأنواع من المشكلات ثغرات أمنية رسمية؟
هل من الضروري إضافة متغيرات تتعلق بقيمة Sentinel في اختبار fuzz لاكتشاف المزيد من المشكلات المحتملة؟
بغض النظر عن ذلك، فإن هذه النوعية من المشكلات قد تقلل بشكل كبير من الفترة الزمنية التي يحتاجها القراصنة لتحقيق الاستغلال الكامل، مما يستحق اهتمامًا كبيرًا.