Play Integrity API помогает вам проверить, что взаимодействия и запросы к серверу поступают из подлинного двоичного файла приложения, работающего на подлинном устройстве Android. Обнаруживая потенциально рискованные и мошеннические взаимодействия, например, из поддельных версий приложений и ненадежных сред, внутренний сервер вашего приложения может отреагировать соответствующими действиями для предотвращения атак и сокращения злоупотреблений. Play Integrity API также предлагает дополнительные функции, которые помогут вам обнаруживать и реагировать на другие угрозы, такие как известные вредоносные программы, неизвестные снимки экрана и наложения, приложения, злоупотребляющие разрешением на доступ, гиперактивность и повторяющиеся злоупотребления, исходящие с одного и того же устройства.
Когда ваше приложение или игра используется на сертифицированном Play Protect устройстве Android, Play Integrity API предоставляет ответ, который помогает вам определить, взаимодействуете ли вы со следующим:
- Подлинный двоичный файл приложения. Определите, взаимодействуете ли вы с немодифицированным двоичным файлом, который распознается Google Play.
- Подлинная установка Play. Определите, лицензирована ли текущая учетная запись пользователя. Это означает, что пользователь установил или оплатил ваше приложение или игру в Google Play.
- Подлинное устройство Android. Определите, работает ли ваше приложение на подлинном устройстве Android, сертифицированном Play Protect (или на подлинном экземпляре Google Play Games для ПК).
Вы можете получать информацию о среде в ответе Play Integrity API, в том числе:
- Риск доступа к приложениям. Определите, запущены ли приложения, которые можно использовать для захвата экрана, отображения наложений или управления устройством (например, путем неправильного использования разрешения на доступ).
- Риск от известных вредоносных программ. Определите, включена ли Google Play Protect и обнаружены ли на устройстве рискованные или опасные приложения.
Вы также можете включить функции, которые помогут вам обнаружить гиперактивность и повторное насилие:
- Недавняя активность устройства. Определите, отправляло ли устройство в последнее время аномально большое количество запросов, что может указывать на автоматический трафик и быть признаком атаки.
- Отзыв устройства (бета-версия). Определите, взаимодействуете ли вы с устройством, с которым ранее взаимодействовали, даже если ваше приложение было переустановлено или устройство было сброшено.
Обзор
Когда пользователь выполняет действие в вашем приложении, вы можете вызвать Play Integrity API, чтобы проверить, произошло ли это в подлинном двоичном файле вашего приложения, установленном Google Play и запущенном на подлинном устройстве Android. Вы также можете согласиться на получение дополнительной информации в ответе, включая объем запросов, которые устройство сделало в последнее время, и сигналы о среде, включая вердикт о риске доступа к приложению и вердикт Play Protect. Если с вердиктами что-то не так, внутренний сервер вашего приложения может решить, что делать, чтобы защититься от таких проблем, как злоупотребление и мошенничество, неправильное использование и мошенничество, несанкционированный доступ и атаки.
Соображения безопасности
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» и «Запретить».
Обнаруживайте повторные злоупотребления с помощью отзыва устройств, сохраняя при этом конфиденциальность пользователей.
Отзыв устройства дает приложениям возможность хранить и вызывать некоторые пользовательские данные, связанные с конкретным устройством, таким образом, чтобы сохранить конфиденциальность пользователя. Данные хранятся на серверах Google, что позволяет вашему приложению надежно вызывать данные для каждого устройства даже после переустановки приложения или перезагрузки устройства. Это дает вам надежный способ повторно идентифицировать устройство, которое вы в прошлом считали неправомерным, чтобы вы могли принять меры и предотвратить его повторное использование для злоупотреблений. Вы можете определить собственное значение трех значений, составляющих данные отзыва устройства:
- Вы можете использовать их как три отдельных флага или логические значения. Например, значения могут обозначать, что устройство создало или не создало учетную запись, использовало или не использовало бесплатную пробную версию, было или не было известно о серьезных злоупотреблениях.
- В качестве альтернативы вы можете объединить все состояния значений в восемь настраиваемых меток, например одну метку для состояния по умолчанию, когда все три значения не изменены, и семь меток с пользовательскими значениями. Это позволяет вам сегментировать все устройства на восемь групп на основе заданного вами поведения или действий. В этом сценарии последняя обновленная из трех
writeDates
указывает, когда вы в последний раз обновляли метку.
Также помните о предварительных условиях и других факторах при работе с данными отзыва устройств.
Обнаруживайте крупномасштабные злоупотребления, используя недавнюю активность устройств.
Используйте функцию недавней активности устройств в Play Integrity API, чтобы найти устройства, запрашивающие большое количество токенов целостности. Злоумышленники с высокой активностью обычно генерируют действительные результаты аттестации с реальных устройств и предоставляют их ботам для автоматизации атак на корневые устройства и эмуляторы. Вы можете использовать уровень недавней активности устройства, чтобы проверить, сколько подтверждений было создано вашим приложением на этом устройстве за последний час.
Показывать полезные сообщения об ошибках
По возможности предоставляйте пользователю полезные сообщения об ошибках и сообщайте им, что они могут сделать, чтобы это исправить; например повторная попытка, включение подключения к Интернету или проверка актуальности приложения Play Store.
Составьте план на случай непредвиденных проблем или сбоев в работе
На панели статуса Play отображается информация о состоянии службы Play Integrity API, а также информация о любых сбоях и перебоях в работе. Вам следует заранее спланировать, как будет работать ваш серверный сервер в маловероятном случае крупномасштабного сбоя API целостности Play. Обратите внимание, что ваш внутренний сервер также должен быть готов к работе в случае отзыва ключей аттестации ключей платформы Android, специфичных для устройств.
Рассмотрите комплексные решения корпоративного мошенничества
Корпоративные клиенты, которым требуется комплексное решение для борьбы с мошенничеством и ботами, могут приобрести 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 обрабатывает данные .