تپجک زدن

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

نمای کلی

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

تاثیر

حملات Tapjacking برای فریب دادن کاربران به انجام برخی اقدامات استفاده می شود. تاثیر به اقدامی که مهاجم هدف قرار می دهد بستگی دارد.

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

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

Full occlusion image

اقدامات کاهشی

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


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

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

Partial occlusion image

اقدامات کاهشی

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

هشدار احتمالی: این کاهش می تواند با برنامه های خوش خیم تداخل داشته باشد. در برخی موارد، ارائه این اصلاح ممکن نیست، زیرا زمانی که انسداد جزئی توسط یک برنامه کاربردی خوش خیم ایجاد می شود، بر تجربه کاربر تأثیر منفی می گذارد.


خطرات خاص

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

خطر: android.Manifest.permission.SYSTEM_ALERT_WINDOW

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

اقدامات کاهشی

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

  • در اندروید 6 (سطح API 23) و بالاتر، کاربران باید به صراحت اجازه ایجاد یک پنجره همپوشانی را به برنامه بدهند.
  • در Android 12 (سطح API 31) و بالاتر، برنامه‌ها می‌توانند true به Window.setHideOverlayWindows() منتقل کنند.

خطر: نان تست سفارشی

یک مهاجم می تواند از Toast.setView() برای سفارشی کردن ظاهر پیام نان تست استفاده کند. در اندروید 10 (سطح API 29) و پایین تر، برنامه های مخرب می توانند چنین تست هایی را از پس زمینه راه اندازی کنند.

اقدامات کاهشی

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

از Android 12 (سطح API 31) نان تست‌های پس‌زمینه و حملات پشت سر هم به طور کامل کاهش می‌یابند.


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

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

اقدامات کاهشی

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


منابع

{% کلمه به کلمه %} {% آخر کلمه %} {% کلمه به کلمه %} {% آخر کلمه %}