يتيح برنامج Janus Exploit للمهاجمين تعديل التطبيقات دون التأثير على التوقيعات

تسمح ثغرة Janus للمهاجمين بتعديل التطبيقات دون التأثير على توقيعاتهم. تم اكتشافه بواسطة GuardSquare وتم إصلاحه بواسطة Google.

يتم تثبيت Android على عدد كبير جدًا من الأجهزة، مما يجعله هدفًا للمهاجمين الضارين. يستمر اكتشاف الثغرات الأمنية في نظام تشغيل الهاتف المحمول من Google كل شهر، ولكن الخبر السار هو أن Google عادةً ما يكون حريصًا على إصلاحها في تصحيحات الأمان العادية التي يتم تقديمها بعد ذلك إلى مصنعي المعدات الأصلية، الذين يقومون بعد ذلك بشحنها إليهم الأجهزة.

اكتشف باحثون أمنيون مؤخرًا ثغرة أمنية والتي خدعت المستخدمين للسماح للمهاجمين بتسجيل شاشة أجهزتهم. تم إصلاح هذا الاستغلال الخاص في Android Oreo، لكن المحللين في GuardSquare تم الإبلاغ مؤخرًا عن ثغرة أمنية خطيرة أخرى تؤثر على تطبيقات Android الموقعة بواسطة أنظمة التوقيع القديمة.

GuardSquareويذكر تقرير أن مزدوج الوجهوهن يسمح (CVE-2017-13156) في Android للمهاجمين بتعديل التعليمات البرمجية في التطبيقات دون التأثير على توقيعاتهم. ويواصل التقرير القول إن أصل الثغرة الأمنية هو أن الملف يمكن أن يكون ملف APK صالحًا وملف DEX صالحًا في نفس الوقت.

يستفيد Janus من حقيقة أن وحدات البايت الإضافية لا يتم ملاحظتها في ملفات APK وملفات DEX. ال GuardSquare يوضح التقرير أن ملف APK هو أرشيف ZIP يمكن أن يحتوي على بايتات عشوائية في البداية، قبل وبين إدخالات ZIP الخاصة به. يأخذ نظام توقيع JAR في الاعتبار فقط إدخالات ZIP، متجاهلاً أي بايتات إضافية عند حساب توقيع التطبيق أو التحقق منه.

ويستمر في توضيح أن ملف DEX، من ناحية أخرى، يمكن أن يحتوي على بايتات عشوائية في النهاية - بعد الأقسام العادية من السلاسل، والفئات، وتعريفات الأساليب، وما إلى ذلك. لذلك، يمكن أن يكون الملف ملف APK صالحًا وملف DEX صالحًا في نفس الوقت.

GuardSquare يذكر أيضًا أن أحد العناصر الأساسية للثغرة الأمنية هو الميزة "غير الضارة" للجهاز الظاهري Dalvik/ART. يشير التقرير إلى أنه من الناحية النظرية، يقوم وقت تشغيل Android بتحميل ملف APK، واستخراج ملف DEX الخاص به، ثم تشغيل التعليمات البرمجية الخاصة به. ومع ذلك، من الناحية العملية، يمكن للجهاز الظاهري (VM) تحميل وتنفيذ ملفات APK وملفات DEX. المشكلة هي أنه عندما يحصل الجهاز الافتراضي على ملف APK، فإنه لا يزال ينظر إلى البايتات السحرية في الرأس لتحديد نوع الملف: DEX أو APK. عند العثور على رأس DEX، يقوم بتحميل الملف كملف DEX. إذا لم يعثر على رأس، فإنه يقوم بتحميل الملف كملف APK يحتوي على إدخال مضغوط مع ملف DEX. وبالتالي، يمكن أن يسيء تفسير ملفات DEX/APK المزدوجة.

