فئة OWASP: MASVS-CODE: جودة الرمز
نظرة عامة
قد يؤدي إصدار إصدارات نهائية تتضمّن ميزات "الاختبار" أو "تصحيح الأخطاء" إلى التأثير سلبًا في مستوى أمان التطبيق. تُستخدَم هذه الوظائف لمساعدة المطوّرين في اكتشاف الأخطاء وتحديدها ضمن حالات استخدام التطبيق المقصودة قبل إصدار إصدار جديد أو بعده، ويجب ألا تكون متاحة للجميع.
في ما يلي أمثلة على ميزات الاختبار/ تصحيح الأخطاء:
- القوائم المخفية
- خيارات تفعيل سجلّات تصحيح الأخطاء
- خيارات لتغيير سير التطبيق
- خيارات للتحايل على عمليات الدفع أو الاشتراك
- خيارات لتجاوز المصادقة
- اختبارات للأنشطة الخاصة بالتطبيق
يمكن للمستخدم الضار الاستفادة من كل ما سبق لتغيير المسار المقصود للتطبيق أو استرداد معلومات النظام لتخصيص المزيد من الهجمات.
قد يختلف مستوى الخطورة الناتج عن ترك ميزات "الاختبار" أو "تصحيح الأخطاء" مكشوفة حسب الإجراء المرتبط بإمكانات تصحيح الأخطاء نفسها.
هناك مجال آخر يشكّل خطرًا على التطبيق وهو السمة android:debuggable
المعيّنة ضمن العنصر <application>
في ملف AndroidManifest.xml. كما هو موضّح في مقالة android:debuggable،
يسمح نشر تطبيق مخصّص للإنتاج مع ضبط القيمة المذكورة أعلاه
للمستخدمين الضارين بالوصول إلى موارد إدارية لا يمكن الوصول إليها
في الحالات الأخرى.
التأثير
يمكن أن يؤدي تفاعل مستخدم ضار مع ميزة "الاختبار" أو "تصحيح الأخطاء" في إصدار علني إلى نتائج غير متوقّعة. ويرتبط تأثير أي إجراء بشكل مباشر بالأذونات الممنوحة للميزة. وكلما زادت الأذونات، زاد التأثير الذي يمكن أن يحدثه الاستغلال النشط. ويمكن استخدام هذه الوظائف داخل التطبيق للتحايل على عدد من وسائل الحماية أو تجاوز جدران الحماية أو استرداد معلومات متعلقة بالنظام أو المستخدم أو بدء أنشطة الاختبار.
إجراءات التخفيف
تجنُّب استخدام مكوّنات تصحيح الأخطاء
يجب عدم تنفيذ وظائف الاختبار أو تصحيح الأخطاء في مكونات التطبيق المخصّصة للإنتاج، مثل الأنشطة أو أدوات استقبال البث أو الخدمات أو موفّري المحتوى، لأنّه في حال تصديرها، يمكن لأي عملية أخرى على الجهاز تشغيلها. لا يشكّل ضبط مكوّن تصحيح الأخطاء على أنّه غير مُصدَّر (android:exported="false") حماية صالحة للإمكانات، لأنّه لا يزال بإمكان أي جهاز مزوّد بحق الوصول إلى الجذر تنفيذها من خلال أداة "جسر تصحيح أخطاء Android" (ADB) إذا تم تفعيل خيار تصحيح الأخطاء.
حصر ميزات تصحيح الأخطاء أو الاختبار على الإصدارات التجريبية
يجب أن يقتصر تنفيذ أي وظيفة اختبار أو تصحيح أخطاء داخل التطبيقات على مجموعة محدودة فقط من إصدارات مرحلة الاختبار، وذلك للسماح للمطوّرين فقط بتصحيح الأخطاء أو اختبار ميزات التطبيق في بيئة خاضعة للرقابة. ويمكن الحصول على ذلك من خلال إنشاء إصدار مخصّص للاختبار أو تصحيح الأخطاء في التطبيق، وإجراء اختبارات متقدّمة باستخدام أدوات القياس لضمان تشغيل أي ميزة اختبار أو تصحيح أخطاء على إصدار معزول.
تنفيذ اختبارات واجهة المستخدم المبرمَجة
عند إجراء اختبارات على أحد التطبيقات، ننصحك باختيار اختبارات واجهة المستخدم المبرمَجة لأنّها قابلة للتكرار ويمكن تنفيذها في بيئة منفصلة ولا تكون عرضة للأخطاء البشرية.
المراجع
- إرشادات للمطوّرين بشأن إعدادات الاختبار المتقدّم
- إرشادات للمطوّرين حول أتمتة اختبارات واجهة المستخدم
- android:debuggable
- android:exported
- التطبيقات القابلة لتصحيح الأخطاء في "سوق Android"
- هل يمكن أن يتسبب رمز تصحيح الأخطاء في حدوث ثغرات أمنية؟