فئة OWASP: MASVS-PLATFORM: Platform Interaction (التفاعل مع النظام الأساسي)
نظرة عامة
تحدث ثغرة اختراق القصد الضمني عندما لا يحدد التطبيق اسم فئة مكوّن أو حزمة مؤهَّلة بالكامل عند استدعاء القصد. ويسمح ذلك للتطبيق الضار بتسجيل فلتر أهداف لالتقاط الهدف بدلاً من التطبيق المقصود.
استنادًا إلى محتوى الطلب، يمكن للمهاجمين قراءة معلومات حساسة أو تعديلها أو التفاعل مع عناصر قابلة للتغيير، مثل العناصر PendingIntents أو Binders القابلة للتغيير.
يمكن أن يؤدي الاستيلاء على نية ضمنية أيضًا إلى السماح للمهاجم بتنفيذ إجراءات عشوائية، مثل تشغيل مكوّنات يتحكم فيها المهاجم.
التأثير
إذا كان الغرض الضمني الذي يعالج البيانات الحسّاسة يُرسل رمز تعريف جلسة ضمن سلسلة عنوان URL إضافية لفتح WebView، يمكن لأي تطبيق يحدّد فلاتر الغرض المناسبة قراءة هذا الرمز المميّز. ويمكن أن يسمح ذلك لأي تطبيق تم ضبطه بشكل صحيح على الجهاز باعتراض الطلب وقراءة البيانات الحسّاسة المضمّنة فيه، مما يسمح للمهاجمين بسرقة البيانات، مثل معلومات تحديد الهوية الشخصية أو الرموز المميّزة للجلسة.
إجراءات التخفيف
يجب توضيح النوايا من خلال استدعاء
setPackage()
ما لم يتطلّب التطبيق ذلك. ويسمح ذلك بتفسير النية من خلال عنصر محدّد فقط (إما داخل التطبيق أو من تطبيقات أخرى)، ما يمنع التطبيقات غير الموثوق بها من اعتراض البيانات المُرسَلة مع النية. يوضّح المقتطف التالي كيفية جعل النية صريحة:
Kotlin
val intent = Intent("android.intent.action.CREATE_DOCUMENT").apply {
addCategory("android.intent.category.OPENABLE")
setPackage("com.some.packagename")
setType("*/*")
putExtra("android.intent.extra.LOCAL_ONLY", true)
putExtra("android.intent.extra.TITLE", "Some Title")
}
startActivity(intent)
Java
Intent intent = new Intent("android.intent.action.CREATE_DOCUMENT");
intent.addCategory("android.intent.category.OPENABLE");
intent.setPackage("com.some.packagename");
intent.setType("*/*");
intent.putExtra("android.intent.extra.LOCAL_ONLY", true);
intent.putExtra("android.intent.extra.TITLE", "Some Title");
startActivity(intent);
إذا كنت بحاجة إلى استخدام النوايا الضمنية، احذف أي معلومات حسّاسة أو عناصر قابلة للتغيير لا تريد إظهارها. قد يكون من الضروري استخدام النوايا الضمنية عندما لا يملك التطبيق معلومات دقيقة عن التطبيق الذي سيحلّ الإجراء (مثل كتابة رسالة إلكترونية أو التقاط صورة أو غير ذلك).
المراجع
- عنصر فلتر الغرض من البيان
- إضافة الأذونات المميّزة إلى القائمة المسموح بها
- المقصودات وفلاتر المقصودات
- فرض أداة الاختيار على النوايا الضمنية
- النوايا الضمنية الشائعة