GuardSquare يقول أنه يمكن للمهاجم الاستفادة من ميزة الازدواجية هذه في VM لإضافة ملف DEX ضار إلى ملف APK عادي دون التأثير على توقيعه. سيقبل وقت تشغيل Android ملف APK كتحديث صالح لإصدار سابق شرعي من التطبيق، لكن Dalvik VM سيقوم بتحميل الكود من ملف DEX، الذي تم حقنه بكود ضار.

عادةً، عندما يقوم المستخدم بتثبيت إصدار محدث من أحد التطبيقات، يتم التحقق من توقيع التطبيق بواسطة وقت تشغيل Android للتأكد من مطابقته للإصدار الأقدم. عندما يكون التحقق إيجابيًا، يحصل التطبيق المحدث على الأذونات التي تم منحها للتطبيق الأصلي. وبهذه الطريقة، يمكن للمهاجمين استخدام ثغرة Janus لتجاوز عملية التحقق من التوقيع والحصول على تعليمات برمجية لم يتم التحقق منها مثبتة على أجهزة المستخدمين المطمئنين.

والأسوأ من ذلك هو أن هذا الرمز الذي لم يتم التحقق منه قد يحصل على أذونات قوية. وهذا يثير بعض الاحتمالات الشديدة. GuardSquare تنص على:

"يمكن للمهاجم استبدال تطبيق موثوق به يتمتع بامتيازات عالية (تطبيق نظام، على سبيل المثال) بتحديث معدل لإساءة استخدام أذوناته. اعتمادًا على التطبيق المستهدف، قد يؤدي ذلك إلى تمكين المتسلل من الوصول إلى المعلومات الحساسة المخزنة على الجهاز أو حتى السيطرة على الجهاز بالكامل. وبدلاً من ذلك، يمكن للمهاجم تمرير نسخة معدلة من تطبيق حساس كتحديث شرعي [والذي] يمكن أن يبدو ويتصرف مثل التطبيق الأصلي ولكنه يُدخل سلوكًا ضارًا."

وأضافت الشركة أنه حتى الآن، لم يروا أي تطبيقات تستغل برنامج Janus بشكل عام. والخبر السار الآخر هو أن الثغرة الأمنية تتطلب من المستخدم تثبيت تحديث ضار من مصدر خارج متجر Google Play. ولذلك، فإن المستخدمين الذين يقصرون عمليات تثبيت التطبيق على متجر Play يكونون محميين.

تؤثر ثغرة Janus على الأجهزة التي تعمل بنظام Android 5.0+. تتأثر التطبيقات التي تم توقيعها باستخدام نظام توقيع APK v1. ملفات APK الموقعة باستخدام نظام التوقيع v2 محمية من الثغرة الأمنية. يتطلب ذلك تشغيل ملفات APK على الأجهزة التي تدعم أحدث نظام التوقيع (Android 7.0 والإصدارات الأحدث). النظام v2 محمي لأنه، على عكس المخطط v1، يأخذ في الاعتبار جميع البايتات الموجودة في ملف APK.

"تظل الإصدارات الأقدم من التطبيقات والتطبيقات الأحدث التي تعمل على الأجهزة القديمة عرضة للخطر. يجب على المطورين دائمًا على الأقل تطبيق نظام التوقيع v2." GuardSquare تنص على.

GuardSquare أبلغت Google بهذه المشكلة في 31 تموز (يوليو) 2017، وحصلت على الإقرار في نفس اليوم. ويقول تقرير الشركة إن جوجل أصدرت تصحيحًا لشركائها في نوفمبر، ونشرت الخطأ (CVE-2017-13156) في نشرة أمان Android في 4 ديسمبر 2017. الضعف لديه تم إصلاحه في تصحيح أمان Android لشهر ديسمبر 2017. بشكل منفصل، تم التأكد من أن تطبيقات F-Droid من مستودعها الرسمي آمنة. وأخيرًا، تم التأكيد على أنه تم تصحيح الثغرة الأمنية APKMirror.


المصدر: GuardSquare