محیط را ایمن کنید

Google مجموعه‌ای از APIها و سرویس‌ها را ارائه می‌کند تا به شما کمک کند تشخیص دهید که آیا برنامه شما در یک محیط امن و قابل اعتماد اجرا می‌شود یا خیر. محور اصلی Play Integrity API است که به بررسی واقعی بودن تعاملات با شناسایی تعاملات بالقوه مخاطره آمیز و متقلبانه کمک می کند. علاوه بر یکپارچگی برنامه و دستگاه، Play Integrity API اکنون اطلاعاتی درباره خطرات دسترسی و دسترسی ، Google Play Protect و فعالیت اخیر دستگاه ارائه می‌دهد. برای تقویت بیشتر استراتژی ضد کلاهبرداری خود، پلتفرم Android APIهایی را برای سناریوهای خاصی که ممکن است مربوط به برنامه شما باشد ارائه می دهد.

Play Integrity API

ویژگی های Play Integrity API

Play Integrity API به شما امکان می‌دهد از وضعیت امنیتی دستگاهی که برنامه آن‌ها روی آن اجرا می‌شود، مطلع شوید. این به شما کمک می کند مطمئن شوید که کاربر مناسب به اطلاعات حساس دسترسی دارد.

این به شما کمک می کند بررسی کنید که تعاملات و درخواست های سرور از باینری برنامه اصلی شما در یک محیط قابل اعتماد می آیند:

  • باینری برنامه واقعی : تعیین کنید که آیا با باینری اصلاح نشده خود که Google Play تشخیص می دهد در حال تعامل هستید یا خیر.
  • نصب واقعی Play : تعیین کنید که آیا حساب کاربری فعلی دارای مجوز است یا خیر، به این معنی که کاربر برنامه یا بازی شما را در Google Play نصب کرده یا برای آن پرداخت کرده است.
  • دستگاه Android اصلی : تعیین کنید که آیا برنامه شما بر روی یک دستگاه واقعی مجهز به Android که توسط سرویس‌های Google Play ارائه می‌شود اجرا می‌شود یا خیر.
  • بدون بدافزار شناخته شده : تعیین کنید که Google Play Protect روشن است یا خیر و آیا برنامه‌های خطرناک یا خطرناکی را روی دستگاه نصب کرده است.
  • خطر کم دسترسی سایر برنامه‌ها : تعیین کنید که آیا برنامه‌های دیگری در حال اجرا هستند که می‌توانند صفحه را ضبط کنند یا دستگاه و ورودی‌های برنامه شما را کنترل کنند.

چگونه این به کاهش تقلب کمک می کند

هنگامی که یک کاربر یک عمل مهم را در برنامه شما انجام می دهد، می توانید با 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: {} خطر دسترسی به برنامه ارزیابی نمی شود زیرا یک نیاز ضروری از قلم افتاده است. به عنوان مثال، دستگاه به اندازه کافی قابل اعتماد نبود.

Play Protect Signal

سیگنال Play Protect به برنامه شما می‌گوید که آیا Play Protect روشن است و آیا برنامه‌های مضر شناخته‌شده‌ای را روی دستگاه نصب کرده است یا خیر.

environmentDetails:{
  playProtectVerdict: "NO_ISSUES"
}

اگر بدافزار نگرانی خاصی برای برنامه یا داده‌های کاربران شما است، می‌توانید این حکم را بررسی کنید و از کاربران خود بخواهید قبل از ادامه، Play Protect را روشن کنند یا برنامه‌های مضر را حذف کنند.

گفتگوی Play Protect را روشن کنید

playProtectVerdict می تواند یکی از مقادیر زیر را داشته باشد:

حکم توضیح اقدام توصیه شده

NO_ISSUES

Play Protect روشن است و هیچ مشکلی در برنامه در دستگاه پیدا نکرد.

Play Protect روشن است و هیچ مشکلی پیدا نکرده است، بنابراین نیازی به اقدام کاربر نیست.

