فئة OWASP: MASVS-PLATFORM: التفاعل مع المنصة
نظرة عامة
"تمويه النقر" هو المعادل في تطبيقات Android لثغرة تمويه النقر على الويب: يخدع تطبيق ضار المستخدم للنقر على عنصر تحكّم ذي صلة بالأمان (زر تأكيد وما إلى ذلك) من خلال حجب واجهة المستخدم باستخدام تراكب أو بوسائل أخرى. في هذه الصفحة، نفرّق بين نوعَين من الهجمات: الحجب الكامل والحجب الجزئي. في حالة الحجب الكامل، يغطي المهاجم منطقة اللمس، بينما في حالة الحجب الجزئي، تظل منطقة اللمس غير محجوبة.
التأثير
يتم استخدام هجمات Tapjacking لخداع المستخدمين لتنفيذ إجراءات معيّنة. ويعتمد التأثير على الإجراء الذي يستهدفه المهاجم.
الخطر: حجب كامل
في حالة الحجب الكامل، يضع المهاجم تراكبًا على منطقة اللمس للاستيلاء على حدث اللمس:

إجراءات التخفيف
يتم منع الحجب الكامل من خلال ضبط View.setFilterTouchesWhenObscured(true) في الرمز البرمجي. يؤدي هذا الإجراء إلى حظر اللمسات التي يتم تمريرها من خلال تراكب. إذا كنت تفضّل النهج التعريفي، يمكنك أيضًا إضافة android:filterTouchesWhenObscured="true" في ملف التنسيق الخاص بعنصر View الذي تريد حمايته.
الخطر: حجب جزئي
في هجمات الحجب الجزئي، تظل منطقة اللمس غير محجوبة:

إجراءات التخفيف
يمكنك الحدّ من الحجب الجزئي من خلال تجاهل أحداث اللمس التي تحتوي على العلامة FLAG_WINDOW_IS_PARTIALLY_OBSCURED يدويًا. لا تتوفّر إجراءات حماية تلقائية
ضد هذا السيناريو.
Android 14 والإصدارات الأحدث accessibilityDataSensitive: في الإصدار Android 14 (مستوى واجهة برمجة التطبيقات 34) والإصدارات الأحدث، يمكنك استخدام العلامة accessibilityDataSensitive لحماية البيانات الحسّاسة من خدمات تسهيل الاستخدام الضارة. عند ضبط هذه العلامة على
طرق العرض الحسّاسة، مثل شاشات تسجيل الدخول أو تأكيد المعاملات، يمكن فقط
للخدمات التي تصرّح عن
android:isAccessibilityTool="true" قراءة
بيانات طريقة العرض أو تنفيذ إجراءات تسهيل الاستخدام عليها. في Android 16 (مستوى واجهة برمجة التطبيقات 36) والإصدارات الأحدث، يحظر accessibilityDataSensitive أيضًا إيماءات اللمس التي تتم محاكاتها والتي يتم إدخالها باستخدام AccessibilityService.dispatchGesture من خلال الخدمات التي لا تصرّح عن android:isAccessibilityTool="true". ويوفّر ذلك حماية على مستوى النظام ضد هجمات التنصت وحقن النقرات التي تتميز بها سيناريوهات الحجب الجزئي. يمكنك تفعيل accessibilityDataSensitive ضمنيًا من خلال تحديد android:filterTouchesWhenObscured="true" في ملفات التنسيق.
مخاطر محدّدة
يجمع هذا القسم المخاطر التي تتطلّب استراتيجيات تخفيف غير عادية أو تم تخفيفها على مستوى معيّن من حزمة تطوير البرامج (SDK)، ويتم عرضها هنا لضمان الاكتمال.
المخاطرة: android.Manifest.permission.SYSTEM_ALERT_WINDOW
يسمح الإذن SYSTEM_ALERT_WINDOW للتطبيق بإنشاء نافذة تظهر فوق جميع التطبيقات.
إجراءات التخفيف
قدّمت الإصدارات الأحدث من Android العديد من إجراءات الحدّ من المخاطر، بما في ذلك ما يلي:
- على نظام التشغيل Android 6 (مستوى واجهة برمجة التطبيقات 23) والإصدارات الأحدث، على المستخدمين منح الإذن صراحةً للتطبيق لإنشاء نافذة تراكب.
- في نظام التشغيل Android 12 (المستوى 31 لواجهة برمجة التطبيقات) والإصدارات الأحدث، يمكن للتطبيقات تمرير
trueإلىWindow.setHideOverlayWindows().
المخاطر: رسالة Toast مخصّصة
يمكن للمهاجم استخدام Toast.setView() لتخصيص مظهر رسالة إشعار مؤقت. في الإصدار 10 من نظام التشغيل Android (المستوى 29 لواجهة برمجة التطبيقات) والإصدارات الأقدم، يمكن للتطبيقات الضارة تشغيل هذه الإشعارات من الخلفية.
إجراءات التخفيف
إذا كان أحد التطبيقات يستهدف الإصدار 11 من نظام التشغيل Android (المستوى 30 لواجهة برمجة التطبيقات) أو الإصدارات الأحدث، يحظر النظام رسائل الإعلام المؤقتة المخصّصة في الخلفية. ومع ذلك، يمكن تجنُّب هذا الإجراء في بعض الحالات باستخدام Toast burst، حيث يضع المهاجم عدة رسائل Toast في قائمة الانتظار أثناء تشغيل التطبيق في المقدّمة ويستمر تشغيلها حتى بعد انتقال التطبيق إلى الخلفية.
تم التخفيف من حدة هجمات الإشعارات المنبثقة في الخلفية وهجمات الإشعارات المنبثقة المتسلسلة بالكامل اعتبارًا من الإصدار 12 من نظام التشغيل Android (مستوى واجهة برمجة التطبيقات 31).
المخاطرة: النشاط المحصور بين نشاطَين آخرَين
إذا نجح تطبيق ضار في إقناع المستخدم بفتحه، سيظل بإمكانه بدء نشاط من التطبيق الضحية ثم تراكبه مع نشاطه الخاص، ما يؤدي إلى إنشاء نشاط متداخل وشنّ هجوم حجب جزئي.
إجراءات التخفيف
يمكنك الاطّلاع على الإجراءات العامة للتخفيف من تأثيرات الحجب الجزئي. لتعزيز الدفاع في العمق، تأكَّد من عدم تصدير الأنشطة التي لا تحتاج إلى تصديرها لمنع المهاجم من استغلالها.
الموارد
تغييرات في سياسة مستوى واجهة برمجة التطبيقات المستهدَف في "متجر Google Play"
هجمات Android المستندة إلى خدمات تسهيل الاستخدام وإعادة تصميم واجهة المستخدم
التطبيقات المقترَحة لك
- ملاحظة: يتم عرض نص الرابط عندما يكون JavaScript غير مفعَّل
- android:exported
- # إدارة المفاتيح {:#key-management}
- تشغيل رمز DEX المضمَّن مباشرةً من حزمة APK