تک‌ضرب‌ربایی

دسته OWASP: MASVS-PLATFORM: تعامل پلاتفرم

نمای کلی

«ربایش ضربه» معادل برنامه Android برای آسیب‌پذیری وب ربایش کلیک است: یک برنامه مخرب با پنهان کردن واسط کاربر با یک هم‌پوشانی یا با روش‌های دیگر، کاربر را فریب می‌دهد تا روی یک کنترل مرتبط با امنیت (دکمه تأیید و غیره) کلیک کند. در این صفحه، دو نوع حمله را متمایز می‌کنیم: انسداد کامل و جزئی. در انسداد کامل، مهاجم روی ناحیه لمسی قرار می‌گیرد، درحالی‌که در انسداد جزئی، ناحیه لمسی بدون مانع باقی می‌ماند.

تأثیر

از حملات «ربایش ضربه» برای فریب دادن کاربران برای انجام کنش‌های خاصی استفاده می‌شود. تأثیر آن به کنشی بستگی دارد که مهاجم هدف قرار داده است.

خطر: انسداد کامل

در انسداد کامل، مهاجم ناحیه لمسی را می‌پوشاند تا رویداد لمسی را برباید:

تصویر انسداد کامل

کاهش

با تنظیم View.setFilterTouchesWhenObscured(true) در کد، از انسداد کامل جلوگیری می‌شود. این کار لمس‌های منتقل‌شده از هم‌پوشانی را مسدود می‌کند. اگر رویکرد اعلانی را ترجیح می‌دهید، می‌توانید android:filterTouchesWhenObscured="true" را در فایل چیدمان برای شیء View که می‌خواهید محافظت کنید نیز اضافه کنید.


خطر: انسداد جزئی

در حملات انسداد جزئی، ناحیه لمس بدون مانع باقی می‌ماند:

تصویر انسداد جزئی

کاهش

می‌توانید با نادیده گرفتن دستی رویدادهای لمسی که پرچم FLAG_WINDOW_IS_PARTIALLY_OBSCURED دارند، انسداد جزئی را کاهش دهید. هیچ محافظت پیش‌فرضی دربرابر این سناریو وجود ندارد.

‫Android 14 و accessibilityDataSensitive: در Android 14 (سطح API‏ ۳۴) و بالاتر، می‌توانید از پرچم accessibilityDataSensitive برای محافظت از داده‌های حساس دربرابر سرویس‌های دسترس‌پذیری مخرب استفاده کنید. وقتی این پرچم را در نماهای حساس (مثل صفحه‌های ورود به سیستم یا تأیید تراکنش) تنظیم می‌کنید، فقط سرویس‌هایی که android:isAccessibilityTool="true" را اعلام می‌کنند می‌توانند داده‌های نما را بخوانند یا کنش‌های دسترس‌پذیری را در آن انجام دهند. در Android 16 (سطح API‏ ۳۶) و بالاتر، accessibilityDataSensitive همچنین اشاره‌های لمسی شبیه‌سازی‌شده تزریق‌شده با AccessibilityService.dispatchGesture را توسط سرویس‌هایی که android:isAccessibilityTool="true" را اعلام نمی‌کنند مسدود می‌کند. این کار محافظت در سطح سیستم را دربرابر حملات استراق سمع و تزریق کلیک که از ویژگی‌های سناریوهای انسداد جزئی است فراهم می‌کند. می‌توانید با مشخص کردن android:filterTouchesWhenObscured="true" در فایل‌های چیدمان، accessibilityDataSensitive را به‌طور ضمنی فعال کنید.


خطرات خاص

این بخش خطراتی را جمع‌آوری می‌کند که به استراتژی‌های کاهش غیراستاندارد نیاز دارند یا در سطح خاصی از کیت توسعه نرم‌افزار کاهش یافته‌اند و برای کامل بودن در اینجا آورده شده‌اند.

خطر: android.Manifest.permission.SYSTEM_ALERT_WINDOW

اجازه SYSTEM_ALERT_WINDOW به برنامه امکان می‌دهد پنجره‌ای ایجاد کند که روی همه برنامه‌ها نشان داده می‌شود.

کاهش

نسخه‌های جدیدتر Android چندین اقدام کاهشی معرفی کرده‌اند، ازجمله:

  • در Android نسخه ۶ (سطح میانای برنامه‌سازی کاربردی ۲۳) و بالاتر، کاربران باید صریحاً به برنامه اجازه دهند پنجره هم‌پوشانی ایجاد کند.
  • در Android 12 (سطح میانای برنامه‌سازی کاربردی ۳۱) و بالاتر، برنامه‌ها می‌توانند true را به Window.setHideOverlayWindows() منتقل کنند.

ریسک: اعلان موقت سفارشی

مهاجم می‌تواند از Toast.setView() برای سفارشی‌سازی کردن ظاهر پیام اعلان گذرا استفاده کند. در Android 10 (میانای برنامه‌سازی کاربردی سطح ۲۹) و نسخه‌های پایین‌تر، برنامه‌های مخرب می‌توانستند چنین کادرهای موقتی را از پس‌زمینه راه‌اندازی کنند.

کاهش

اگر برنامه‌ای Android 11 (سطح میانای برنامه‌سازی کاربردی ۳۰) یا بالاتر را هدف قرار دهد، سیستم پیام‌های موقت سفارشی پس‌زمینه را مسدود می‌کند. بااین‌حال، در برخی شرایط می‌توان بااستفاده از Toast burst از این کاهش اجتناب کرد، جایی که مهاجم چندین toast را در پیش‌زمینه صف‌بندی می‌کند و این toastها حتی پس‌از رفتن برنامه به پس‌زمینه همچنان راه‌اندازی می‌شوند.

از Android 12 (سطح میانای برنامه‌سازی کاربردی ۳۱)، اعلان‌های موقت پس‌زمینه و حملات رگباری اعلان‌های موقت کاملاً کاهش یافته‌اند.


ریسک: فعالیت ساندویچی

اگر یک برنامه مخرب بتواند کاربر را متقاعد کند که آن را باز کند، همچنان می‌تواند فعالیتی را از برنامه قربانی راه‌اندازی کند و سپس آن را با فعالیت خودش هم‌پوشانی کند، که این امر منجر به ایجاد یک ساندویچ فعالیت و یک حمله انسداد جزئی می‌شود.

کاهش

کاهش‌های کلی برای انسداد جزئی را ببینید. برای دفاع در عمق، مطمئن شوید فعالیت‌هایی را که نیازی به صادر شدن ندارند صادر نکنید تا از ساندویچ کردن آن‌ها توسط مهاجم جلوگیری شود.


منابع