إصلاح ثغرة أمنية لاختراق نظام Intent

هذه المعلومات موجَّهة لمطوّري البرامج الذين لديهم تطبيقات تشتمل على ثغرة أمنية لاختراق نظام Intent.

تحليل المشكلة

يحتوي تطبيق أو أكثر من تطبيقاتك على ثغرة أمنية لاختراق نظام Intent والتي من شأنها أن تؤدي للسماح للشبكات والمواقع الإلكترونية الضارّة بالوصول إلى مكوّنات التطبيقات الخاصة.يُرجى الرجوع إلى الإشعار في حسابك على Play Consoleوبعد مرور المواعيد النهائية الموضّحة في حسابك على Play Console، قد يتم حذف أيّ تطبيقات تحتوي على ثغرات أمنية لم يتم إصلاحها من Google Play.

الإجراء المطلوب

  1. سجِّل الدخول إلى حسابك على Play Console، وانتقِل إلى قسم "التنبيهات" لمعرفة التطبيقات المتأثرة بالثغرة الأمنية والمواعيد النهائية لحلّ هذه المشاكل.

  2. حدّث تطبيقاتك المتأثرة باتّباع الخطوات الموضّحة أدناه.

  3. أرسِل النسخ المُحدّثة من تطبيقاتك المتأثرة.

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

تفاصيل إضافية

تتعرَّض نوافذ WebView لثغرات أمنية لاختراق نظام Intent، وذلك عندما تعرض محتوى ويب غير موثوق به وتحلّل روابط intent://‎ باستخدام Intent.parseUri وترسِل ملفات Intent باستخدام startActivity. ويمكن التحايُل على نوافذ WebView من خلال محتوى ويب ضار لجعلها ترسل ملفات Intent عشوائية إلى مكوّنات التطبيقات الخاصة. وذلك قد يعرّض التطبيق لمخاطر مثل سرقة بيانات التطبيق الخاصة التي تُعالجها هذه المكوّنات. يُرجى ملاحظة أن محتوى الويب غير الموثوق به يتضمّن محتوى من نطاقات موثوق بها تم تحميلها على HTTP.

ننصحك بمنع ظهور هذه الثغرة الأمنية من خلال اتّباع إحدى الطرق الآتية:

الخيار 1: التأكد من أن نوافذ WebView لا يُمكنها إرسال ملفات Intent عشوائية

يُمكن للتطبيقات تقييد ملفات Intent التي تم إنشاؤها باستخدام Intent.parseUri ليتم إرسالها فقط في شكل ملفات Intent ضمنية إلى مكوّنات تحتوي على فلاتر intent ‏BROWSABLE باستخدام الرمز التالي:

     ‎// convert Intent scheme URL to Intent object
  Intent intent = Intent.parseUri(url);‎
  ‎// forbid launching activities without BROWSABLE category
  intent.addCategory("android.intent.category.‎BROWSABLE");‎
  ‎// forbid explicit call
  intent.setComponent(null);‎
  ‎// forbid Intent with selector Intent
  intent.setSelector(null);‎
  ‎// start the activity by the Intent
  view.getContext().startActivity(intent, -1);‎

الخيار 2: التأكّد أن نوافذ WebView لا تحمِّل محتوى ويب غير موثوق به

إذا كانت نافذة WebView تحتاج إلى تحليل عناوين URL عشوائية لنظام intent://‎، يرجى التأكد أنها لا تحمّل محتوى ويب غير موثوق به. ويُعد محتوى الويب الذي تم تحميله من خلال اتصال غير مشفّر أحد أشكال محتوى الويب غير الموثوق به. ويمكن لمطوّري البرامج ضبط قيمة android:usesCleartextTraffic على خطأ في Manifest أو ضبط إعداد أمان الشبكة الذي يمنع زيارات HTTP. وبدلاً من ذلك، يمكنهم التأكّد أن أيّ نافذة من نوافذ WebView المتأثرة بالمشكلة لا تحمِّل أي عناوين URL تضم مخططات HTTP بها loadUrl.

ننصح مطوّري البرامج بالتأكّد أن نوافذ WebView المتأثرة بالمشكلة لا تحمِّل عناوين URL غير مقيّدة تمّ الحصول عليها من مصادر غير موثوق بها (مثل عناوين URL التي تم الحصول عليها من ملفات Intent غير موثوق بها). 

تسرّنا مساعدتك
إذا كان لديك أسئلة فنية بشأن الثغرات، يمكنك طرحها على موقع Stack Overflow واستخدام العلامة "android-security". لمزيد من التوضيح بشأن الخطوات المطلوبة لحلّ هذه المشكلة، يمكنك التواصل مع فريق دعم مطوّري البرامج.

هل كان ذلك مفيدًا؟

كيف يمكننا تحسينها؟
false
القائمة الرئيسية
16366791920751760510
true
مركز مساعدة البحث
true
true
true
true
true
5016068
false
false