Google مجموعهای از APIها و سرویسها را ارائه میکند تا به شما کمک کند تشخیص دهید که آیا برنامه شما در یک محیط امن و قابل اعتماد اجرا میشود یا خیر. محور اصلی Play Integrity API است که به بررسی واقعی بودن تعاملات با شناسایی تعاملات بالقوه مخاطره آمیز و متقلبانه کمک می کند. علاوه بر یکپارچگی برنامه و دستگاه، Play Integrity API اکنون اطلاعاتی درباره خطرات دسترسی و دسترسی ، Google Play Protect و فعالیت اخیر دستگاه ارائه میدهد. برای تقویت بیشتر استراتژی ضد کلاهبرداری خود، پلتفرم Android APIهایی را برای سناریوهای خاصی که ممکن است مربوط به برنامه شما باشد ارائه می دهد.
Play Integrity API
Play Integrity API به شما امکان میدهد از وضعیت امنیتی دستگاهی که برنامه آنها روی آن اجرا میشود، مطلع شوید. این به شما کمک می کند مطمئن شوید که کاربر مناسب به اطلاعات حساس دسترسی دارد.
این به شما کمک می کند بررسی کنید که تعاملات و درخواست های سرور از باینری برنامه اصلی شما در یک محیط قابل اعتماد می آیند:
- باینری برنامه واقعی : تعیین کنید که آیا با باینری اصلاح نشده خود که Google Play تشخیص می دهد در حال تعامل هستید یا خیر.
- نصب واقعی Play : تعیین کنید که آیا حساب کاربری فعلی دارای مجوز است یا خیر، به این معنی که کاربر برنامه یا بازی شما را در Google Play نصب کرده یا برای آن پرداخت کرده است.
- دستگاه Android اصلی : تعیین کنید که آیا برنامه شما بر روی یک دستگاه واقعی مجهز به Android که توسط سرویسهای Google Play ارائه میشود اجرا میشود یا خیر.
- بدون بدافزار شناخته شده : تعیین کنید که Google Play Protect روشن است یا خیر و آیا برنامههای خطرناک یا خطرناکی را روی دستگاه نصب کرده است.
- خطر کم دسترسی سایر برنامهها : تعیین کنید که آیا برنامههای دیگری در حال اجرا هستند که میتوانند صفحه را ضبط کنند یا دستگاه و ورودیهای برنامه شما را کنترل کنند.
چگونه این به کاهش تقلب کمک می کند
هنگامی که یک کاربر یک عمل مهم را در برنامه شما انجام می دهد، می توانید با 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 را روشن کنند یا برنامههای مضر را حذف کنند.
playProtectVerdict
می تواند یکی از مقادیر زیر را داشته باشد:
حکم | توضیح | اقدام توصیه شده |
---|---|---|
| Play Protect روشن است و هیچ مشکلی در برنامه در دستگاه پیدا نکرد. | Play Protect روشن است و هیچ مشکلی پیدا نکرده است، بنابراین نیازی به اقدام کاربر نیست. |
| Play Protect روشن است اما هنوز هیچ اسکنی انجام نشده است. ممکن است دستگاه یا برنامه Play Store اخیراً بازنشانی شده باشد. | Play Protect روشن است و هیچ مشکلی پیدا نکرده است، بنابراین نیازی به اقدام کاربر نیست. |
| Play Protect خاموش است. | Play Protect روشن است و هیچ مشکلی پیدا نکرده است، بنابراین نیازی به اقدام کاربر نیست. |
| Play Protect روشن است و برنامههای بالقوه مضر را روی دستگاه نصب کرده است. | بسته به میزان تحمل ریسک، میتوانید از کاربر بخواهید که Play Protect را راهاندازی کند و نسبت به هشدارهای Play Protect اقدام کند. اگر کاربر نمی تواند این الزامات را برآورده کند، می توانید آنها را از عملکرد سرور مسدود کنید. |
| Play Protect روشن است و برنامههای خطرناکی را روی دستگاه نصب کرده است. | بسته به میزان تحمل ریسک، میتوانید از کاربر بخواهید که Play Protect را راهاندازی کند و نسبت به هشدارهای Play Protect اقدام کند. اگر کاربر نمی تواند این الزامات را برآورده کند، می توانید آنها را از عملکرد سرور مسدود کنید. |
| حکم 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 را در کنسول Google Play خود فعال کنید و به پروژه Google Cloud پیوند دهید.
- Play Integrity API را در برنامه خود ادغام کنید .
- تصمیم بگیرید که چگونه با احکام برخورد کنید .
به طور پیشفرض، Play Integrity API اجازه میدهد تا 10 هزار درخواست در هر برنامه در روز انجام شود. برای ابراز علاقه به افزایش حداکثر درخواست های روزانه خود، این دستورالعمل ها را دنبال کنید . برای واجد شرایط بودن برای افزایش حداکثر تعداد درخواستهای روزانه، برنامه شما باید Play Integrity API را به درستی پیادهسازی کند و علاوه بر سایر کانالهای توزیع، در Google Play نیز در دسترس باشد.
مواردی که باید برای Play Integrity API در نظر داشته باشید
- ضروری است که خطاهای موجود در پاسخ های Play Integrity APIs را به طور مناسب مدیریت کنید. راهنمای اینجا را در مورد راهبردهای تلاش مجدد و اجرای بر اساس کدهای خطا دنبال کنید.
- Play Integrity API ابزارهای آزمایشی را برای پاسخها ارائه میدهد.
- برای مشاهده نتیجه یکپارچگی دستگاه خود، این مراحل را دنبال کنید .
- این ملاحظات امنیتی را برای اقدامات توصیه شده با استفاده از Play Integrity API بخوانید.
حفاظت از یکپارچگی خودکار (API >= 23)
حفاظت از یکپارچگی خودکار یک سرویس حفاظت از کد ضد دستکاری است که از برنامه شما در برابر سوء استفاده از یکپارچگی به شکل تغییر و توزیع مجدد غیرمجاز محافظت می کند. بدون اتصال داده کار می کند و نیازی به کار توسعه دهنده قبل از آزمایش و ادغام سرور باطن ندارد.
چگونه این به کاهش تقلب کمک می کند
وقتی محافظت خودکار از یکپارچگی را روشن میکنید، Google Play چکهایی را به کد برنامهتان اضافه میکند و با تکنیکهای مبهمسازی پیشرفته و ضد مهندسی معکوس حذف آنها را سخت میکند. در زمان اجرا، حفاظت بررسی میکند که آیا برنامه شما دستکاری شده یا دوباره توزیع شده است:
- اگر بررسی نصب کننده ناموفق باشد، از کاربران خواسته می شود تا برنامه شما را در Google Play دریافت کنند
- اگر بررسی اصلاح ناموفق باشد، برنامه اجرا نمیشود
این کمک می کند تا کاربران از نسخه های اصلاح شده برنامه شما در امان باشند.
پیاده سازی
حفاظت از یکپارچگی خودکار در حال حاضر فقط برای انتخاب شرکای Play در دسترس است. اگر این ویژگی در کنسول Google Play شما موجود نیست و میخواهید برای دسترسی به آن ابراز علاقه کنید، با پشتیبانی برنامهنویس Google Play تماس بگیرید.
میتوانید هنگام ایجاد نسخه یا در صفحه یکپارچگی برنامه (انتشار > یکپارچگی برنامه) محافظت را روشن کنید. حفاظت از یکپارچگی خودکار به برنامه شما نیاز دارد که از Play App Signing استفاده کند.
حتماً قبل از تبلیغ نسخه برای تولید، برنامه محافظت شده خود را آزمایش کنید .
چیزهایی که باید در نظر داشت
- نسخه های برنامه محافظت نشده را منتشر نکنید
- هنگام مخلوط کردن محلول های حفاظتی ضد دستکاری مراقب باشید
- برنامه محافظت شده خود را قبل از انتشار آن برای تولید آزمایش کنید
- برای هر گونه افزایش خرابی، آمار را به طور عادی رصد کنید
- می توانید نسخه های کرک شده برنامه خود را به Google Play گزارش دهید
Google مجموعهای از APIها و سرویسها را ارائه میکند تا به شما کمک کند تشخیص دهید که آیا برنامه شما در یک محیط امن و قابل اعتماد اجرا میشود یا خیر. محور اصلی Play Integrity API است که به بررسی واقعی بودن تعاملات با شناسایی تعاملات بالقوه مخاطره آمیز و متقلبانه کمک می کند. علاوه بر یکپارچگی برنامه و دستگاه، Play Integrity API اکنون اطلاعاتی درباره خطرات دسترسی و دسترسی ، Google Play Protect و فعالیت اخیر دستگاه ارائه میدهد. برای تقویت بیشتر استراتژی ضد کلاهبرداری خود، پلتفرم Android APIهایی را برای سناریوهای خاصی که ممکن است مربوط به برنامه شما باشد ارائه می دهد.
Play Integrity API
Play Integrity API به شما امکان میدهد از وضعیت امنیتی دستگاهی که برنامه آنها روی آن اجرا میشود، مطلع شوید. این به شما کمک می کند مطمئن شوید که کاربر مناسب به اطلاعات حساس دسترسی دارد.
این به شما کمک می کند بررسی کنید که تعاملات و درخواست های سرور از باینری برنامه اصلی شما در یک محیط قابل اعتماد می آیند:
- باینری برنامه واقعی : تعیین کنید که آیا با باینری اصلاح نشده خود که Google Play تشخیص می دهد در حال تعامل هستید یا خیر.
- نصب واقعی Play : تعیین کنید که آیا حساب کاربری فعلی دارای مجوز است یا خیر، به این معنی که کاربر برنامه یا بازی شما را در Google Play نصب کرده یا برای آن پرداخت کرده است.
- دستگاه Android اصلی : تعیین کنید که آیا برنامه شما بر روی یک دستگاه واقعی مجهز به Android که توسط سرویسهای Google Play ارائه میشود اجرا میشود یا خیر.
- بدون بدافزار شناخته شده : تعیین کنید که Google Play Protect روشن است یا خیر و آیا برنامههای خطرناک یا خطرناکی را روی دستگاه نصب کرده است.
- خطر کم دسترسی سایر برنامهها : تعیین کنید که آیا برنامههای دیگری در حال اجرا هستند که میتوانند صفحه را ضبط کنند یا دستگاه و ورودیهای برنامه شما را کنترل کنند.
چگونه این به کاهش تقلب کمک می کند
هنگامی که یک کاربر یک عمل مهم را در برنامه شما انجام می دهد، می توانید با 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 را روشن کنند یا برنامههای مضر را حذف کنند.
playProtectVerdict
می تواند یکی از مقادیر زیر را داشته باشد:
حکم | توضیح | اقدام توصیه شده |
---|---|---|
| Play Protect روشن است و هیچ مشکلی در برنامه در دستگاه پیدا نکرد. | Play Protect روشن است و هیچ مشکلی پیدا نکرده است، بنابراین نیازی به اقدام کاربر نیست. |
| Play Protect روشن است اما هنوز هیچ اسکنی انجام نشده است. ممکن است دستگاه یا برنامه Play Store اخیراً بازنشانی شده باشد. | Play Protect روشن است و هیچ مشکلی پیدا نکرده است، بنابراین نیازی به اقدام کاربر نیست. |
| Play Protect خاموش است. | Play Protect روشن است و هیچ مشکلی پیدا نکرده است، بنابراین نیازی به اقدام کاربر نیست. |
| Play Protect روشن است و برنامههای بالقوه مضر را روی دستگاه نصب کرده است. | بسته به میزان تحمل ریسک، میتوانید از کاربر بخواهید که Play Protect را راهاندازی کند و نسبت به هشدارهای Play Protect اقدام کند. اگر کاربر نمی تواند این الزامات را برآورده کند، می توانید آنها را از عملکرد سرور مسدود کنید. |
| Play Protect روشن است و برنامههای خطرناکی را روی دستگاه نصب کرده است. | بسته به میزان تحمل ریسک، میتوانید از کاربر بخواهید که Play Protect را راهاندازی کند و نسبت به هشدارهای Play Protect اقدام کند. اگر کاربر نمی تواند این الزامات را برآورده کند، می توانید آنها را از عملکرد سرور مسدود کنید. |
| حکم 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 را در کنسول Google Play خود فعال کنید و به پروژه Google Cloud پیوند دهید.
- Play Integrity API را در برنامه خود ادغام کنید .
- تصمیم بگیرید که چگونه با احکام برخورد کنید .
به طور پیشفرض، Play Integrity API اجازه میدهد تا 10 هزار درخواست در هر برنامه در روز انجام شود. برای ابراز علاقه به افزایش حداکثر درخواست های روزانه خود، این دستورالعمل ها را دنبال کنید . برای واجد شرایط بودن برای افزایش حداکثر تعداد درخواستهای روزانه، برنامه شما باید Play Integrity API را به درستی پیادهسازی کند و علاوه بر سایر کانالهای توزیع، در Google Play نیز در دسترس باشد.
مواردی که باید برای Play Integrity API در نظر داشته باشید
- ضروری است که خطاهای موجود در پاسخ های Play Integrity APIs را به طور مناسب مدیریت کنید. راهنمای اینجا را در مورد راهبردهای تلاش مجدد و اجرای بر اساس کدهای خطا دنبال کنید.
- Play Integrity API ابزارهای آزمایشی را برای پاسخها ارائه میدهد.
- برای مشاهده نتیجه یکپارچگی دستگاه خود، این مراحل را دنبال کنید .
- این ملاحظات امنیتی را برای اقدامات توصیه شده با استفاده از Play Integrity API بخوانید.
حفاظت از یکپارچگی خودکار (API >= 23)
حفاظت از یکپارچگی خودکار یک سرویس حفاظت از کد ضد دستکاری است که از برنامه شما در برابر سوء استفاده از یکپارچگی به شکل تغییر و توزیع مجدد غیرمجاز محافظت می کند. بدون اتصال داده کار می کند و نیازی به کار توسعه دهنده قبل از آزمایش و ادغام سرور باطن ندارد.
چگونه این به کاهش تقلب کمک می کند
وقتی محافظت خودکار از یکپارچگی را روشن میکنید، Google Play چکهایی را به کد برنامهتان اضافه میکند و با تکنیکهای مبهمسازی پیشرفته و ضد مهندسی معکوس حذف آنها را سخت میکند. در زمان اجرا، حفاظت بررسی میکند که آیا برنامه شما دستکاری شده یا دوباره توزیع شده است:
- اگر بررسی نصب کننده ناموفق باشد، از کاربران خواسته می شود تا برنامه شما را در Google Play دریافت کنند
- اگر بررسی اصلاح ناموفق باشد، برنامه اجرا نمیشود
این کمک می کند تا کاربران از نسخه های اصلاح شده برنامه شما در امان باشند.
پیاده سازی
حفاظت از یکپارچگی خودکار در حال حاضر فقط برای انتخاب شرکای Play در دسترس است. اگر این ویژگی در کنسول Google Play شما موجود نیست و میخواهید برای دسترسی به آن ابراز علاقه کنید، با پشتیبانی برنامهنویس Google Play تماس بگیرید.
میتوانید هنگام ایجاد نسخه یا در صفحه یکپارچگی برنامه (انتشار > یکپارچگی برنامه) محافظت را روشن کنید. حفاظت از یکپارچگی خودکار به برنامه شما نیاز دارد که از Play App Signing استفاده کند.
حتماً قبل از تبلیغ نسخه برای تولید، برنامه محافظت شده خود را آزمایش کنید .
چیزهایی که باید در نظر داشت
- نسخه های برنامه محافظت نشده را منتشر نکنید
- هنگام مخلوط کردن محلول های حفاظتی ضد دستکاری مراقب باشید
- برنامه محافظت شده خود را قبل از انتشار آن برای تولید آزمایش کنید
- برای هر گونه افزایش خرابی، آمار را به طور عادی رصد کنید
- می توانید نسخه های کرک شده برنامه خود را به Google Play گزارش دهید
Google مجموعهای از APIها و سرویسها را ارائه میکند تا به شما کمک کند تشخیص دهید که آیا برنامه شما در یک محیط امن و قابل اعتماد اجرا میشود یا خیر. محور اصلی Play Integrity API است که به بررسی واقعی بودن تعاملات با شناسایی تعاملات بالقوه مخاطره آمیز و متقلبانه کمک می کند. علاوه بر یکپارچگی برنامه و دستگاه، Play Integrity API اکنون اطلاعاتی درباره خطرات دسترسی و دسترسی ، Google Play Protect و فعالیت اخیر دستگاه ارائه میدهد. برای تقویت بیشتر استراتژی ضد کلاهبرداری خود، پلتفرم Android APIهایی را برای سناریوهای خاصی که ممکن است مربوط به برنامه شما باشد ارائه می دهد.
Play Integrity API
Play Integrity API به شما امکان میدهد از وضعیت امنیتی دستگاهی که برنامه آنها روی آن اجرا میشود، مطلع شوید. این به شما کمک می کند مطمئن شوید که کاربر مناسب به اطلاعات حساس دسترسی دارد.
این به شما کمک می کند بررسی کنید که تعاملات و درخواست های سرور از باینری برنامه اصلی شما در یک محیط قابل اعتماد می آیند:
- باینری برنامه واقعی : تعیین کنید که آیا با باینری اصلاح نشده خود که Google Play تشخیص می دهد در حال تعامل هستید یا خیر.
- نصب واقعی Play : تعیین کنید که آیا حساب کاربری فعلی دارای مجوز است یا خیر، به این معنی که کاربر برنامه یا بازی شما را در Google Play نصب کرده یا برای آن پرداخت کرده است.
- دستگاه Android اصلی : تعیین کنید که آیا برنامه شما بر روی یک دستگاه واقعی مجهز به Android که توسط سرویسهای Google Play ارائه میشود اجرا میشود یا خیر.
- بدون بدافزار شناخته شده : تعیین کنید که Google Play Protect روشن است یا خیر و آیا برنامههای خطرناک یا خطرناکی را روی دستگاه نصب کرده است.
- خطر کم دسترسی سایر برنامهها : تعیین کنید که آیا برنامههای دیگری در حال اجرا هستند که میتوانند صفحه را ضبط کنند یا دستگاه و ورودیهای برنامه شما را کنترل کنند.
چگونه این به کاهش تقلب کمک می کند
هنگامی که یک کاربر یک عمل مهم را در برنامه شما انجام می دهد، می توانید با 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 را روشن کنند یا برنامههای مضر را حذف کنند.
playProtectVerdict
می تواند یکی از مقادیر زیر را داشته باشد:
حکم | توضیح | اقدام توصیه شده |
---|---|---|
| Play Protect روشن است و هیچ مشکلی در برنامه در دستگاه پیدا نکرد. | Play Protect روشن است و هیچ مشکلی پیدا نکرده است، بنابراین نیازی به اقدام کاربر نیست. |
| Play Protect روشن است اما هنوز هیچ اسکنی انجام نشده است. ممکن است دستگاه یا برنامه Play Store اخیراً بازنشانی شده باشد. | Play Protect روشن است و هیچ مشکلی پیدا نکرده است، بنابراین نیازی به اقدام کاربر نیست. |
| Play Protect خاموش است. | Play Protect روشن است و هیچ مشکلی پیدا نکرده است، بنابراین نیازی به اقدام کاربر نیست. |
| Play Protect روشن است و برنامههای بالقوه مضر را روی دستگاه نصب کرده است. | بسته به میزان تحمل ریسک، میتوانید از کاربر بخواهید که Play Protect را راهاندازی کند و نسبت به هشدارهای Play Protect اقدام کند. اگر کاربر نمی تواند این الزامات را برآورده کند، می توانید آنها را از عملکرد سرور مسدود کنید. |
| Play Protect روشن است و برنامههای خطرناکی را روی دستگاه نصب کرده است. | بسته به میزان تحمل ریسک، میتوانید از کاربر بخواهید که Play Protect را راهاندازی کند و نسبت به هشدارهای Play Protect اقدام کند. اگر کاربر نمی تواند این الزامات را برآورده کند، می توانید آنها را از عملکرد سرور مسدود کنید. |
| حکم 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 را در کنسول Google Play خود فعال کنید و به پروژه Google Cloud پیوند دهید.
- Play Integrity API را در برنامه خود ادغام کنید .
- تصمیم بگیرید که چگونه با احکام برخورد کنید .
به طور پیشفرض، Play Integrity API اجازه میدهد تا 10 هزار درخواست در هر برنامه در روز انجام شود. برای ابراز علاقه به افزایش حداکثر درخواست های روزانه خود، این دستورالعمل ها را دنبال کنید . برای واجد شرایط بودن برای افزایش حداکثر تعداد درخواستهای روزانه، برنامه شما باید Play Integrity API را به درستی پیادهسازی کند و علاوه بر سایر کانالهای توزیع، در Google Play نیز در دسترس باشد.
مواردی که باید برای Play Integrity API در نظر داشته باشید
- ضروری است که خطاهای موجود در پاسخ های Play Integrity APIs را به طور مناسب مدیریت کنید. راهنمای اینجا را در مورد راهبردهای تلاش مجدد و اجرای بر اساس کدهای خطا دنبال کنید.
- Play Integrity API ابزارهای آزمایشی را برای پاسخها ارائه میدهد.
- برای مشاهده نتیجه یکپارچگی دستگاه خود، این مراحل را دنبال کنید .
- این ملاحظات امنیتی را برای اقدامات توصیه شده با استفاده از Play Integrity API بخوانید.
حفاظت از یکپارچگی خودکار (API >= 23)
حفاظت از یکپارچگی خودکار یک سرویس حفاظت از کد ضد دستکاری است که از برنامه شما در برابر سوء استفاده از یکپارچگی به شکل تغییر و توزیع مجدد غیرمجاز محافظت می کند. بدون اتصال داده کار می کند و نیازی به کار توسعه دهنده قبل از آزمایش و ادغام سرور باطن ندارد.
چگونه این به کاهش تقلب کمک می کند
وقتی محافظت خودکار از یکپارچگی را روشن میکنید، Google Play چکهایی را به کد برنامهتان اضافه میکند و با تکنیکهای مبهمسازی پیشرفته و ضد مهندسی معکوس حذف آنها را سخت میکند. در زمان اجرا، حفاظت بررسی میکند که آیا برنامه شما دستکاری شده یا دوباره توزیع شده است:
- در صورت عدم موفقیت در نصب ، از کاربران خواسته می شود که برنامه شما را در Google Play دریافت کنند
- اگر بررسی اصلاح انجام شود ، برنامه اجرا نمی شود
این به شما کمک می کند تا کاربران از نسخه های اصلاح شده برنامه شما ایمن باشد.
پیاده سازی
محافظت از یکپارچگی اتوماتیک فقط برای انتخاب شرکای بازی در این زمان در دسترس است. اگر این ویژگی در کنسول Google Play شما در دسترس نیست ، با Google Play پشتیبانی کنید و دوست دارید علاقه خود را ابراز کنید.
می توانید هنگام ایجاد نسخه یا در صفحه یکپارچگی برنامه (انتشار> یکپارچگی برنامه) محافظت کنید. محافظت از یکپارچگی خودکار به برنامه شما نیاز دارد تا از امضای برنامه Play استفاده کند.
قبل از ترویج انتشار به تولید ، حتماً برنامه محافظت شده خود را آزمایش کنید .
چیزهایی که باید در نظر داشت
- نسخه های برنامه محافظت نشده را منتشر نکنید
- هنگام مخلوط کردن راه حل های محافظت از ضد تام ، مراقب باشید
- قبل از انتشار آن به تولید ، برنامه محافظت شده خود را آزمایش کنید
- برای هرگونه افزایش تصادفات ، آمار را به صورت عادی کنترل کنید
- می توانید نسخه های ترک خورده برنامه خود را به Google Play گزارش دهید