NO_DATA

Play Protect روشن است اما هنوز هیچ اسکنی انجام نشده است. ممکن است دستگاه یا برنامه Play Store اخیراً بازنشانی شده باشد.

Play Protect روشن است و هیچ مشکلی پیدا نکرده است، بنابراین نیازی به اقدام کاربر نیست.

POSSIBLE_RISK

Play Protect خاموش است.

Play Protect روشن است و هیچ مشکلی پیدا نکرده است، بنابراین نیازی به اقدام کاربر نیست.

MEDIUM_RISK

Play Protect روشن است و برنامه‌های بالقوه مضر را روی دستگاه نصب کرده است.

بسته به میزان تحمل ریسک، می‌توانید از کاربر بخواهید که Play Protect را راه‌اندازی کند و نسبت به هشدارهای Play Protect اقدام کند. اگر کاربر نمی تواند این الزامات را برآورده کند، می توانید آنها را از عملکرد سرور مسدود کنید.

HIGH_RISK

Play Protect روشن است و برنامه‌های خطرناکی را روی دستگاه نصب کرده است.

بسته به میزان تحمل ریسک، می‌توانید از کاربر بخواهید که Play Protect را راه‌اندازی کند و نسبت به هشدارهای Play Protect اقدام کند. اگر کاربر نمی تواند این الزامات را برآورده کند، می توانید آنها را از عملکرد سرور مسدود کنید.

UNEVALUATED

حکم Play Protect ارزیابی نشد.

این ممکن است به دلایل مختلفی رخ دهد، از جمله موارد زیر:

  • دستگاه به اندازه کافی قابل اعتماد نیست.
  • فقط بازی ها: حساب کاربری دارای مجوز نیست.

فعالیت اخیر دستگاه

همچنین می‌توانید فعالیت‌های اخیر دستگاه را انتخاب کنید، که به شما می‌گوید چند بار برنامه‌تان در یک ساعت گذشته، یک کد یکپارچگی را در یک دستگاه خاص درخواست کرده است. می‌توانید از فعالیت‌های اخیر دستگاه برای محافظت از برنامه‌تان در برابر دستگاه‌های غیرمنتظره و بیش فعالی که می‌تواند نشانه‌ای از یک حمله فعال باشد، استفاده کنید. بر اساس اینکه انتظار دارید هر ساعت چند بار برنامه نصب شده روی یک دستگاه معمولی درخواست یک توکن یکپارچگی کند، می‌توانید تصمیم بگیرید که چقدر به هر سطح فعالیت اخیر دستگاه اعتماد کنید.

اگر دریافت recentDeviceActivity را انتخاب کنید، قسمت deviceIntegrity دو مقدار خواهد داشت:

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

ابتدا باید داده ها را بررسی کنید تا ببینید که سطح فعالیت معمول دستگاه برای برنامه شما در همه دستگاه های شما چقدر است. سپس، می‌توانید تصمیم بگیرید که وقتی دستگاهی درخواست‌های زیادی می‌کند، برنامه شما چگونه پاسخ دهد. اگر فعالیت کمی زیاد است، ممکن است بخواهید از کاربر بخواهید بعداً دوباره امتحان کند. اگر فعالیت بسیار زیاد است، ممکن است بخواهید اقدامات اجرایی قوی تری انجام دهید.

استاندارد در مقابل درخواست های کلاسیک

به عنوان بخشی از اجرای Play Integrity، مهم است که دو نوع درخواست را در نظر بگیرید. برای ارائه سریع‌ترین پاسخ، در بیشتر موارد باید از درخواست‌های استاندارد استفاده کنید - و درخواست‌های کلاسیک باید در مواردی که درخواست جدید ایجاد شده در برابر رکورد گواهی دستگاه مورد نیاز است استفاده شود.

درخواست کلاسیک

درخواست استاندارد

درخواست‌ها بیشتر طول می‌کشد و باید کمتر ارسال شوند.

