استكشاف كيفية تجاوز آلية HardenProtect في Chrome v8 من خلال تسرب قيمة Sentinel
المقدمة
قيمة Sentinel هي قيمة خاصة في الخوارزميات، وغالبًا ما تستخدم كشرط لإنهاء الحلقات أو الخوارزميات التكرارية. تم استخدام هذه القيمة الخاصة على نطاق واسع في كود مصدر Chrome. أظهرت الأبحاث الأخيرة أنه من خلال تسريب كائن TheHole، يمكن تحقيق ثغرات تنفيذ أي كود داخل صندوق الرمل في Chrome. ستتناول هذه المقالة كائنًا ذا صلة آخر - Uninitialized Oddball، وكيف يمكن استخدامه لتجاوز آليات الأمان في Chrome.
من المهم أن نلاحظ أن أحدث إصدار من محرك V8 لا يزال يعاني من هذه المشكلة. تتمتع هذه الطريقة بمرونة كبيرة، وقد تؤثر على صعوبة استغلال العديد من الثغرات التاريخية.
! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel](https://img-cdn.gateio.im/webp-social/moments-263e5651876fc00c4e0af0cfcd350210.webp019283746574839201
قيمة السنتينل في V8
يتم تعريف العديد من الكائنات الأصلية في شفرة V8 المصدرية، وتكون مرتبة بشكل متجاور في الذاكرة. إذا تم الكشف عن هذه الكائنات بشكل خاطئ إلى بيئة JavaScript، فقد يؤدي ذلك إلى هروب من الصندوق الرملي. مثال على ذلك هو تسرب كائن TheHole المذكور سابقًا.
يمكننا التحقق من ذلك من خلال تعديل الدوال الأصلية لـ V8. على سبيل المثال، تعديل إزاحة دالة %TheHole)( لجعلها تعيد كائن Uninitialized Oddball.
![كشف حصري حول كيفية تجاوز حماية Chrome v8 باستخدام قيمة Sentinel المسربة])https://img-cdn.gateio.im/webp-social/moments-26c26345e3ec4effeea2e3e6b7cd8772.webp(
! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel])https://img-cdn.gateio.im/webp-social/moments-4c091ca0e153e953eb168e99762ff7cc.webp(
تجاوز حماية HardenType
يمكن تحقيق قراءة الذاكرة النسبية باستخدام كائن Uninitialized Oddball. المفتاح هو أن الكود المحسن لجافا سكريبت لم يتحقق بشكل صحيح من خصائص الكائن، مما أدى إلى حساب الإزاحة والوصول إلى عناصر المصفوفة مباشرة وفقًا لمدلول جافا سكريبت، مما تسبب في خلط الأنواع.
الاقتراح لإصلاح المشكلة هو إضافة فحص لخريطة المصفوفة عند إرجاع عناصر مصفوفة الدالة المُحسَّنة، لتجنب الحساب المباشر للإزاحة.
![كشف حصري حول تجاوز حماية Chrome v8 من خلال تسريب قيمة Sentinel])https://img-cdn.gateio.im/webp-social/moments-1e3fda77c04bceafdcc40413824a5d37.webp(
! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel])https://img-cdn.gateio.im/webp-social/moments-ed89289bebf59d4b27f5bffb5511a8c5.webp019283746574839201
تحذير مخاطر PatchGap
أظهرت التحليلات أن بعض البرمجيات قد تعاني من مشكلة PatchGap، ولم يتم إصلاح هذه الثغرة بعد. على سبيل المثال، في حالة Skype، نظرًا لأن ملفاته كبيرة ويتم تحميلها مباشرة إلى الذاكرة، قد يتمكن المهاجمون من الاستغلال من خلال القراءة والكتابة في عنوان ثابت.
قد تؤدي الإشارة إلى هذه الطريقة الجديدة للالتفاف إلى تقليل صعوبة استغلال بعض الثغرات التاريخية. يُنصح الأطراف المعنية بإعادة تقييم البرمجيات والثغرات المتأثرة.
تناقش هذه المقالة بإيجاز إمكانية تحقيق القراءة العشوائية من خلال تسرب قيمة Sentinel مثل Uninitialized Oddball. هناك أيضًا قيم Sentinel أخرى في V8 قد تحمل مخاطر أمان مماثلة. وهذا يذكرنا:
تسربات Uninitialized Oddball الأخرى قد تؤدي إلى هروب من صندوق V8
لا يزال تحديد أمان هذه الأنواع من المشكلات غير واضح
يمكن اعتبار إضافة قيمة Sentinel كمتغير إلى اختبار fuzzer
بغض النظر عن ذلك، يمكن أن تؤدي هذه الأنواع من المشاكل إلى تقصير فترة استغلال المهاجم بشكل كبير، مما يستحق اهتمامًا كبيرًا.
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
توجد ثغرة تسرب قيمة Sentinel في محرك Chrome V8 يمكن أن تحقق هروبًا من الحاوية
استكشاف كيفية تجاوز آلية HardenProtect في Chrome v8 من خلال تسرب قيمة Sentinel
المقدمة
قيمة Sentinel هي قيمة خاصة في الخوارزميات، وغالبًا ما تستخدم كشرط لإنهاء الحلقات أو الخوارزميات التكرارية. تم استخدام هذه القيمة الخاصة على نطاق واسع في كود مصدر Chrome. أظهرت الأبحاث الأخيرة أنه من خلال تسريب كائن TheHole، يمكن تحقيق ثغرات تنفيذ أي كود داخل صندوق الرمل في Chrome. ستتناول هذه المقالة كائنًا ذا صلة آخر - Uninitialized Oddball، وكيف يمكن استخدامه لتجاوز آليات الأمان في Chrome.
من المهم أن نلاحظ أن أحدث إصدار من محرك V8 لا يزال يعاني من هذه المشكلة. تتمتع هذه الطريقة بمرونة كبيرة، وقد تؤثر على صعوبة استغلال العديد من الثغرات التاريخية.
! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel](https://img-cdn.gateio.im/webp-social/moments-263e5651876fc00c4e0af0cfcd350210.webp019283746574839201
قيمة السنتينل في V8
يتم تعريف العديد من الكائنات الأصلية في شفرة V8 المصدرية، وتكون مرتبة بشكل متجاور في الذاكرة. إذا تم الكشف عن هذه الكائنات بشكل خاطئ إلى بيئة JavaScript، فقد يؤدي ذلك إلى هروب من الصندوق الرملي. مثال على ذلك هو تسرب كائن TheHole المذكور سابقًا.
يمكننا التحقق من ذلك من خلال تعديل الدوال الأصلية لـ V8. على سبيل المثال، تعديل إزاحة دالة %TheHole)( لجعلها تعيد كائن Uninitialized Oddball.
![كشف حصري حول كيفية تجاوز حماية Chrome v8 باستخدام قيمة Sentinel المسربة])https://img-cdn.gateio.im/webp-social/moments-26c26345e3ec4effeea2e3e6b7cd8772.webp(
! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel])https://img-cdn.gateio.im/webp-social/moments-4c091ca0e153e953eb168e99762ff7cc.webp(
تجاوز حماية HardenType
يمكن تحقيق قراءة الذاكرة النسبية باستخدام كائن Uninitialized Oddball. المفتاح هو أن الكود المحسن لجافا سكريبت لم يتحقق بشكل صحيح من خصائص الكائن، مما أدى إلى حساب الإزاحة والوصول إلى عناصر المصفوفة مباشرة وفقًا لمدلول جافا سكريبت، مما تسبب في خلط الأنواع.
الاقتراح لإصلاح المشكلة هو إضافة فحص لخريطة المصفوفة عند إرجاع عناصر مصفوفة الدالة المُحسَّنة، لتجنب الحساب المباشر للإزاحة.
![كشف حصري حول تجاوز حماية Chrome v8 من خلال تسريب قيمة Sentinel])https://img-cdn.gateio.im/webp-social/moments-1e3fda77c04bceafdcc40413824a5d37.webp(
! [الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel])https://img-cdn.gateio.im/webp-social/moments-ed89289bebf59d4b27f5bffb5511a8c5.webp019283746574839201
تحذير مخاطر PatchGap
أظهرت التحليلات أن بعض البرمجيات قد تعاني من مشكلة PatchGap، ولم يتم إصلاح هذه الثغرة بعد. على سبيل المثال، في حالة Skype، نظرًا لأن ملفاته كبيرة ويتم تحميلها مباشرة إلى الذاكرة، قد يتمكن المهاجمون من الاستغلال من خلال القراءة والكتابة في عنوان ثابت.
قد تؤدي الإشارة إلى هذه الطريقة الجديدة للالتفاف إلى تقليل صعوبة استغلال بعض الثغرات التاريخية. يُنصح الأطراف المعنية بإعادة تقييم البرمجيات والثغرات المتأثرة.
! الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel
ملخص
تناقش هذه المقالة بإيجاز إمكانية تحقيق القراءة العشوائية من خلال تسرب قيمة Sentinel مثل Uninitialized Oddball. هناك أيضًا قيم Sentinel أخرى في V8 قد تحمل مخاطر أمان مماثلة. وهذا يذكرنا:
بغض النظر عن ذلك، يمكن أن تؤدي هذه الأنواع من المشاكل إلى تقصير فترة استغلال المهاجم بشكل كبير، مما يستحق اهتمامًا كبيرًا.
! الكشف الحصري عن تجاوز Chrome v8 HardenProtect عن طريق تسريب قيمة Sentinel