الحفاظ على البيئة

توفّر Google مجموعة من واجهات برمجة التطبيقات والخدمات لمساعدتك في رصد ما إذا كان تطبيقك يعمل في بيئة آمنة وموثوق بها. وتُعدّ واجهة برمجة التطبيقات Play Integrity API هي الأهم، فهي تساعد في التحقّق من أنّ التفاعلات حقيقية من خلال رصد التفاعلات التي قد تكون خطيرة أو احتيالية. بالإضافة إلى سلامة التطبيق والجهاز، توفّر واجهة برمجة التطبيقات Play Integrity API الآن معلومات حول مخاطر الوصول وإمكانية الوصول، خدمة "Google Play للحماية"، وأحدث نشاط للجهاز. لتعزيز استراتيجيتك لمكافحة الممارسات الاحتيالية، يوفّر نظام Android الأساسي واجهات برمجة تطبيقات لسيناريوهات محدّدة قد تكون ذات صلة بتطبيقك.

Play Integrity API

ميزات Play Integrity API

تتيح لك واجهة برمجة التطبيقات Play Integrity API التعرّف على الحالة الأمنية للجهاز الذي يتم تشغيل تطبيقك عليه. ويساعدك ذلك في التأكّد من أنّ المستخدم المناسب هو من يصل إلى المعلومات الحسّاسة.

تساعدك هذه الواجهة في التحقّق من أنّ التفاعلات وطلبات الخادم صادرة من البرنامج الثنائي الحقيقي لتطبيقك في بيئة موثوق بها:

  • البرنامج الثنائي الحقيقي للتطبيق: يمكنك تحديد ما إذا كنت تتفاعل مع برنامجك الثنائي غير المعدّل الذي يتعرّف عليه Google Play.
  • التثبيت الحقيقي من Play: يمكنك تحديد ما إذا كان حساب المستخدم الحالي مرخَّصًا ، وهذا يعني أنّ المستخدِم ثبَّت تطبيقك أو لعبتك أو دفع الرسوم المستحقّة لهما على Google Play.
  • جهاز Android حقيقي: يمكنك تحديد ما إذا كان تطبيقك يعمل على جهاز Android حقيقي متوافق مع "خدمات Google Play".
  • إزالة أي برامج ضارة معروفة: يمكنك تحديد ما إذا كانت خدمة "Google Play للحماية" مفعَّلة واكتشفت تطبيقات خطيرة أو ضارة تم تثبيتها على الجهاز.
  • احتمالية منخفضة للوصول من خلال تطبيقات أخرى: يمكنك تحديد ما إذا كانت هناك تطبيقات أخرى قيد التشغيل يمكنها التقاط الشاشة أو التحكّم في الجهاز والمدخلات في تطبيقك.

كيف تساعد هذه الواجهة في الحدّ من الاحتيال؟

عندما ينفِّذ المستخدم إجراءً مهمًا في تطبيقك، يمكنك طلب بيانات من واجهة برمجة التطبيقات Play Integrity API. إذا لم يتم ذلك، يمكن لخادم الخلفية في تطبيقك أن يقرّر ما يجب فعله للحماية من الهجمات والاحتيال. على سبيل المثال، يمكنك طلب إجراء عملية تحقّق إضافية من هوية المستخدم أو منع الوصول إلى وظائف حسّاسة.

مسار اتخاذ القرار في Play Integrity API

احتمالية اختراق التطبيق

تم تقديم إشارة احتمالية اختراق التطبيق لمساعدتك في تقييم ما إذا كان بإمكان تطبيقات أخرى على الجهاز عرض الشاشة وأخذ لقطات لها عندما يكون تطبيقك قيد التشغيل أو الوصول إلى تطبيقك باستخدام أذونات تسهيل الاستخدام. يتم تلقائيًا استبعاد تطبيقات تسهيل الاستخدام التي تم التحقّق منها من هذه النتائج. تساعد ميزة "خطر الوصول إلى التطبيق" المطوّرين في حماية تطبيقاتهم مع الحفاظ على خصوصية المستخدمين لأنّ التطبيق الذي يطلب البيانات لا يحصل على هوية التطبيقات المثبَّتة ولا يتم ربط النتيجة بمعرّفات المستخدم أو الجهاز.

لقطة شاشة لهاتف يطلب من المستخدم إغلاق تطبيقات معيّنة

بفضل هذا الجهد التعاوني، يمكننا الحصول على الإشارات اللازمة التي تمنحنا إحصاءات أعمق لحماية عملائنا بشكل أكثر فعالية.
‫—Nubank، شريك استخدام المنتج قبل إطلاقه

تتضمّن ميزة "احتمالية اختراق التطبيق" مستويات مختلفة من المخاطر:

  • يعني الردّ "أخذ لقطات للشاشة" أنّ هناك تطبيقات أخرى قيد التشغيل يمكنها أخذ لقطات للشاشة.
  • يعني الردّ "التحكّم" أنّ هناك تطبيقات أخرى قيد التشغيل يمكنها التحكّم في الجهاز، وبالتالي يمكنها أخذ لقطات للشاشة والتحكّم في المدخلات في تطبيقك.

