Обзор API целостности Play

Play Integrity API помогает вам проверить, что взаимодействия и запросы к серверу поступают из подлинного двоичного файла приложения, работающего на подлинном устройстве Android. Обнаруживая потенциально рискованные и мошеннические взаимодействия, например, из поддельных версий приложений и ненадежных сред, внутренний сервер вашего приложения может отреагировать соответствующими действиями для предотвращения атак и сокращения злоупотреблений.

Когда ваше приложение или игра используется на устройстве Android с Google Play Store и на базе сервисов Google Play, Play Integrity API предоставляет ответ, который помогает вам определить, взаимодействуете ли вы со следующим:

  • Подлинный двоичный файл приложения. Определите, взаимодействуете ли вы с немодифицированным двоичным файлом, который распознается Google Play.
  • Подлинная установка Play. Определите, лицензирована ли текущая учетная запись пользователя. Это означает, что пользователь установил или оплатил ваше приложение или игру в Google Play.
  • Подлинное устройство Android. Определите, работает ли ваше приложение на подлинном устройстве Android с поддержкой сервисов Google Play (или на подлинном экземпляре Google Play Games для ПК).

Вы также можете выбрать получение информации о среде в ответе Play Integrity API, в том числе:

  • Риск доступа к приложениям. Определите, запущены ли приложения, которые можно использовать для захвата экрана, отображения наложений или управления устройством.
  • Риск от известных вредоносных программ. Определите, включена ли Google Play Protect и обнаружены ли на устройстве рискованные или опасные приложения.

Обзор

Когда пользователь выполняет действие в вашем приложении, вы можете вызвать Play Integrity API, чтобы проверить, произошло ли это в подлинном двоичном файле вашего приложения, установленном Google Play и запущенном на подлинном устройстве Android. Вы также можете согласиться на получение дополнительной информации в ответе, включая объем запросов, которые устройство сделало в последнее время, и сигналы о среде, включая вердикт о риске доступа к приложению и вердикт Play Protect. Если с вердиктами что-то не так, внутренний сервер вашего приложения может решить, что делать, чтобы защититься от таких проблем, как злоупотребление и мошенничество, неправильное использование и мошенничество, несанкционированный доступ и атаки.

Обзор Play Integrity API

Соображения безопасности

Play Integrity API обеспечивает максимальную ценность вашего приложения, если вы следуете следующим рекомендациям:

Иметь стратегию борьбы со злоупотреблениями

API Play Integrity работает лучше всего, когда используется вместе с другими сигналами в рамках общей стратегии борьбы со злоупотреблениями, а не в качестве единственного механизма борьбы со злоупотреблениями. Используйте этот API в сочетании с другими подходящими рекомендациями по обеспечению безопасности вашего приложения. По умолчанию ваше приложение может выполнять до 10 000 запросов в день для всех установок. Вы можете попросить увеличить дневной максимум .

Соберите телеметрию и поймите свою аудиторию, прежде чем предпринимать действия.

Прежде чем изменить поведение вашего приложения на основе вердиктов Play Integrity API, вы можете понять текущую ситуацию с существующей аудиторией, внедрив API без принудительного применения. Как только вы узнаете, какие вердикты выдает ваша текущая база установок, вы сможете оценить влияние любых мер, которые вы планируете, и соответствующим образом скорректировать свою стратегию борьбы со злоупотреблениями.

Решите, как вы будете запрашивать вердикты целостности.

Play Integrity API предлагает два варианта запроса и получения вердиктов целостности. Независимо от того, отправляете ли вы стандартные запросы, классические запросы или комбинацию обоих типов запросов, ответ о вердикте целостности будет возвращен в одном и том же формате.

Стандартные запросы API подходят для любого приложения или игры и могут выполняться по требованию, чтобы проверить подлинность любого действия пользователя или запроса сервера. Стандартные запросы имеют минимальную задержку (в среднем несколько сотен миллисекунд) и высокую надежность получения полезного вердикта. Стандартные запросы используют интеллектуальное кэширование на устройстве, делегируя защиту от определенных типов атак Google Play.

Классические запросы API — оригинальный способ запроса вердиктов целостности — также по-прежнему доступны. Классические запросы имеют более высокую задержку (в среднем несколько секунд), и вы несете ответственность за снижение риска определенных типов атак. Классические запросы используют больше данных и аккумулятора пользователя, чем стандартные запросы, поскольку они инициируют новую оценку и поэтому их следует выполнять нечасто в качестве разового использования, чтобы проверить, является ли очень конфиденциальное или ценное действие подлинным. Если вы планируете сделать классический запрос и кэшировать его для последующего использования, вам следует вместо этого сделать стандартный запрос, чтобы снизить риск атак.

В следующей таблице показаны некоторые ключевые различия между двумя типами запросов:

Стандартный запрос API Классический запрос API
Требуется минимальная версия Android SDK Android 5.0 (уровень API 21) или выше Android 4.4 (уровень API 19) или выше
Требуется прогрев API ✔️ (несколько секунд)
Типичная задержка запроса Несколько сотен миллисекунд Несколько секунд
Потенциальная частота запросов Частая (проверка по требованию на предмет любого действия или запроса) Нечасто (однократная проверка действий с наивысшей ценностью или наиболее конфиденциальных запросов)
Защита от повторов и подобных атак Автоматическое смягчение последствий с помощью Google Play Используйте поле nonce с логикой на стороне сервера

Таблицу с большим количеством различий вы можете увидеть в рассмотрении классического запроса .

