دسته OWASP: MASVS-PLATFORM: پلتفرم تعامل
نمای کلی
حمله StrandHogg / آسیبپذیری Task Affinity فعال شد / به دلیل یک اشکال طراحی در نحوه مدیریت چندین کار اندروید، به ویژه ویژگی به نام تکثیر مجدد، ایجاد شد. Application task reparenting قابلیتی است که به برنامه اجازه می دهد تا یک فعالیت را از یک کار به کار دیگر منتقل کند.
حمله StrandHogg از فقدان وضوح در مورد نحوه بررسی فعالیتهای پشته وظیفه برنامههای ورودی استفاده میکند و به یک برنامه مخرب اجازه میدهد یکی از موارد زیر را انجام دهد:
- یک فعالیت مخرب را به یا از پشته قربانی منتقل کنید
- پس از اتمام یک فعالیت قربانی، فعالیت مخرب را به عنوان پشته بازگشتی تنظیم کنید
این آسیب پذیری با دستکاری تنظیمات allowTaskReparenting
و taskAffinity
مورد سوء استفاده قرار می گیرد.
تاثیر
یک برنامه مخرب می تواند taskAffinity یکی از فعالیت های خود را طوری تنظیم کند که با packageName یک برنامه هدف مطابقت داشته باشد. سپس میتوان این کار را با ربودن قصد همراه کرد تا دفعه بعد که برنامه هدف توسط کاربر راهاندازی شد، برنامه مخرب نیز راهاندازی شده و در بالای برنامه هدف نمایش داده شود.
سپس میتوان از آسیبپذیری Task Affinity برای ربودن اقدامات قانونی کاربر استفاده کرد.
کاربر ممکن است فریب داده شود تا اعتبار یک برنامه مخرب را ارائه دهد. بهطور پیشفرض، هنگامی که یک فعالیت شروع میشود و با یک کار مرتبط میشود، آن ارتباط برای کل چرخه حیات فعالیت ادامه مییابد. با این حال، تنظیم allowTaskReparenting روی true این محدودیت را می شکند و به یک فعالیت موجود اجازه می دهد تا دوباره به یک کار "بومی" جدید ایجاد شود.
به عنوان مثال، برنامه A می تواند توسط برنامه B مورد هدف قرار گیرد، و پس از بازگشت از فعالیت تکمیل شده برنامه A، فعالیت های برنامه A را به پشته فعالیت برنامه B هدایت کند. این انتقال از یک برنامه به برنامه دیگر از کاربر پنهان است و یک تهدید فیشینگ قابل توجهی ایجاد می کند.
کاهش
به روز رسانی به android:minSdkVersion="30"
.
آسیبپذیری حمله StrandHogg/Task affinity در اصل در مارس 2019 وصله شد و یک نسخه جدیدتر و جامعتر در سپتامبر 2020 وصله شد. نسخههای Android SDK نسخه 30 و جدیدتر (Android 11) حاوی وصلههای سیستم عامل مناسب برای جلوگیری از این آسیبپذیری هستند. در حالی که می توان تا حدی نسخه 1 حمله StrandHogg را از طریق پیکربندی برنامه فردی کاهش داد، نسخه 2 حمله فقط با این وصله نسخه SDK قابل جلوگیری است.
منابع
- مقاله آکادمیک اصلی که آسیبپذیری را در Usenix 15 توصیف میکند {.external}
- گسترش آسیبپذیری اصلی {.external} توسط گروه Promon Security
- مستندات توسعه دهنده اندروید برای android:allowTaskReparenting
- مستندات توسعه دهنده اندروید برای android:taskAffinity
- مستندات توسعه دهنده اندروید برای عنصر برنامه android:allowTaskReparenting