فرض احتمالية اختراق التطبيق

حدِّد الإجراءات الحسّاسة أو ذات القيمة العالية في تطبيقك أو لعبتك لحمايتها باستخدام واجهة برمجة التطبيقات Play Integrity API بدلاً من منع الوصول إليها تمامًا. عند الإمكان، اطلب من المستخدمين إثبات أنّهم ليسوا روبوتات قبل السماح لهم بتنفيذ الإجراءات ذات القيمة العالية. على سبيل المثال، عندما تشير احتمالية اختراق التطبيق إلى أنّ هناك تطبيقًا قيد التشغيل يمكنه أخذ لقطات للشاشة، اطلب من المستخدم إيقاف التطبيقات التي يمكنها أخذ لقطات للشاشة أو إزالتها قبل السماح له بالانتقال إلى الوظائف التي تريد حمايتها.

يحتوي هذا الجدول على بعض النتائج النموذجية:

مثال على ردّ نتيجة "احتمالية اختراق التطبيق" التفسير
appsDetected:
["KNOWN_INSTALLED"]
لا توجد سوى تطبيقات مثبَّتة يتعرّف عليها Google Play أو تم تحميلها مسبقًا على قسم النظام من قِبل الشركة المصنّعة للجهاز. لا توجد تطبيقات قيد التشغيل من شأنها أن تؤدي إلى النتائج "أخذ لقطات للشاشة" أو "التحكّم" أو "عرض محتوى على السطح".
appsDetected:
["KNOWN_INSTALLED",
"UNKNOWN_INSTALLED",
"UNKNOWN_CAPTURING"]
هناك تطبيقات مثبَّتة من Google Play أو تم تحميلها مسبقًا على الـ قسم النظام من قِبل الشركة المصنّعة للجهاز. هناك تطبيقات أخرى قيد التشغيل وتم تفعيل الأذونات التي يمكن استخدامها لعرض الشاشة أو أخذ لقطات للمدخلات والمخرجات الأخرى.
appsDetected:
["KNOWN_INSTALLED",
"KNOWN_CAPTURING",
"UNKNOWN_INSTALLED",
"UNKNOWN_CONTROLLING"]
هناك تطبيقات Play أو تطبيقات نظام قيد التشغيل تم تفعيل الأذونات التي يمكن استخدامها لعرض الشاشة أو أخذ لقطات للمدخلات والمخرجات الأخرى. هناك أيضًا تطبيقات أخرى قيد التشغيل تم تفعيل الأذونات التي يمكن استخدامها للتحكّم في الجهاز والتحكّم مباشرةً في المدخلات في تطبيقك.
appAccessRiskVerdict: {} لم يتم تقييم احتمالية اختراق التطبيق بسبب عدم استيفاء أحد المتطلّبات الضرورية. على سبيل المثال، لم يكن الجهاز موثوقًا بالقدر الكافي.

إشارة "Google Play للحماية"

توضّح إشارة "Google Play للحماية" لتطبيقك ما إذا كانت خدمة "Google Play للحماية" مفعَّلة وما إذا كانت قد رصدت تطبيقات ضارة معروفة تم تثبيتها على الجهاز.

environmentDetails:{
  playProtectVerdict: "NO_ISSUES"
}

إذا كانت البرامج الضارة مصدر قلق خاص لتطبيقك أو بيانات المستخدمين، يمكنك التحقّق من هذه النتيجة وطلب تفعيل خدمة "Google Play للحماية" أو إزالة التطبيقات الضارة قبل المتابعة.

مربّع حوار تفعيل "Play للحماية"

يمكن أن تتضمّن playProtectVerdict إحدى القيم التالية:

النتيجة الشرح الإجراء المقترَح

NO_ISSUES

خدمة "Google Play للحماية" مفعَّلة ولم ترصد أي مشاكل في التطبيق على الـ جهاز.

خدمة "Google Play للحماية" مفعَّلة ولم ترصد أي مشاكل، لذا لا يلزم اتّخاذ أي إجراء من جانب المستخدم.

NO_DATA

خدمة "Google Play للحماية" مفعَّلة ولكن لم يتم إجراء أي فحص بعد. ربما تم مؤخرًا إعادة ضبط الجهاز أو تطبيق "متجر Play".

خدمة "Google Play للحماية" مفعَّلة ولم ترصد أي مشاكل، لذا لا يلزم اتّخاذ أي إجراء من جانب المستخدم.

POSSIBLE_RISK

خدمة "Google Play للحماية" غير مفعَّلة.

خدمة "Google Play للحماية" مفعَّلة ولم ترصد أي مشاكل، لذا لا يلزم اتّخاذ أي إجراء من جانب المستخدم.