به عنوان مثال به عنوان یک بار گاه به گاه برای بررسی اینکه آیا یک اقدام بسیار ارزشمند یا حساس واقعی است یا خیر.

به ندرت استفاده کنید .

درخواست ها تأخیر کمی دارند و در صورت تقاضا می توان از آنها استفاده کرد.

یک درخواست استاندارد از دو بخش تشکیل شده است:

  • ارائه دهنده توکن یکپارچگی را آماده کنید (یکبار)
  • درخواست توکن یکپارچگی (در صورت تقاضا)

در صورت تقاضا استفاده کنید .

برای اطلاعات بیشتر در مورد درخواست‌های استاندارد و کلاسیک ، مستندات Play Integrity را بخوانید.

پیاده سازی

برای شروع با Play Integrity API:

به طور پیش‌فرض، Play Integrity API اجازه می‌دهد تا 10 هزار درخواست در هر برنامه در روز انجام شود. برای ابراز علاقه به افزایش حداکثر درخواست های روزانه خود، این دستورالعمل ها را دنبال کنید . برای واجد شرایط بودن برای افزایش حداکثر تعداد درخواست‌های روزانه، برنامه شما باید Play Integrity API را به درستی پیاده‌سازی کند و علاوه بر سایر کانال‌های توزیع، در Google Play نیز در دسترس باشد.

مواردی که باید برای Play Integrity API در نظر داشته باشید

حفاظت از یکپارچگی خودکار (API >= 23)

حفاظت از یکپارچگی خودکار یک سرویس حفاظت از کد ضد دستکاری است که از برنامه شما در برابر سوء استفاده از یکپارچگی به شکل تغییر و توزیع مجدد غیرمجاز محافظت می کند. بدون اتصال داده کار می کند و نیازی به کار توسعه دهنده قبل از آزمایش و ادغام سرور باطن ندارد.

چگونه این به کاهش تقلب کمک می کند

وقتی محافظت خودکار از یکپارچگی را روشن می‌کنید، Google Play چک‌هایی را به کد برنامه‌تان اضافه می‌کند و با تکنیک‌های مبهم‌سازی پیشرفته و ضد مهندسی معکوس حذف آن‌ها را سخت می‌کند. در زمان اجرا، حفاظت بررسی می‌کند که آیا برنامه شما دستکاری شده یا دوباره توزیع شده است:

  • اگر بررسی نصب کننده ناموفق باشد، از کاربران خواسته می شود تا برنامه شما را در Google Play دریافت کنند
  • اگر بررسی اصلاح ناموفق باشد، برنامه اجرا نمی‌شود

این کمک می کند تا کاربران از نسخه های اصلاح شده برنامه شما در امان باشند.

پیاده سازی

حفاظت از یکپارچگی خودکار در حال حاضر فقط برای انتخاب شرکای Play در دسترس است. اگر این ویژگی در کنسول Google Play شما موجود نیست و می‌خواهید برای دسترسی به آن ابراز علاقه کنید، با پشتیبانی برنامه‌نویس Google Play تماس بگیرید.

می‌توانید هنگام ایجاد نسخه یا در صفحه یکپارچگی برنامه (انتشار > یکپارچگی برنامه) محافظت را روشن کنید. حفاظت از یکپارچگی خودکار به برنامه شما نیاز دارد که از Play App Signing استفاده کند.

حتماً قبل از تبلیغ نسخه برای تولید، برنامه محافظت شده خود را آزمایش کنید .

چیزهایی که باید در نظر داشت

  • نسخه های برنامه محافظت نشده را منتشر نکنید
  • هنگام مخلوط کردن محلول های حفاظتی ضد دستکاری مراقب باشید
  • برنامه محافظت شده خود را قبل از انتشار آن برای تولید آزمایش کنید
  • برای هر گونه افزایش خرابی، آمار را به طور عادی رصد کنید
  • می توانید نسخه های کرک شده برنامه خود را به Google Play گزارش دهید