Запросите вердикт о целостности в подходящий момент

Вам следует запросить вердикт о риске доступа к приложению как можно ближе ко времени действия или запроса к серверу, от доступа к которому вы хотите защититься, чтобы мошенники не могли обойти проверку целостности, выполняемую вашим приложением.

Сделайте ваши запросы API трудно реплицируемыми

Стандартные запросы API имеют поле requestHash , которое используется для защиты от несанкционированного доступа и подобных атак. В это поле вы должны включить дайджест всех соответствующих значений из запроса вашего приложения. Следуйте инструкциям по использованию привязки контента для защиты стандартных запросов вашего приложения.

Классические запросы API имеют поле под названием nonce (сокращение от числа один раз), которое используется для защиты от определенных типов атак, таких как атаки повтора и подделки. Следуйте инструкциям по созданию одноразовых номеров для защиты классических запросов вашего приложения.

Избегайте вердиктов целостности кэширования

Кэширование вердиктов целостности увеличивает риск проксирования — атаки, при которой злоумышленник повторно использует вердикт хорошего устройства в злонамеренных целях в другой среде. Вместо кэширования ответов вы можете сделать стандартный запрос к API , чтобы получить вердикт по требованию.

Используйте многоуровневую стратегию обеспечения соблюдения требований

Вердикт целостности Play Integrity API имеет ряд возможных ответов, что позволяет построить стратегию борьбы со злоупотреблениями с несколькими уровнями обеспечения соблюдения. Вы можете сделать это, настроив внутренний сервер вашего приложения так, чтобы он вел себя по-разному в зависимости от каждого возможного ответа или группы ответов.

Стратегию принудительного применения также можно распределить по уровням на основе надежности устройств, включив получение дополнительных меток устройств в ответе API от Play Console. Каждое устройство вернет все метки, критериям которых оно соответствует. Например, после согласия на получение всех меток устройств вы можете доверять устройству, которое возвращает MEETS_STRONG_INTEGRITY , MEETS_DEVICE_INTEGRITY и MEETS_BASIC_INTEGRITY чем устройству, которое возвращает только MEETS_BASIC_INTEGRITY . В каждом сценарии вы можете реагировать с сервера по-разному.

Отправьте ряд ответов с вашего сервера в ваше приложение.

Иметь ряд результатов принятия решений сложнее воспроизвести, чем отправлять двоичный ответ «Разрешить/Запретить» с сервера обратно в приложение для каждого ответа. Например, вы можете использовать ряд связанных ответов, таких как «Разрешить», «Разрешить с ограничениями», «Разрешить с ограничениями после завершения CAPTCHA» и «Запретить».

Обнаруживайте крупномасштабные злоупотребления, используя недавнюю активность устройств.

Используйте функцию недавней активности устройств в Play Integrity API, чтобы найти устройства, запрашивающие большое количество токенов целостности. Злоумышленники с высокой активностью обычно генерируют действительные результаты аттестации с реальных устройств и предоставляют их ботам для автоматизации атак на корневые устройства и эмуляторы. Вы можете использовать уровень недавней активности устройства, чтобы проверить, сколько подтверждений было создано вашим приложением на этом устройстве за последний час.

Показывать действенные сообщения об ошибках

По возможности предоставляйте пользователю полезные сообщения об ошибках и сообщайте им, что они могут сделать, чтобы это исправить; например повторная попытка, включение подключения к Интернету или проверка актуальности приложения Play Store.

Составьте план на случай непредвиденных проблем или сбоев в работе

На панели статуса Play отображается информация о состоянии службы Play Integrity API, а также информация о любых сбоях и перебоях в работе. Вам следует заранее спланировать, как будет работать ваш серверный сервер в маловероятном случае крупномасштабного сбоя API целостности Play.

Рассмотрите комплексные решения корпоративного мошенничества

Корпоративные клиенты, которым требуется комплексное решение для борьбы с мошенничеством и ботами, могут приобрести reCAPTCHA Enterprise для мобильных устройств, включающую SDK для Android , которые предоставляют разработчикам оценку риска мошенничества. reCAPTCHA Enterprise автоматически включает сигналы Play Integrity API и объединяет их с сигналами сети и приложений reCAPTCHA для клиентов, предоставляя простое и незаметное решение для управления мошенничеством «из коробки». Он также может обеспечить защиту приложений Android, в которых API Integrity API недоступен.

Борьба с рискованным трафиком при доступе к ценным или конфиденциальным функциям

Определите важные или конфиденциальные действия в вашем приложении или игре, чтобы защитить их с помощью Play Integrity API, а не сразу запрещать доступ. По возможности проверяйте рискованный трафик, прежде чем разрешить выполнение важных действий. Например, если риск доступа к приложению указывает на то, что запущено приложение, которое может захватывать экран, попросите пользователя отключить или удалить приложения, которые могут захватывать экран, прежде чем разрешить ему перейти к функциям, которые вы хотите защитить.

Условия обслуживания и безопасность данных

Получая доступ к Play Integrity API или используя его, вы соглашаетесь с Условиями использования Play Integrity API . Прежде чем получить доступ к API, прочтите и поймите все применимые условия и политики.

В Google Play есть раздел безопасности данных, где разработчики могут раскрывать методы сбора, обмена и безопасности данных своих приложений, чтобы держать ваших пользователей в курсе. Чтобы помочь вам заполнить форму данных, ознакомьтесь с информацией о том, как Play Integrity API обрабатывает данные .