MEDIUM_RISK

خدمة "Google Play للحماية" مفعَّلة ورصدت تطبيقات قد تكون ضارة تم تثبيتها على الجهاز.

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

HIGH_RISK

خدمة "Google Play للحماية" مفعَّلة ورصدت تطبيقات خطيرة تم تثبيتها على الجهاز.

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

UNEVALUATED

لم يتم تقييم نتيجة "Google Play للحماية".

قد يحدث ذلك لعدة أسباب، بما في ذلك ما يلي:

  • الجهاز غير موثوق بالقدر الكافي
  • الألعاب فقط: حساب المستخدم غير مرخَّص.

أحدث نشاط للجهاز

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

إذا وافقت على تلقّي recentDeviceActivity، سيتضمّن حقل deviceIntegrity قيمتَين:

deviceIntegrity: {
  deviceRecognitionVerdict: ["MEETS_DEVICE_INTEGRITY"]
  recentDeviceActivity: {
    // "LEVEL_2" is one of several possible values.
    deviceActivityLevel: "LEVEL_2"
  }
}

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

الطلبات العادية مقابل الطلبات الكلاسيكية

كجزء من عملية تنفيذ واجهة برمجة التطبيقات Play Integrity API، من المهم مراعاة نوعَي الطلبات. عليك استخدام الطلبات العادية في معظم الحالات للحصول على أسرع استجابة، ويجب استخدام الطلبات الكلاسيكية عندما يكون هناك حاجة إلى طلب تم إنشاؤه حديثًا مقابل سجلّ إثبات صحة الجهاز.

طلب كلاسيكي

طلب عادي

تستغرق الطلبات وقتًا أطول ويجب إرسالها بشكل أقل تكرارًا.

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

يُرجى عدم استخدام هذا النوع من الطلبات إلا نادرًا.

تتميّز الطلبات بسرعة الاستجابة ويمكن استخدامها عند الطلب.

يتألف الطلب العادي من جزأين:

  • إعداد موفّر الرموز المميّزة للسلامة (مرة واحدة)
  • طلب رمز مميّز للسلامة (عند الطلب)

يُرجى استخدام هذا النوع من الطلبات عند الطلب.

يمكنك قراءة مستندات Play Integrity API لمزيد من المعلومات حول الطلبات العادية و الكلاسيكية.

التنفيذ

لبدء استخدام واجهة برمجة التطبيقات Play Integrity API:

تسمح واجهة برمجة التطبيقات Play Integrity API تلقائيًا بما يصل إلى 10 آلاف طلب لكل تطبيق في اليوم. لإبداء اهتمامك بزيادة الحد الأقصى للطلبات اليومية، اتّبِع هذه التعليمات. لكي تكون مؤهلاً لزيادة الحد الأقصى لعدد الطلبات اليومية، يجب أن ينفِّذ تطبيقك واجهة برمجة التطبيقات Play Integrity API بشكل صحيح وأن يكون متاحًا على Google Play بالإضافة إلى أي قنوات توزيع أخرى.

نقاط يجب أخذها في الاعتبار بشأن واجهة برمجة التطبيقات Play Integrity API

توفير السلامة تلقائيًا (مستوى واجهة برمجة التطبيقات >= 23)

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

كيف تساعد هذه الميزة في الحدّ من الاحتيال؟

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

  • إذا تعذَّر التحقّق من أداة التثبيت، فسيُطلب من المستخدمين تثبيت تطبيقك من Google Play.
  • إذا تعذَّر فحص التعديل، فلن يتم تشغيل التطبيق.

يساعد ذلك في حماية المستخدمين من الإصدارات المعدَّلة من تطبيقك.

التنفيذ

في الوقت الحالي، لا تتوفّر ميزة "توفير السلامة تلقائيًا" إلا لمجموعة محدَّدة من شركاء Play. يُرجى التواصل مع فريق دعم المطوّرين في Google Play إذا لم تكن الميزة متاحة في Google Play Console وأردت إبداء اهتمامك بالحصول على إمكانية الوصول إليها.

يمكنك تفعيل ميزة الحماية عند إنشاء إصدار أو من خلال الانتقال إلى صفحة " محمي من خلال Google Play". تتطلّب ميزة "توفير السلامة تلقائيًا" أن يستخدم تطبيقك ميزة "توقيع التطبيق" من Play.

احرص على اختبار تطبيقك المحمي قبل ترقية الإصدار إلى الإصدار العلني.

نقاط يجب أخذها في الاعتبار

  • عدم طرح إصدارات غير محمية من التطبيقات
  • يُرجى توخّي الحذر عند الجمع بين حلول الحماية من التلاعب.
  • اختبار تطبيقك المحمي قبل إصداره للإصدار العلني
  • تتبُّع الإحصاءات كالمعتاد لرصد أي زيادة في الأعطال
  • يمكنك الإبلاغ عن الإصدارات المعدَّلة من تطبيقك إلى Google Play.