هجوم StrandHogg / الثغرة الأمنية المتعلقة بالمهام

فئة OWASP: MASVS-PLATFORM: التفاعل مع النظام الأساسي

نظرة عامة

تم تفعيل هجوم StrandHogg / ثغرة Task Affinity أو نتجت عن خطأ في التصميم في طريقة تعامل Android مع المهام المتعددة، وتحديدًا الميزة التي تُعرف باسم إعادة تحديد مهام الوالدين. إعادة تحديد مهام التطبيق هي ميزة تسمح للتطبيق بنقل نشاط من مهمة إلى أخرى.

يستغل هجوم StrandHogg عدم الوضوح بشأن كيفية التحقّق من أنشطة تسلسل مهام التطبيقات الواردة، ويسمح للتطبيق الضار بتنفيذ أيّ مما يلي:

  • نقل نشاط ضار إلى حزمة ضحية أو من حزمة ضحية
  • ضبط النشاط الضارّ كمجموعة الاسترجاع عند اكتمال أحد أنشطة الضحية

يتم استغلال هذه الثغرة من خلال التلاعب بالإعدادات allowTaskReparenting و taskAffinity.

التأثير

يمكن لتطبيق ضار ضبط taskAffinity لأحد أنشطته لتطابق packageName لتطبيق مستهدف. ويمكن بعد ذلك إقران ذلك باستيلاء على النية لكي يتم أيضًا إطلاق التطبيق الضار وعرضه فوق التطبيق المستهدَف في المرة التالية التي يطلق فيها المستخدم التطبيق المستهدَف.

ويمكن بعد ذلك استخدام ثغرة Task Affinity للاستيلاء على إجراءات المستخدمين المشروعة.

يمكن خداع المستخدم لتقديم بيانات الاعتماد لتطبيق ضار. بعد بدء نشاط وربطه بمهمة، يبقى هذا الربط ساريًا تلقائيًا طوال دورة حياة النشاط. ومع ذلك، يؤدي ضبط ‎"allowTaskReparenting" على "صحيح" إلى إزالة هذا القيد، ما يسمح بإعادة ربط ‎"نشاط" حالي بنشاط "أصلي" تم إنشاؤه حديثًا.

على سبيل المثال، يمكن أن يستهدف التطبيق "ب" التطبيق "أ"، ما يؤدي إلى إعادة توجيه أنشطة التطبيق "أ" إلى ملف أنشطة التطبيق "ب" عند العودة من النشاط المكتمل للتطبيق "أ". إنّ عملية التنقّل هذه من تطبيق إلى آخر مخفية عن المستخدم وتشكّل تهديدًا كبيرًا من التصيّد الاحتيالي.

إجراءات التخفيف

تعديل إلى android:minSdkVersion="30"

تم إصلاح ثغرة StrandHogg attack / Task affinity vulnerability في الأساس في آذار (مارس) 2019 باستخدام إصدار أحدث وأكثر شمولاً تم إصلاحه في أيلول (سبتمبر) 2020. تحتوي إصدارات حزمة تطوير البرامج (SDK) لنظام التشغيل Android 30 والإصدارات الأحدث (Android 11) على تصحيحات نظام التشغيل المناسبة لتجنُّب هذه الثغرة الأمنية. على الرغم من أنّه من الممكن التخفيف من هجمات برمجية StrandHogg نوع 1 جزئيًا من خلال ضبط الإعدادات الفردية للتطبيق، إلا أنّه لا يمكن منع هجمات نوع 2 إلا من خلال تصحيح إصدار حزمة تطوير البرامج (SDK) هذا.

المراجع