إخفاء الوصول إلى الجذر في Magisk على وشك أن يصبح أكثر صعوبة بفضل التغيير الأخير في SafetyNet الذي جلب تصديق الأجهزة.
مرة أخرى في شهر مارس، قام عدد قليل من المستخدمين بتثبيت Magisk لاحظت أن أجهزتهم كانت تفشل في الحصول على شهادة SafetyNet. كانت هذه الأخبار مزعجة لمجتمع XDA لأنها تعني أن العديد من التطبيقات المصرفية/المالية المهمة والألعاب الشهيرة مثل Pokémon Go وFate/Grand Order كانت ترفض العمل على الأجهزة التي تم الوصول إلى صلاحيات الروت. لبعض الوقت، بدا كما لو تم سحب القيود المشددة في SafetyNet، ليتم طرحها مرة أخرى لعدد قليل من المستخدمين في الأسابيع القليلة الماضية. ومع ذلك، أكدت جوجل بهدوء في أوائل شهر مايو أنها تختبر الشهادات المدعومة بالأجهزة استجابات SafetyNet، وهو ما جعل Magisk غير قادر على إخفاء حالة إلغاء قفل أداة تحميل التشغيل مرة أخرى يمشي. إذا تم نشر هذا التغيير على نطاق واسع، فهذا يعني أنه سيتعين على المستخدمين الاختيار بين الوصول إلى ROM/ROM/kernels المخصصة/إلخ. أو التطبيقات والألعاب المصرفية المفضلة لديهم. قد تختفي قريبًا واحدة من أكبر نداءات Android لمستخدمي الطاقة.
لتلخيص هذه السلسلة من الأحداث، يجب علينا أولاً أن نتحدث عن SafetyNet نفسها. SafetyNet عبارة عن مجموعة من واجهات برمجة التطبيقات في خدمات Google Play. تعد واجهة برمجة تطبيقات SafetyNet Attestation API إحدى واجهات برمجة التطبيقات هذه، ويمكن استدعاؤها بواسطة تطبيقات الطرف الثالث للتحقق مما إذا كان قد تم التلاعب ببيئة البرنامج الخاصة بالجهاز بأي شكل من الأشكال. تتحقق واجهة برمجة التطبيقات (API) من أشياء مختلفة مثل علامات الثنائيات الخاصة بالمستخدم المتميز، وحالة إلغاء قفل أداة تحميل التشغيل، والمزيد. عندما تقوم بتجذير جهاز باستخدام Magisk، فإنه "[ينشئ] "بيئة آمنة" معزولة لعملية اكتشاف [SafetyNet]، ويمر عبر واجهة برمجة تطبيقات Google لإنشاء ملف
قانوني نتيجة SafetyNet التي لا تعكس الحالة الحقيقية للجهاز،" وفقًا لأحد كبار المطورين المعترف بهم في XDA com.topjohnwu. يسمح هذا للمستخدم بتجذير هاتفه مع التأكد من أن واجهة برمجة التطبيقات (API) تُرجع دائمًا "خطأ" لأي عمليات فحص لإلغاء قفل أداة تحميل التشغيل. هذه الطريقة لتجاوز اكتشاف فتح أداة تحميل التشغيل الخاصة بـ SafetyNet كانت ناجحة مع Magisk خلال الأعوام القليلة الماضية سنوات، ولكن هذا فقط بسبب تأجيل Google التحقق من سلامة صورة التمهيد باستخدام الأجهزة تصديق. في شهر مارس، بدا أن Google بدأت أخيرًا في استخدام شهادة الأجهزة في SafetyNet للتحقق من صحة الأجهزة صورة التمهيد، لكننا لم نحصل أبدًا على بيان رسمي من Google يؤكد التغيير ولم يحصل عليه سوى عدد قليل من المستخدمين متأثر. كما رصده عضو كبير في XDA ديسبلاكسومع ذلك، أكدت Google في 5 مايو 2020، أن استجابات واجهة برمجة تطبيقات SafetyNet Attestation API من بعض الأجهزة تتضمن الآن عمليات فحص مدعومة بالأجهزة.في مجموعة Google الخاصة بـ "عملاء SafetyNet API"، قامت Google بتفصيل ميزة جديدة لواجهة برمجة التطبيقات Attestation API: نوع التقييم. ستحتوي استجابة JSON Web Signature (JWS) من بعض الأجهزة على حقل يسمى "evaluationType" والذي "سيزود المطورين برؤية ثاقبة في أنواع الإشارات/القياسات التي ساهمت في كل استجابة فردية لواجهة برمجة تطبيقات شهادة SafetyNet." أحد الرموز المميزة المدعومة في هذا الحقل هو "HARDWARE_BACKED" الذي يشير إلى أن واجهة برمجة التطبيقات "[تستخدم] ميزات الأمان المتوفرة المدعومة بالأجهزة للجهاز البعيد (على سبيل المثال شهادة المفاتيح المدعومة بالأجهزة) للتأثير على تقييمها." تقول Google إنها "تقوم حاليًا بتقييم وتعديل معايير الأهلية للأجهزة حيث سنعتمد على الأجهزة المدعومة ميزات الأمان." ما يعنيه هذا هو أنه في بعض الأجهزة، تستخدم خدمات Google Play الآن شهادة مدعومة بالأجهزة لاكتشاف أن برنامج الجهاز لم العبث بها. لم تقم Google بتوثيق هذا التغيير رسميًا خارج نطاق الإعلان في مجموعة Google، لذلك قد يقوم بعض المطورين الذين يستخدمون SafetyNet بذلك لست على علم بهذا التغيير (وبالتالي لم تتحقق بعد من الحقل "HARDWARE_BACKED" في استجابات JWS.) ومع ذلك، بالنسبة لتلك التطبيقات التي يتحققون من هذا الحقل، فلا توجد الآن طريقة لإخفاء الوصول إلى الجذر عنهم، بشرط أن يكون جهازك جزءًا من الاختبار الذي تجريه Google جري.
وفقًا لـ topjohnwu، تعني الشهادة المدعومة بالأجهزة أن خدمات Google Play الآن "[ترسل] شهادة تخزين مفاتيح غير معدلة إلى خوادم SafetyNet، و[تتحقق] من شرعيتها، و [يتحقق] من بيانات ملحق الشهادة لمعرفة ما إذا كان جهازك [قد] تم التحقق من تمكين التمهيد (حالة أداة تحميل التشغيل)." منذ المفاتيح الخاصة التي يتم اشتقاق شهادات تخزين المفاتيح منها مدعومة ببيئة آمنة معزولة للهاتف، وقد يتضمن استردادها التغلب على أمان بيئة التنفيذ الموثوقة (TEE) للهاتف أو أمان الأجهزة المخصص الوحدة (HSM). إذا تمكن أحدهم بطريقة أو بأخرى من تسريب مفتاح خاص، فإن سيتم إلغاء المفاتيح بسرعة بمجرد اكتشاف جوجل. تقدم Google مكافآت بمئات الآلاف من الدولارات مقابل أي ثغرات أمنية خطيرة تؤثر على TEE في هواتف Pixel، والذي يوضح أنه من غير المرجح أن يكون هذا وسيلة محتملة لتجاوز اكتشاف إلغاء قفل أداة تحميل التشغيل على أي حال.
هناك طريقة أخرى محتملة يمكن لـ Magisk من خلالها الاستمرار في انتحال حالة إلغاء قفل أداة تحميل التشغيل وهي تعديل التعليمات البرمجية من جانب العميل الخاصة بـ SafetyNet لاستخدام التقييم الأساسي دائمًا. مثل ملاحظات Topjohnwuومع ذلك، فإن هذا يتطلب إدخال تعليمات برمجية مخصصة في خدمات Google Play عبر إطار عمل ربط مثل Xpose Framework. ليس من الصعب القيام بذلك فقط لأن خدمات Google Play مبهمة للغاية ولكن من المستحيل أيضًا إخفاءها لأن "بعض تحليلات مساحة الذاكرة ستكشف عن تلاعب كبير في التعليمات البرمجية بسهولة." علاوة على ذلك، لن يعمل هذا أيضًا إلا إذا استمرت خوادم Google في قبول تقييمات BASIC وإذا لم يتم فرض تقييمات HARDWARE_BACKED على الأجهزة التي تدعم هم. (استجابات SafetyNet "[تأتي] من خوادم Google ويتم توقيعها باستخدام مفتاح Google الخاص،" وفقًا لـ topjohnwu، لذلك لا يمكن انتحال الاستجابات الفعلية.)
منذ إصدار Android 7 Nougat، طلبت Google أن تتمتع جميع الأجهزة ببيئة آمنة معزولة، وهذا يعني أن هذا التغيير في كيفية تحقق SafetyNet من إلغاء قفل أداة تحميل التشغيل سيؤثر على معظم الأجهزة التي تم إيقاف تشغيلها هناك. نظرًا لأن الأجهزة القديمة التي لا تحتوي على بيئة آمنة معزولة لا يمكنها بوضوح إجراء المصادقة المدعومة بالأجهزة، فسيظل Magisk قادرًا على إخفاء الوصول إلى الجذر على تلك الأجهزة. ولكن إذا تم تطبيق هذا التغيير على نطاق واسع، فسيتعين على الجميع اتخاذ خيار صعب بين الوصول إلى الجذر والتطبيقات المصرفية.
لسوء الحظ، من المحتمل أن يكون هناك الكثير من التطبيقات التي تستخدم عمليات التحقق من SafetyNet عندما لا تحتاج إلى ذلك فعليًا. أحد الأمثلة التي استشهد بها topjohnwu هو تطبيق McDonald's الرسمي، والذي يبدو أنه يرفض التشغيل على جهاز غير مقفل محمل الإقلاع. على تويتر، يشير موقع topjohnwu إلى التطبيقات التي تبالغ في استخدام واجهة برمجة التطبيقات (API) باعتبارها تخلق بيئة معادية للمستخدمين المتميزين. مطور XDA المعترف به كويني899 ينضم إلى حكاية حول كيفية تفكير فريقه في استخدام SafetyNet للتحقق من حالة أمان الجهاز. لقد قرروا في النهاية عدم الاستمرار في ذلك نظرًا لأن تطبيق فريقه يقوم بتشفير جميع البيانات الحساسة التي يعمل معها. ويقول إنه لا ينبغي استخدام SafetyNet بدلاً من ممارسات الأمان ومعالجة البيانات المناسبة، خاصة عند النظر في إمكانية استغلال الخارق.
لمزيد من المعلومات حول كيفية تأثير تغيير SafetyNet الجديد على Magisk، قم بمراجعة topjohnwu's الأسئلة الشائعة الممتازة على تويتر. إذا كنت تريد فقط التحقق مما إذا كان جهازك جزءًا من اختبار SafetyNet الجديد من Google، فيمكنك المتابعة هذا الدليل بواسطة XDA Senior Member Displax أو قم بتنزيل أحدث إصدار من Magisk Manager.
تم تحديث هذه المقالة في تمام الساعة 10:46 صباحًا بتوقيت شرق الولايات المتحدة يوم 30 يونيو 2020، لتصحيح أن Google لا تدفع سوى مكافآت مقابل ثغرات TEE الموجودة في هواتف Pixel. علاوة على ذلك، تمت إضافة تفاصيل بخصوص أحدث إصدار من Magisk Manager والذي يعرض الآن حقل نوع التقييم في مدقق SafetyNet المدمج.