تم اكتشاف أن الهواتف الذكية من العديد من الشركات المصنعة مثل LG وOnePlus وHuawei وXiaomi تقوم بتسريب معلومات عملية التطبيقات. وإليك ما يعنيه ذلك.
يتم استخدام نظام تشغيل الهاتف المحمول Android أكثر من 2 مليار جهاز كل شهر من قبل كل من المستهلكين العاديين وعشاق التكنولوجيا. على الرغم من أن عدد الأشخاص الذين يقومون بإلغاء قفل أداة تحميل التشغيل وإجراء عملية الوصول إلى هواتفهم الذكية صغير نسبيًا مقارنة بإجمالي عدد مستخدمي Android، لا يزال هناك الكثير منا في منتديات مثل XDA و رديت. Magisk هي أداة لا غنى عنها لمجتمع الترقيع. فهو يوفر وصولاً إلى الجذر بدون نظام ويحتوي على أدوات مثل MagiskHide لتمكين المستخدمين الجذر من الاستمرار في استخدام التطبيقات والألعاب والخدمات التي يستمتعون بها دون قيود. ومع ذلك، فقد قامت إحدى ألعاب الأنمي الشهيرة باستغلال ثغرة أمنية في النظام بذكاء لتجاوز اكتشاف Magisk لمكافحة الجذر. وإليك كيفية عمل ذلك والأجهزة المتأثرة بهذه الثغرة الأمنية.
- استخدمت إحدى الألعاب خطأً لاكتشاف ما إذا كان الجهاز قد تم تجذيره أم لا. إذا كان الجهاز متجذرًا، فإن اللعبة تمنع المستخدم من اللعب.
- يسمح الخطأ للتطبيق بقراءة حالة التطبيقات الأخرى في الذاكرة، دون الحاجة إلى أي أذونات خاصة. لا يسمح الخطأ للتطبيقات بسرقة أي بيانات من التطبيقات الأخرى. الخطأ ليس خطيرًا وغير ضار إلى حد ما.
- جوجل على علم بالفعل المشكلة وقاموا بتحديث أدوات الاختبار الخاصة بهم للتأكد من حماية جميع الأجهزة.
خلفية
هناك لعبة أنمي شهيرة تسمى Fate/Grand Order تمنع المستخدمين الجذرين من محاولة لعب اللعبة. مطور XDA المعترف به com.topjohnwu، المطور الرئيسي لـ Magisk سابقًا اكتشف طريقة لتجاوز اكتشاف جذر Fate/Grand Order، لكن الحل الذي توصل إليه لم يكن يعمل على هاتف OnePlus 6 الخاص به على الرغم من بذل قصارى جهده. مصممًا على عدم الاستسلام، قام المطور بتحليل Fate/Grand Order لمعرفة كيف كان لا يزال يكتشف الجذر على جهاز OnePlus الخاص به. كما يوضح في كتابه مشاركة متوسطةأدى ذلك إلى اكتشاف ثغرة أمنية يبدو أن Fate/Grand Order يستغلها لمواصلة اكتشاف الوصول إلى الجذر على أجهزة OnePlus.
مجاني.
4.
Procfs وأندرويد
في أنظمة التشغيل المستندة إلى Unix، يوجد نظام ملفات خاص يسمى "procfs" يحتوي على معلومات عنه العمليات (فكر في التطبيقات) مثل استخدام الذاكرة (فكر في ذاكرة الوصول العشوائي)، والحالة (سواء كانت العملية قيد التشغيل، أو النوم، الخ). في معظم أنظمة التشغيل المستندة إلى Unix، يتمتع المستخدم والتطبيقات بسهولة الوصول إلى procfs لمعرفة أنواعها يتم تشغيل التطبيقات والخدمات على نظامهم (فكر في الأمر مثل مدير مهام Windows.) ومع ذلك، فإن Google بدأ ب تأمين الوصول إلى procfs بدءًا من Android 7.0 Nougat. قبل Android Nougat، كانت تطبيقات مثل SystemPanel قادرة على جمع البيانات حول التطبيقات التي كانت تعمل دون الحاجة إلى أي أذونات خاصة. بعد Android Nougat، تحتاج التطبيقات إلى استخدام واجهات برمجة التطبيقات مثل إحصائيات الاستخدام أو AccessibilityService، وكلاهما مسور بالأذونات التي يجب أن يمنحها المستخدم.
مجاني.
4.2.
تمنع Google التطبيقات من قراءة حالة التطبيقات الأخرى عبر procfs عن طريق تركيب /proc مع العلامة "hidepid=2." من خلال تركيب procfs مع Hidepid=2، يمكن للتطبيقات رؤية حالة العملية الخاصة بها فقط. وبالتالي، سيحتاج التطبيق إلى استخدام واجهات برمجة التطبيقات المقبولة مثلUsageStats أو AccessibilityService للحصول على معلومات حول التطبيقات والخدمات التي يتم تشغيلها على الجهاز.
وهن
ماذا لو لم يتم تركيب procfs مع Hidepid=2؟ حسنًا، ستتمكن التطبيقات من قراءة حالة التطبيقات الأخرى (ونقاط التثبيت) التي تعمل على النظام بحرية دون الحاجة إلى أي أذونات إضافية*. تقوم Google بتثبيت procfs باستخدام Hidepid=2 على أجهزتها الخاصة، ولكنها لا تفرض هذا المتطلب على الأجهزة من الشركات المصنعة الأخرى. العديد من الأجهزة من LG وOnePlus وHuawei/Honor وXiaomi وغيرها لم يتم تركيب procfs عليها Hidepid=2، وهو ما تستفيد منه تطبيقات مثل Fate/Grand Order لاكتشاف ما إذا كان Magisk موجودًا أم لا الجهاز.
*يمنع التغيير الأمني في Android 9 Pie التطبيقات من قراءة المعلومات خارج "سياق SELinux" الخاص بها لأنه تم الآن عزل كل تطبيق على حدة. SELinux عبارة عن وحدة نمطية للنواة تعمل كحارس بوابة من نوع ما، حيث تمنع التطبيقات والخدمات من الوصول إلى الملفات التي ليس من المفترض أن تصل إليها. يشبه سياق SELinux تسمية ملف يحتوي على معلومات مثل المستخدم والدور. يمكن للتطبيقات التي لها نفس سياق SELinux قراءة معلومات حول التطبيقات الأخرى في نفس السياق إذا لم يتم تمكين علامة Hidepid=2 لـ procfs. على الأجهزة التي تعمل بنظام Android 9 Pie، فقط التطبيقات التي تم إنشاؤها لاستهداف Android Pie هي التي ستطبق عليها تغييرات SELinux الجديدة لنظام Android Pie. ستستخدم التطبيقات التي تستهدف Android 8.1 Oreo أو الإصدارات الأقدم قواعد SELinux القديمة، مما يسمح لها بالوصول معلومات حول العمليات في نفس سياق SELinux طالما أن procfs مثبتة بدونها إخفاء = 2. يجب أن تستهدف معظم التطبيقات التي تعمل على جهازك على الأقل نظام التشغيل Android 8.0 Oreo متطلبات جوجل بلاي الجديدة، ولكن لم يتم تحديث العديد منها لاستهداف Android Pie حتى الآن.
توضح لقطات الشاشة التالية عواقب عدم تحميل procfs باستخدام Hidepid=2.
ما مدى سوء هذا؟
إذا أردنا مقارنة ثغرة النظام هذه بثغرات مثل فوسي جيلي, بلوبورن, كراك، و الانهيار / شبح، فإن هذا الخطأ يتضاءل بالمقارنة. لا يمكن للتطبيقات استخدام هذا للوصول إلى الجذر أو سرقة كلمات المرور الخاصة بك. حساباتك المصرفية آمنة، وكذلك بطاقات الائتمان الخاصة بك. أسوأ ما يمكن أن يفعله التطبيق هو معرفة ما إذا كان هناك تطبيق آخر قيد التشغيل على جهازك، وهو أمر له استخدامات محدودة للغاية. تذكر أن هذا هو السلوك القياسي في العديد من توزيعات GNU/Linux وأن Google بدأت مؤخرًا فقط في حظر الوصول إلى procfs باستخدام Android Nougat. يسمح هذا الخطأ للتطبيقات بتجاوز الحاجة إلى أذونات معينة لمراقبة العمليات الأخرى، لكنها لا تزال غير قادرة على كسر وضع الحماية لنظام Android وسرقة البيانات من التطبيقات الأخرى. بغض النظر، يعد هذا سلوكًا غير مقصود ويخرق إحدى ميزات الخصوصية في Android، لذا يجب إصلاحه.
هل يتأثر جهازي؟
فيما يلي قائمة بالأجهزة التي اكتشفنا أنها لا تقوم بتحميل procfs باستخدام Hidepid=2:
تصنيع المعدات الأصلية |
جهاز |
نسخة أندرويد |
تسريبات procfs |
---|---|---|---|
آسوس |
زينفون 5Z |
أندرويد 8.0 أوريو |
نعم |
بلاك بيري |
المفتاح2 |
أندرويد 8.0 أوريو |
لا |
ضروري |
ف-1 |
أندرويد 9 باي |
لا |
جوجل |
بكسل 2 |
أندرويد 9 باي |
لا |
جوجل |
بكسل 3 |
أندرويد 9 باي |
لا |
جوجل |
بكسل 3 اكس ال |
أندرويد 9 باي |
لا |
شرف |
السحر 2 |
أندرويد 9 باي |
نعم |
اتش تي سي |
تحت 12+ |
أندرويد 8.0 أوريو |
نعم |
هواوي |
ميت 20 اكس |
أندرويد 9 باي |
نعم |
إل جي |
جي 7 ثين كيو |
أندرويد 8.0 أوريو |
نعم |
إل جي |
V40 ثينك |
أندرويد 8.1 أوريو |
نعم |
موتورولا |
موتو جي 4 |
أندرويد 8.1 أوريو |
لا |
نوكيا |
7.1 |
أندرويد 8.1 أوريو |
لا |
ون بلس |
6 |
أندرويد 8.1 أوريو/أندرويد 9 باي |
نعم |
ون بلس |
6T |
أندرويد 9 باي |
نعم |
الماسح |
الهاتف 2 |
أندرويد 8.1 أوريو |
نعم |
سامسونج |
جالاكسي نوت 8 |
أندرويد 8.0 أوريو |
لا |
سامسونج |
جالاكسي نوت 9 |
أندرويد 8.1 أوريو/أندرويد 9 باي |
لا |
سامسونج |
جالاكسي اس7 |
أندرويد 8.0 أوريو |
لا |
سامسونج |
جالاكسي اس 8 |
أندرويد 8.0 أوريو |
لا |
سامسونج |
جالاكسي اس9 |
أندرويد 9 باي |
لا |
سامسونج |
جالاكسي S9+ (إكسينوس) |
أندرويد 8.0 أوريو |
نعم |
سوني |
اريكسون XZ1 |
أندرويد 9 باي |
لا |
شاومى |
مي ميكس 2S |
أندرويد 9 باي |
نعم |
شاومى |
بوكو اف1 |
أندرويد 8.1 أوريو |
نعم |
كيفية التحقق مما إذا كان جهازك متأثرًا
من السهل جدًا التحقق مما إذا كان جهازك يسرب معلومات العملية إلى تطبيقات أخرى (بمعنى آخر، لم يتم تثبيت procfs مع Hidepid=2). بينما يمكنك استخدام أوامر shell كما فعلنا، يمكنك أيضًا التحقق من استخدام تطبيق تم تطويره بواسطة topjohnwu. يتيح لك تطبيقه أيضًا إعادة تحميل procfs باستخدام Hidepid=2، إذا كان هاتفك مزوّدًا بحق الوصول إلى الجذر.
تحميل برنامج بروكجيت
هل سيكون هناك حل؟
نعم، سيتم إصلاح هذا. ستطلب Google الآن أن تقوم جميع الأجهزة بتثبيت procfs باستخدام Hidepid=2. سوف ينفذون هذا من خلال تحديث مجموعة اختبار التوافق (CTS)، وهي مجموعة من الاختبارات التي يجب على جميع الأجهزة اجتيازها لتتمكن من استخدام تطبيقات وخدمات Google Play. يجب على جميع مصنعي المعدات الأصلية (الذين يرغبون في بيع الأجهزة المثبت عليها متجر Google Play مسبقًا) في النهاية إصدار تحديث لإعادة تحميل procfs باستخدام Hidepid=2 في المستقبل القريب. وبما أن أجهزة OnePlus هي أول من تم اكتشافها بهذه المشكلة، لقد تم إبلاغ OnePlus بالفعل ويعمل على حل المشكلة. سنقوم بتحديث هذه المقالة إذا علقت الشركات المصنعة الأصلية الأخرى على هذا الخطأ، ولكن ليست هناك حاجة للتساؤل عما إذا كانت الشركة المصنعة للجهاز الخاص بك ستصدر تحديثًا أم لا. إذا أرادوا أن يمر التحديث الخاص بهم بـ CTS، فيجب عليهم إصلاح هذا الخطأ.