دسته OWASP: MASVS-PLATFORM: پلتفرم تعامل
نمای کلی
Tapjacking معادل برنامه اندرویدی آسیبپذیری وب کلیک جک است: یک برنامه مخرب کاربر را فریب میدهد تا با پوشاندن رابط کاربری با یک پوشش یا ابزارهای دیگر، روی یک کنترل مرتبط با امنیت (دکمه تأیید و غیره) کلیک کند. در این صفحه، ما دو نوع حمله را متمایز می کنیم: انسداد کامل و جزئی. در انسداد کامل، مهاجم ناحیه لمسی را پوشش میدهد، در حالی که در انسداد جزئی، ناحیه لمسی بدون پوشش باقی میماند.
تاثیر
حملات Tapjacking برای فریب دادن کاربران به انجام برخی اقدامات استفاده می شود. تاثیر به اقدامی که مهاجم هدف قرار می دهد بستگی دارد.
خطر: انسداد کامل
در انسداد کامل، مهاجم ناحیه لمسی را میپوشاند تا رویداد لمسی را ربوده کند:
اقدامات کاهشی
با تنظیم View.setFilterTouchesWhenObscured(true)
در کد از انسداد کامل جلوگیری می شود. این لمس های عبور شده توسط یک پوشش را مسدود می کند. اگر رویکرد اعلامی را ترجیح میدهید، میتوانید android:filterTouchesWhenObscured="true"
نیز در فایل طرحبندی برای شی View
که میخواهید محافظت کنید، اضافه کنید.
خطر: انسداد جزئی
در حملات انسداد جزئی، ناحیه لمسی بدون پوشش باقی می ماند:
اقدامات کاهشی
میتوانید با نادیده گرفتن دستی رویدادهای لمسی که دارای پرچم FLAG_WINDOW_IS_PARTIALLY_OBSCURED
هستند، انسداد جزئی را کاهش دهید. هیچ حفاظت پیش فرض در برابر این سناریو وجود ندارد.
Android 16 و accessibilityDataSensitive
: با شروع Android 16 (سطح API 16) و بالاتر، توسعهدهندگان میتوانند از پرچم accessibilityDataSensitive
برای محافظت بیشتر از دادههای حساس در برابر سرویسهای دسترسی مخرب که ابزار دسترسی قانونی نیستند استفاده کنند. وقتی این پرچم روی نماهای حساس تنظیم میشود (مانند صفحههای ورود به سیستم، صفحههای تأیید تراکنش)، برنامههای دارای مجوز دسترسی را از خواندن یا تعامل با دادههای حساس محدود میکند، مگر اینکه در مانیفست خود بهعنوان isA11yTool=true
اعلام شده باشند. این یک محافظت قوی تر در سطح سیستم در برابر حملات استراق سمع و تزریق کلیکی که مشخصه سناریوهای انسداد جزئی است، فراهم می کند. توسعه دهندگان اغلب می توانند به طور ضمنی accessibilityDataSensitive
با مشخص کردن android:filterTouchesWhenObscured="true"
در فایل های طرح بندی خود فعال کنند.
خطرات خاص
این بخش خطراتی را جمع آوری می کند که به استراتژی های کاهش غیر استاندارد نیاز دارند یا در سطح 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 اجرا کنید
دسته OWASP: MASVS-PLATFORM: پلتفرم تعامل
نمای کلی
Tapjacking معادل برنامه اندرویدی آسیبپذیری وب کلیک جک است: یک برنامه مخرب کاربر را فریب میدهد تا با پوشاندن رابط کاربری با یک پوشش یا ابزارهای دیگر، روی یک کنترل مرتبط با امنیت (دکمه تأیید و غیره) کلیک کند. در این صفحه، دو نوع حمله را متمایز میکنیم: انسداد کامل و جزئی. در انسداد کامل، مهاجم ناحیه لمسی را پوشش میدهد، در حالی که در انسداد جزئی، ناحیه لمسی بدون پوشش باقی میماند.
تاثیر
حملات Tapjacking برای فریب دادن کاربران به انجام برخی اقدامات استفاده می شود. تاثیر به اقدامی که مهاجم هدف قرار می دهد بستگی دارد.
خطر: انسداد کامل
در انسداد کامل، مهاجم ناحیه لمسی را میپوشاند تا رویداد لمسی را ربوده کند:
اقدامات کاهشی
با تنظیم View.setFilterTouchesWhenObscured(true)
در کد از انسداد کامل جلوگیری می شود. این لمس های عبور شده توسط یک پوشش را مسدود می کند. اگر رویکرد اعلامی را ترجیح میدهید، میتوانید android:filterTouchesWhenObscured="true"
نیز در فایل طرحبندی برای شی View
که میخواهید محافظت کنید، اضافه کنید.
خطر: انسداد جزئی
در حملات انسداد جزئی، ناحیه لمسی بدون پوشش باقی می ماند:
اقدامات کاهشی
میتوانید با نادیده گرفتن دستی رویدادهای لمسی که دارای پرچم FLAG_WINDOW_IS_PARTIALLY_OBSCURED
هستند، انسداد جزئی را کاهش دهید. هیچ حفاظت پیش فرض در برابر این سناریو وجود ندارد.
Android 16 و accessibilityDataSensitive
: با شروع Android 16 (سطح API 16) و بالاتر، توسعهدهندگان میتوانند از پرچم accessibilityDataSensitive
برای محافظت بیشتر از دادههای حساس در برابر سرویسهای دسترسی مخرب که ابزار دسترسی قانونی نیستند استفاده کنند. وقتی این پرچم روی نماهای حساس تنظیم میشود (مانند صفحههای ورود به سیستم، صفحههای تأیید تراکنش)، برنامههای دارای مجوز دسترسی را از خواندن یا تعامل با دادههای حساس محدود میکند، مگر اینکه در مانیفست خود بهعنوان isA11yTool=true
اعلام شده باشند. این یک محافظت قوی تر در سطح سیستم در برابر حملات استراق سمع و تزریق کلیکی که مشخصه سناریوهای انسداد جزئی است، فراهم می کند. توسعه دهندگان اغلب می توانند به طور ضمنی accessibilityDataSensitive
با مشخص کردن android:filterTouchesWhenObscured="true"
در فایل های طرح بندی خود فعال کنند.
خطرات خاص
این بخش خطراتی را جمع آوری می کند که به استراتژی های کاهش غیر استاندارد نیاز دارند یا در سطح 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 اجرا کنید
دسته OWASP: MASVS-PLATFORM: پلتفرم تعامل
نمای کلی
Tapjacking معادل برنامه اندرویدی آسیبپذیری وب کلیک جک است: یک برنامه مخرب کاربر را فریب میدهد تا با پوشاندن رابط کاربری با یک پوشش یا ابزارهای دیگر، روی یک کنترل مرتبط با امنیت (دکمه تأیید و غیره) کلیک کند. در این صفحه، دو نوع حمله را متمایز میکنیم: انسداد کامل و جزئی. در انسداد کامل، مهاجم ناحیه لمسی را پوشش میدهد، در حالی که در انسداد جزئی، ناحیه لمسی بدون پوشش باقی میماند.
تاثیر
حملات Tapjacking برای فریب دادن کاربران به انجام برخی اقدامات استفاده می شود. تاثیر به اقدامی که مهاجم هدف قرار می دهد بستگی دارد.
خطر: انسداد کامل
در انسداد کامل، مهاجم ناحیه لمسی را میپوشاند تا رویداد لمسی را ربوده کند:
اقدامات کاهشی
با تنظیم View.setFilterTouchesWhenObscured(true)
در کد از انسداد کامل جلوگیری می شود. این لمس های عبور شده توسط یک پوشش را مسدود می کند. اگر رویکرد اعلامی را ترجیح میدهید، میتوانید android:filterTouchesWhenObscured="true"
نیز در فایل طرحبندی برای شی View
که میخواهید محافظت کنید، اضافه کنید.
خطر: انسداد جزئی
در حملات انسداد جزئی، ناحیه لمسی بدون پوشش باقی می ماند:
اقدامات کاهشی
میتوانید با نادیده گرفتن دستی رویدادهای لمسی که دارای پرچم FLAG_WINDOW_IS_PARTIALLY_OBSCURED
هستند، انسداد جزئی را کاهش دهید. هیچ حفاظت پیش فرض در برابر این سناریو وجود ندارد.
Android 16 و accessibilityDataSensitive
: با شروع Android 16 (سطح API 16) و بالاتر، توسعهدهندگان میتوانند از پرچم accessibilityDataSensitive
برای محافظت بیشتر از دادههای حساس در برابر سرویسهای دسترسی مخرب که ابزار دسترسی قانونی نیستند استفاده کنند. وقتی این پرچم روی نماهای حساس تنظیم میشود (مانند صفحههای ورود به سیستم، صفحههای تأیید تراکنش)، برنامههای دارای مجوز دسترسی را از خواندن یا تعامل با دادههای حساس محدود میکند، مگر اینکه در مانیفست خود بهعنوان isA11yTool=true
اعلام شده باشند. این یک محافظت قوی تر در سطح سیستم در برابر حملات استراق سمع و تزریق کلیکی که مشخصه سناریوهای انسداد جزئی است، فراهم می کند. توسعه دهندگان اغلب می توانند به طور ضمنی accessibilityDataSensitive
با مشخص کردن android:filterTouchesWhenObscured="true"
در فایل های طرح بندی خود فعال کنند.
خطرات خاص
این بخش خطراتی را جمع آوری می کند که به استراتژی های کاهش غیر استاندارد نیاز دارند یا در سطح 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 اجرا کنید