تكون بعض أجهزة Marshmallow عرضة للاختراق، حيث يقوم التطبيق بتراكب النص أعلى مربع حوار الأذونات لخداع المستخدم.
في حين أن الكثير منا يسيل لعابه على إصدار Android Nougat لأجهزة Nexus الذي تم إصداره حديثًا، فإن الغالبية العظمى من المستخدمين لا يزالون يستخدمون Android Marshmallow. استغلال تم توثيق وجوده منذ ذلك الحين على الأقل منتصف عام 2015 لا يزال يؤثر على العديد من أجهزة Android الحديثة.
التطبيقات الضارة قادرة على تابجاك أفعالك في منحهم إذنًا لم تمنحه صراحةً أبدًا. إليك كيفية عمل الاستغلال.
عودة Tapjacking
تخيل أنك تفتح Instagram وتحاول مشاركة صورة التقطتها مؤخرًا أثناء إجازتك. عندما تختار تصفح معرض الصور الخاص بك بحثًا عن صورة، يطلب منك Instagram منحه الإذن للوصول إلى مساحة التخزين الخاصة بك. ولكن عندما تضغط على "نعم" تظهر لك رسالة خطأ.
لا يمكنك منح إذن التخزين لـ Instagram لأن تراكب الشاشة النشط ممكّن لديك هذه الحالة هي واحدة من العديد من التطبيقات التي تعمل على تلوين شاشتك حتى تتمكن من استخدام هاتفك ليلاً دون عمى الألوان نفسك. هذه حالة نظام أذونات Android العمل على النحو المنشود: من أجل منح تطبيق إذنًا حساسًا، يتعين عليك تعطيل أي تراكبات شاشة لديك على جهازك.
من المحتمل أن تخدعك التطبيقات التي لديها القدرة على الرسم على شاشتك لإدخال بيانات حساسة إليها. على سبيل المثال، يمكن لتراكب الشاشة أن يضع إدخال كلمة مرور مزيفة أعلى شاشة تسجيل دخول حقيقية من أجل جمع كلمات المرور الخاصة بك. استغلال مثل هذا يسمى "السرقة" وقد ظهرت وتم تصحيحها على إصدارات Android المختلفة على مر السنين، مع أحد أسوأ الأمثلة التي استمرت حتى Android 4.0.3. ولكن في الآونة الأخيرة، عاد الاستغلال مع نموذج إذن وقت التشغيل لنظام Android Marshmallow.
مطور باسم ايو باناش خلق طلب إظهار الاستغلال. طريقة العمل بسيطة إلى حد ما - عندما يعرض أحد التطبيقات مربع حوار الأذونات، يظهر التطبيق الضار الذي قمت بتثبيته سيعرض تراكب النظام لتغطية كتلة النص في مربع حوار الأذونات بأي نص فيه يريد. سيتم خداع المستخدم غير المقصود الذي ينقر على "السماح" في مربع حوار الإذن لمنح الإذن الذي طُلب منه - ولكن تم إخفاء الطلب من وجهة نظر المستخدم. مثل هذا الاستغلال يتعارض تمامًا مع الغرض من نظام أذونات Android Marshmallow، منذ تقديمه كان من المفترض أن يضمن النموذج الجديد أن المستخدمين لن يحصلوا إلا على الأذونات التي وافقوا عليها صراحةً.
الآن، أعرف ما الذي تفكر فيه. إذا اكتشف Android تراكب النظام ومنعني من منح أذونات تخزين Instagram، ألن يمنع حدوث هذا الاستغلال؟ الجواب هو لا، في الاختبار الذي أجريته، يبدو أن عرض تراكب نص أعلى مربع حوار الأذونات على بعض الأجهزة لا يؤدي إلى تشغيل آلية الأمان. يوضح مطور تطبيق Tapjacking لإثبات المفهوم أن الاستغلال فعال لأنه يعتمد على قيام المستخدم بتثبيت تطبيق ضار ثانوي يستهدف مستوى واجهة برمجة التطبيقات (API) 22 وما دونه (ما قبل الخطمي). ويرجع ذلك إلى حقيقة أنه قبل Android Marshmallow، تم منح جميع التطبيقات الأذونات أثناء التثبيت.
حسنًا، إذا كنت تستخدم Marshmallow، فكل ما عليك فعله هو تجنب تثبيت أي تطبيقات لا تثق بها والتي تطلب إذنًا لرسم التراكب، أليس كذلك؟ إذا كان نموذج الأذونات الخاص بنظام Android يعمل كما هو مذكور في الأصل، فستكون على حق. ولكن منذ اكتشاف هذا الاستغلال، حتى التطبيقات التي تستهدف مستوى API 23 (Marshmallow) التي تطلب إذن التراكب تشكل خطرًا محتملاً.
فجوة في نموذج الإذن؟
إذا كنت واحدًا من ملايين الأشخاص الذين يستخدمون Facebook Messenger للدردشة مع أصدقائك، إذن فقد صادفت إحدى أفضل ميزات Android - وهي قدرة التطبيقات على التفوق على غيرها شاشات. كم هو رائع أنه يمكنك الحصول على فقاعة مع الدردشة الجماعية المفضلة لديك على Facebook ومتابعة المستخدم أعلى أي تطبيق يفتحه؟ على الرغم من أن تطبيق Facebook Messenger قد جلب فكرة "التطبيقات العائمة" إلى الاتجاه السائد، إلا أن هذا المفهوم موجود منذ بعض الوقت في نظام Android. لقد تمكنت التطبيقات من إنشاء تراكبات فوق تطبيقاتك لبعض الوقت، وذلك بفضل وجود TYPE_SYSTEM_OVERLAY في WindowManager لنظام Android.
قبل Android Marshmallow، كانت التطبيقات تحتاج إلى طلب إذن يسمى SYSTEM_ALERT_WINDOW أثناء التثبيت قبل أن يتمكن من عرض التراكبات أعلى شاشتك. لكن هذا تغير مع تقديم نموذج إذن وقت التشغيل الدقيق الخاص بالإصدار 6.0. سيتعين على المستخدمين الآن منح الأذونات للتطبيقات عند تشغيل التطبيق فعليًا، وهو ما نأمل أن يؤدي إلى تحفيز المتوسط المستخدم في حماية بياناته الخاصة من التطبيقات التي تطلب بشكل مريب والتي تبدو غير مرتبطة وظيفيًا الأذونات.
ومع ذلك، فإن SYSTEM_ALERT_WINDOW ليس مثل الأذونات الأخرى. لا يمكن للمطورين عرض مربع حوار لطلب منح الإذن من قبل المستخدم النهائي برمجيًا، مثل معظم الأذونات الأخرى في أي تطبيق يستهدف Marshmallow. وبدلاً من ذلك، يتعين عليك الانتقال يدويًا إلى شاشة الإعدادات وتمكين الإذن بنفسك. وبطبيعة الحال، فإن بعض التطبيقات مثل Facebook Messenger سوف تساعدك على طول هذه العملية.
تطلب Google هذا من المطورين لأنهم اعتبروا الإذن "حساسة بشكل خاص."
أذونات خاصة
هناك بعض الأذونات التي لا تعمل مثل الأذونات العادية والخطرة. يعد كل من SYSTEM_ALERT_WINDOW وWRITE_SETTINGS حساسين بشكل خاص، لذا يجب ألا تستخدمهما معظم التطبيقات. إذا كان التطبيق يحتاج إلى أحد هذه الأذونات، فيجب عليه الإعلان عن الإذن في البيان، وإرسال نية تطلب إذن المستخدم. يستجيب النظام للقصد من خلال إظهار شاشة إدارة مفصلة للمستخدم.
وبالنظر إلى ما نعرفه أعلاه عن سرقة النقر، فإن هذا أمر منطقي. ولكن هذا هو الشيء. جوجل لا تتبع حتى قواعدها الخاصة. هل لقطات شاشة Facebook Messenger ترشدك خلال عملية منحه إذن SYSTEM_ALERT_WINDOW الذي عرضته لك أعلاه؟ يحدث هذا فقط إذا قمت بتثبيت APK من خارج متجر Google Play. إذا قمت بتثبيت تطبيق من متجر Google Play، فسيتم يتم منح إذن SYSTEM_ALERT_WINDOW تلقائيًا.
لقد ضحت Google بالسلامة من أجل الراحة
لفترة طويلة قبل Android Marshmallow، كان SYSTEM_ALERT_WINDOW يعتبر "خطير" إذن. مع Android Marshmallow 6.0، تم تغيير الإذن إلى التوقيع|النظام|التطبيق وهو ما كان يتطلب في البداية من المطورين توجيه المستخدم إلى شاشة الإعدادات لمنح الإذن. ولكن مع إصدار أندرويد 6.0.1، تم تعديل SYSTEM_ALERT_WINDOW حتى أن متجر Google Play يمكن أن يمنح الإذن تلقائيًادون إخطار المستخدم. سبب قيام Google بهذا التغيير غير واضح بالنسبة لنا. لم يصرح Google بنفسه عن سبب إجراء هذا التغيير، وهو أمر غريب بشكل خاص بالنظر إلى اللغة الخاصة بـ SYSTEM_ALERT_WINDOW التي لا تزال موجودة على صفحات الويب الخاصة بهم.
من الممكن ذلك غضب ما يكفي من المطورين من خلال التغييرات الأولية التي تم إجراؤها على SYSTEM_ALERT_WINDOW والتي تطلبت من المستخدمين منح الإذن يدويًا الذي منحته Google بصمت ومنحته لأي تطبيق يطلبه. ولكن من خلال القيام بذلك، قامت جوجل بذلك التضحية بالسلامة من أجل الراحة. هناك سبب يجعل جوجل نفسها تعتبر الإذن خطيرًا لأطول فترة، لأنه كذلك بالفعل. ويعد وجود ثغرة استغلال إذن Marshmallow، دليلًا كافيًا على المخاطر الكامنة في منح هذا الإذن تلقائيًا لأي تطبيق.
لم يتم لفت انتباهنا إلى استغلال استغلال النقر هذا إلا مؤخرًا على الرغم من وجوده منذ عدة أشهر حتى الآن. في اختبارنا الداخلي للأجهزة بين فريق بوابة XDA، أكدنا ذلك يعمل هذا الاستغلال على العديد من الأجهزة الحديثة التي تعمل بنظام Android Marshmallow. فيما يلي ملخص سريع للأجهزة التي اختبرناها على أحدث إصدارات البرامج المتاحة لكل جهاز على حدة وما إذا كان استغلال استغلال النقر يعمل أم لا. الأجهزة التي تحمل علامة "Vulnerable" تكون عرضة لاستغلال النقر، في حين أن الأجهزة التي تحمل علامة "Not". "الضعيفة" قادرة على اكتشاف تطبيق يعرض التراكب ويطلب منك تعطيله من قبل مستمر.
- Nextbit Robin - Android 6.0.1 مع تصحيحات الأمان لشهر يونيو - مُعَرَّض
- Moto X Pure - Android 6.0 مع تصحيحات الأمان لشهر مايو - مُعَرَّض
- Honor 8 - Android 6.0.1 مع تصحيحات الأمان لشهر يوليو - مُعَرَّض
- Motorola G4 - Android 6.0.1 مع تصحيحات الأمان لشهر مايو - مُعَرَّض
- OnePlus 2 - Android 6.0.1 مع تصحيحات الأمان لشهر يونيو - غير معرضة للخطر
- Samsung Galaxy Note 7 - Android 6.0.1 مع تصحيحات الأمان لشهر يوليو - غير معرضة للخطر
- Google Nexus 6 - Android 6.0.1 مع تصحيحات الأمان لشهر أغسطس - غير معرضة للخطر
- Google Nexus 6P - Android 7.0 مع تصحيحات الأمان لشهر أغسطس - غير معرضة للخطر
حتى الآن، هذه هي جميع الأجهزة التي تمكنت من جعل الفريق يختبرها. لم أتمكن من العثور على أي علاقة بين إصدار تصحيح الأمان والاستغلال. كما يمكنك أن تقول من لدينا أحدث المناقشة بخصوص تحديثات أمان Android، فإن العديد من الأشخاص لا يستخدمون أحدث التصحيحات الأمنية على أي حال، وبالتالي من المحتمل أن يكونوا عرضة لهذا الاستغلال وغيره من البرامج الموضحة في نشرة أمان Android.
تحرك للأمام
نحن نحثك على اختبار هذا الاستغلال على جهازك بنفسك لمعرفة ما إذا كنت معرضًا للخطر. لقد قمنا بتجميع ملفات APK من ملف كود المصدر مرتبط أعلاه (يمكنك القيام بذلك بنفسك أيضًا) وقمت بتحميلها إلى AndroidFileHost. من أجل اختبار استغلال، تحتاج إلى تثبيت كل من تطبيق Tapjacking الرئيسي وكذلك لها خدمة المساعد. ثم قم ببساطة بتشغيل التطبيق الرئيسي وانقر على زر "اختبار". إذا ظهر مربع نص أعلى مربع حوار الأذونات وعندما تنقر على "السماح" تظهر قائمة بجهات الاتصال بجهازك، فهذا يعني أن جهازك معرض لخطر النقر. لا تقلق بشأن عدم تغطية مربع النص العائم لمربع حوار الأذونات بالكامل، فهذا التطبيق لإثبات المفهوم ليس كذلك يهدف إلى توضيح كيفية اختطاف مربع حوار الأذونات بدقة، بل لإثبات ذلك بالفعل ممكن.
نأمل أن يتم تقديم إصلاح يعمل على تصحيح هذا الاستغلال على جميع أجهزة Marshmallow، وأن يقوم مصنعو المعدات الأصلية بتحديث جميع أجهزتهم إلى أحدث تصحيح أمني. لأن الحقيقة هي أن الأمر سيستغرق عدة أشهر حتى تحصل معظم الأجهزة المتعهد بها على نظام Nougat، وبالتالي فإن الطريقة الوحيدة لمعظم الأجهزة يجب على المستخدمين البقاء بعيدًا عن الأذى إما تثبيت أحدث تصحيحات الأمان أو الحصول على أذونات تطبيق المراقبة أنفسهم. ولكن مع قرار Google بمنح إذن SYSTEM_ALERT_WINDOW الذي يحتمل أن يكون خطيرًا تلقائيًا، أصبح الكثير يقوم المستخدمون دون قصد بتشغيل تطبيقات يمكن أن تخترق هواتفهم لمنحهم المزيد والمزيد من الخطورة الأذونات.