دسته OWASP: MASVS-PLATFORM: پلتفرم تعامل
نمای کلی
Tapjacking معادل برنامه اندرویدی آسیبپذیری وب کلیک جک است: یک برنامه مخرب کاربر را فریب میدهد تا با پوشاندن رابط کاربری با یک پوشش یا ابزارهای دیگر، روی یک کنترل مرتبط با امنیت (دکمه تأیید و غیره) کلیک کند. در این صفحه، ما دو نوع حمله را متمایز می کنیم: انسداد کامل و جزئی. در انسداد کامل، مهاجم ناحیه لمسی را پوشش میدهد، در حالی که در انسداد جزئی، ناحیه لمسی بدون پوشش باقی میماند.
تاثیر
حملات Tapjacking برای فریب دادن کاربران به انجام برخی اقدامات استفاده می شود. تاثیر به اقدامی که مهاجم هدف قرار می دهد بستگی دارد.
خطر: انسداد کامل
در انسداد کامل، مهاجم ناحیه لمسی را میپوشاند تا رویداد لمسی را ربوده کند:
اقدامات کاهشی
با تنظیم View.setFilterTouchesWhenObscured(true)
در کد از انسداد کامل جلوگیری می شود. این لمس های عبور شده توسط یک پوشش را مسدود می کند. اگر رویکرد اعلامی را ترجیح میدهید، میتوانید android:filterTouchesWhenObscured="true"
نیز در فایل طرحبندی برای شی View
که میخواهید محافظت کنید، اضافه کنید.
خطر: انسداد جزئی
در حملات انسداد جزئی، ناحیه لمسی بدون پوشش باقی می ماند:
اقدامات کاهشی
انسداد جزئی با نادیده گرفتن دستی رویدادهای لمسی که دارای پرچم 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) نان تستهای پسزمینه و حملات پشت سر هم به طور کامل کاهش مییابند.
خطر: ساندویچ فعالیت
اگر یک برنامه مخرب موفق شود کاربر را متقاعد کند که آن را باز کند، همچنان می تواند یک فعالیت را از برنامه قربانی راه اندازی کند و متعاقباً آن را با فعالیت خود پوشش دهد، یک ساندویچ فعالیت تشکیل دهد و یک حمله انسداد جزئی ایجاد کند.
اقدامات کاهشی
کاهش کلی برای انسداد جزئی را ببینید. برای دفاع عمیق، مطمئن شوید که فعالیتهایی را که نیازی به صادرات ندارند، صادر نکنید تا از ساندویچ کردن آنها توسط مهاجم جلوگیری شود.
منابع
{% کلمه به کلمه %}برای شما توصیه می شود
- توجه: وقتی جاوا اسکریپت خاموش است، متن پیوند نمایش داده می شود
- android:exported
- # مدیریت کلید {:#key-management}
- کد DEX جاسازی شده را مستقیماً از APK اجرا کنید