تم
اكتشاف مؤخرا ثغرة بالأندرويد تطال الكثير من التطبيقات و من بينها Settings - و المتوفر في كل أجهزة أندرويد مما يجعلها
كلها دون استثناء معرضة للإستغلال بهذه الثغرة - , gmail , Google Now, DropBox و EverNote . و
بشكل عام كل التطبيقات التي تستعمل PreferenceActivityClass باستعمال Exported
Activity هي مصابة بهذه الثغرة .
أما في ما يخص الباتش و إصلاح الثغرة فهو موجود ب Android KitKat .
و أنا من
خلال شرح هذه الثغرة سأستغل الفرصة لشرح مبادئ الأندرويد , فاربطوا الأحزمة لننطلق
بهذا العالم .
نبذة عن
نظام التشغيل أندرويد :
أندرويد
نظام تشغيل يستعمل اللينكس كنواة -Kernel- له , والمسؤول عن هذا المشروع و تطويره هو Android Open Source Project او اختصارا AOSP .
نظام Android يدعم Background Processing - المعالجات process تشتغل خلف الستار دون تدخل من
المستعمل, مشابهة لأنظمة اشتغال الحواسيب – كما و يدعم 2-D و 3-D و كذلك من أبرز مميزات النظام ما يجعله متفوقا
عن باقي أنظمة الأجهزة الذكية كثافة و
كثرة المكتبات أو User
Interface Library .
و هذه بشكل مختصر هندسة النظام
Android Architecture |
ما هو Google Play :
جوجل
وضعت سوقا مفتوحا لمبرمجي تطبيقات الأندرويد و للباحثين عن تطبيقات لهواتفهم و
أجهزتهم الذكية , وهذا السوق هو Google
Play حيث يمكنك أن تشتري
التطبيقات و في نفس الوقت أن تعرض تطبيقات من برمجتك الخاصة .
وكذلك
يدعم خدمة التحديث , فبمجرد أن يقوم المبرمج بتحديث لتطبيقه تقوم google Play بإشعارك بتوفر التحديث .
مكونات
واجهة المستخدم بنظام أندرويد :
Activity :
تمثل
الجانب المرئي لتطبيقات الأندرويد , و طبعا أي تطبيق بالأندرويد من الممكن أن
يحتوي علىActivity متعددة .
Activities
تستعمل Fragmentsلتكوين واجهة مستخدم للتواصل معه , أما fragments فهو مشروح في الجزء
التالي.
Fragments :
هي
الأجزاء التي تكون ال Activity , تقوم بإخفاء كود التطبيق و هذا يسهل عملية إعادة
الإستخدام و في نفس الوقت تدعم العديد من أحجام الأجهزة الذكية .
Activities And Fragments |
نظام
الحماية بأندرويد :
نظام
التشغيل لأندرويد يقوم بتنصيب اي تطبيق و تعيين مستعمل و رقم ID group خاص للتطبيق, و ملفات التطبيق
تكون ذات خصوصية مرتبطة بالمستعمل الذي تم تعيينه , و أي تطبيق اخر لا يمكنه
الدخول لهذه الملفات و طبعا كل تطبيق يستعمل معالج Process خاص به.
هذا يدفع
لاستنتاج أن كل تطبيق يكون معزول عن باقي التطبيقات الأخرى , و أي ملفات مشتركة
بين تطبيقين يتم التصريح له من قبله عن طريق خدمة معينة.
بعد هذا التقديم
المتواضع عن نظام التشغيل أندرويد , نعود للحديث عن الثغرة التي افتتحنا بها
مقالنا و سأبدأ بشرح طريقة الهجوم باستخدام تطبيقات خبيثة أو ملغومة .
الهجوم باستخدام Malicious App :
بأندرويد , كما سبق الذكر بفقرة نظام الحماية , كل تطبيق يكون بمعزل عن
باقي التطبيقات المشغلة بالنظام , و أي تطبيق لا يمكنه الدخول لملفات و بيانات
التطبيقات الأخرى , لكن يظل ممكنا أن يقوم تطبيق باستدعاء مكونات تطبيق اخر .
أي Activity يمكن أن يستدعى من طرف تطبيق اخر , و تكوين Activity عمومي يؤدي الى إنشاء مكان فرعي
SandBox. و المشكل يطرح عندما يقوم تطبيق على شكل فيروس باستدعاء Activity ويقوم بتزويده
ببيانات خبيثة.
Attacking Shared Activities |
الثغـــــــرة :
التطبيق
الملغم يمكنه استدعاء أي PreferenceActivity
Class
و تزويده ب :android :show_fragment بغرض تحميل Arbitrary Class . طبعا المخترق
أو الهكر من خلال تطبيق الإستغلال يهدف لتنفيذ أوامر التي ستقوم بكسر Android Sandbox –تمت الإشارة له
بالتقديم - , و بهذا يمكن الوصول للبيانات و المعلومات الحساسة من التطبيقات
المصابة بالثغرة , و كذلك يمكن تغيير permissions .
و كذلك يجب الإشارة أن المخترق لا يمكنه تزويد أو حقن Class خاصة به بل فقط التي يقوم بتحميلها و يستعملها
التطبيق – Android Framework
Classes و App Classes - .
كذلك
التطبيقات الملغومة يمكنها أن تجعل من PreferenceActivity تحمل Arbitrary Fragment للتطبيق المصاب بالثغرة . و
للتوضيح يمكن الإستعانة بالصورة التالية
Attacking a Fragment |
إصلاح
الثغرة :
جوجل
قامت بإصلاح الثغرة و و ضعت الباتش ب Android
4.4 KitKat , كذلك لمن يحب الإطلاع عن
طريقة استغلال الثغرة من خلال المصادر بالأسفل .
المصادر
:
مكتشف
الثغرة : securityintelligenceAndroid Security Team
شرح
الثغرة و استغلالها : Fragment Injection
http://developer.android.com/reference/android/app/Fragment.html
0 comments:
إرسال تعليق
أضف تعليقك