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

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

API یکپارچگی بازی

ویژگی‌های API یکپارچگی بازی

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

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

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

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

وقتی کاربری در برنامه شما اقدام مهمی انجام می‌دهد، می‌توانید API مربوط به Play Integrity را فراخوانی کنید. اگر این اتفاق نیفتاد، سرور backend برنامه شما می‌تواند تصمیم بگیرد که برای دفاع در برابر حملات و کلاهبرداری چه کاری انجام دهد. به عنوان مثال، می‌توانید تأیید هویت اضافی کاربر را درخواست کنید یا دسترسی به عملکردهای حساس را مسدود کنید.

جریان تصمیم‌گیری API Play Integrity

خطر دسترسی به برنامه

سیگنال ریسک دسترسی به برنامه (App Access Risk) برای کمک به شما در ارزیابی اینکه آیا سایر برنامه‌های روی دستگاه می‌توانند هنگام اجرای برنامه شما، صفحه را مشاهده و ضبط کنند یا با استفاده از مجوزهای دسترسی به برنامه شما دسترسی پیدا کنند، معرفی شده است. برنامه‌های دارای دسترسی تأیید شده به طور خودکار از این احکام مستثنی می‌شوند. ریسک دسترسی به برنامه به توسعه‌دهندگان کمک می‌کند تا از برنامه‌های خود محافظت کنند و در عین حال حریم خصوصی کاربر را حفظ کنند، زیرا برنامه درخواست‌کننده هویت برنامه‌های نصب شده را به دست نمی‌آورد و حکم به شناسه‌های کاربر یا دستگاه مرتبط نیست.

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

به لطف این تلاش مشترک، ما می‌توانیم سیگنال‌های لازم را برای ارائه بینش عمیق‌تر جهت محافظت مؤثرتر از مشتریان خود دریافت کنیم.
—نوبانک، شریک دسترسی زودهنگام

ریسک دسترسی به برنامه سطوح ریسک مختلفی دارد:

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

اجرای ریسک دسترسی به برنامه

به جای رد کامل دسترسی، اقدامات با ارزش بالا یا حساس را در برنامه یا بازی خود شناسایی کنید تا با استفاده از Play Integrity API از آنها محافظت کنید. در صورت امکان، قبل از اجازه دادن به اقدامات با ارزش بالا برای ادامه، ترافیک پرخطر را به چالش بکشید. به عنوان مثال، وقتی خطر دسترسی به برنامه نشان می‌دهد که برنامه‌ای در حال اجرا است که می‌تواند صفحه را ضبط کند، از کاربر بخواهید قبل از اینکه به عملکردی که می‌خواهید محافظت کنید، ادامه دهد، برنامه‌هایی را که می‌توانند صفحه را ضبط کنند غیرفعال یا حذف نصب کند.

این جدول شامل چند نمونه حکم است:

پاسخ به حکم ریسک دسترسی به برنامه نمونه تفسیر
appsDetected:
["KNOWN_INSTALLED"]
فقط برنامه‌هایی نصب می‌شوند که توسط گوگل پلی شناسایی شده باشند یا توسط سازنده دستگاه از قبل روی پارتیشن سیستم بارگذاری شده باشند. هیچ برنامه‌ای که منجر به ضبط، کنترل یا همپوشانی شود، اجرا نمی‌شود.
appsDetected:
["KNOWN_INSTALLED",
"UNKNOWN_INSTALLED",
"UNKNOWN_CAPTURING"]
برنامه‌هایی وجود دارند که توسط گوگل پلی نصب شده‌اند یا توسط سازنده دستگاه از قبل روی پارتیشن سیستم بارگذاری شده‌اند. برنامه‌های دیگری نیز در حال اجرا هستند و مجوزهایی دارند که می‌توانند برای مشاهده صفحه یا ضبط سایر ورودی‌ها و خروجی‌ها استفاده شوند.
appsDetected:
["KNOWN_INSTALLED",
"KNOWN_CAPTURING",
"UNKNOWN_INSTALLED",
"UNKNOWN_CONTROLLING"]
برنامه‌های Play یا system در حال اجرا هستند که مجوزهای فعالی دارند که می‌توانند برای مشاهده صفحه نمایش یا ضبط سایر ورودی‌ها و خروجی‌ها استفاده شوند. همچنین برنامه‌های دیگری در حال اجرا هستند که مجوزهای فعالی دارند که می‌توانند برای کنترل دستگاه و کنترل مستقیم ورودی‌ها به برنامه شما استفاده شوند.
appAccessRiskVerdict: {} ریسک دسترسی به برنامه ارزیابی نمی‌شود زیرا یک الزام ضروری از قلم افتاده است. برای مثال، دستگاه به اندازه کافی قابل اعتماد نبوده است.

سیگنال محافظت را پخش کنید

سیگنال محافظت از بازی به برنامه شما می‌گوید که آیا محافظت از بازی فعال است و آیا برنامه‌های مضر شناخته‌شده‌ای را که روی دستگاه نصب شده‌اند، شناسایی کرده است یا خیر.

environmentDetails:{
  playProtectVerdict: "NO_ISSUES"
}

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

فعال کردن پنجره‌ی «حفاظت از پخش»

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

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

NO_ISSUES

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

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

NO_DATA

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

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

POSSIBLE_RISK

«محافظت از بازی» خاموش است.

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 را مطالعه کنید.

پیاده‌سازی

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

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

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

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

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

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

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

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

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

پیاده‌سازی

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

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

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

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

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