Play Integrity API помогает вам проверить, что взаимодействия и запросы к серверу исходят от вашего подлинного двоичного файла приложения, работающего на подлинном устройстве Android. Обнаруживая потенциально рискованные и мошеннические взаимодействия, например, от измененных версий приложения и ненадежных сред, внутренний сервер вашего приложения может отреагировать соответствующими действиями для предотвращения атак и сокращения злоупотреблений. Play Integrity API также предлагает дополнительные функции, которые помогут вам обнаружить и отреагировать на другие угрозы, такие как известные вредоносные программы, неизвестные захваты экрана и наложения, приложения, злоупотребляющие разрешением на доступность, гиперактивность и повторное злоупотребление, исходящее от одного и того же устройства.
Когда ваше приложение или игра используются на устройстве Android, сертифицированном Play Protect, API Play Integrity предоставляет ответ, который помогает вам определить, взаимодействуете ли вы со следующими объектами:
- Подлинный двоичный файл приложения: определите, взаимодействуете ли вы с немодифицированным двоичным файлом, который распознает Google Play.
- Подлинная установка Play: определите, является ли текущая учетная запись пользователя лицензированной, что означает, что пользователь установил или оплатил ваше приложение или игру в Google Play.
- Подлинное устройство Android: определите, работает ли ваше приложение на подлинном устройстве Android, сертифицированном Play Protect (или на подлинном экземпляре Google Play Games для ПК).
Вы можете получать информацию об окружающей среде в ответе Play Integrity API, включая:
- Риск доступа к приложениям: определите, запущены ли приложения, которые могут использоваться для захвата экрана, отображения наложений или управления устройством (например, путем неправомерного использования разрешения на доступ).
- Риск, связанный с известным вредоносным ПО: определите, включена ли защита Google Play и обнаружены ли на устройстве рискованные или опасные приложения.
Вы также можете включить функции, которые помогут вам обнаружить гиперактивность и повторное насилие:
- Недавняя активность устройства: определите, не делало ли устройство в последнее время аномально большого объема запросов, что может указывать на автоматизированный трафик и быть признаком атаки.
- Отзыв устройства (бета-версия): определите, взаимодействуете ли вы с устройством, с которым вы ранее взаимодействовали, даже если ваше приложение было переустановлено или устройство было сброшено.
Обзор
Когда пользователь выполняет действие в вашем приложении, вы можете вызвать API Play Integrity, чтобы проверить, что это произошло в вашем подлинном двоичном файле приложения, установленном Google Play и запущенном на подлинном устройстве Android. Вы также можете подписаться на дополнительную информацию в ответе, которая поможет вам обнаружить и отреагировать на широкий спектр угроз, которые приводят к злоупотреблениям и мошенничеству, нецелевому использованию и обману, несанкционированному доступу и атакам.
Соображения безопасности
Play Integrity API обеспечит максимальную отдачу для вашего приложения, если вы будете следовать следующим рекомендуемым практикам:
Иметь стратегию борьбы со злоупотреблениями
API Play Integrity лучше всего работает, когда используется вместе с другими сигналами как часть вашей общей стратегии противодействия злоупотреблениям, а не как единственный механизм противодействия злоупотреблениям. Используйте этот API в сочетании с другими подходящими передовыми методами обеспечения безопасности для вашего приложения. По умолчанию ваше приложение может делать до 10 000 запросов в день по всем установкам. Вы можете запросить увеличение вашего ежедневного максимума .
Собирайте телеметрию и изучайте свою аудиторию, прежде чем предпринимать какие-либо действия.
Прежде чем менять поведение приложения на основе вердиктов API Play Integrity, вы можете понять текущую ситуацию с вашей существующей аудиторией, внедрив API без принудительного применения. Как только вы узнаете, какие вердикты возвращает ваша текущая база установок, вы сможете оценить влияние любого запланированного вами принудительного применения и соответствующим образом скорректировать свою стратегию борьбы со злоупотреблениями.
Решите, как вы будете запрашивать вердикты о честности
Play Integrity API предлагает два варианта запроса и получения вердиктов целостности. Независимо от того, делаете ли вы стандартные запросы, классические запросы или комбинацию обоих типов запросов, ответ вердикта целостности будет возвращен в том же формате.
Стандартные запросы API подходят для любого приложения или игры и могут быть сделаны по требованию для проверки подлинности любого действия пользователя или запроса сервера. Стандартные запросы имеют наименьшую задержку (в среднем несколько сотен миллисекунд) и высокую надежность получения пригодного вердикта. Стандартные запросы используют интеллектуальное кэширование на устройстве, делегируя защиту от определенных типов атак Google Play.
Запросы Classic API , оригинальный способ запроса вердиктов целостности, также продолжают быть доступными. Классические запросы имеют более высокую задержку (в среднем несколько секунд), и вы несете ответственность за снижение риска определенных типов атак. Классические запросы используют больше данных пользователя и батареи, чем стандартные запросы, поскольку они инициируют новую оценку, и поэтому их следует делать нечасто, как разовый запрос, чтобы проверить, является ли высокочувствительное или ценное действие подлинным. Если вы рассматриваете возможность сделать классический запрос и кэшировать его для использования позже, то вам следует сделать стандартный запрос вместо этого, чтобы снизить риск атак.
В следующей таблице показаны некоторые ключевые различия между двумя типами запросов:
Стандартный API-запрос | Классический API-запрос | |
---|---|---|
Требуется минимальная версия Android SDK | Android 5.0 (уровень API 21) или выше | Android 4.4 (уровень API 19) или выше |
Требуется прогрев API | ✔️ (несколько секунд) | ❌ |
Типичная задержка запроса | Несколько сотен миллисекунд | Несколько секунд |
Потенциальная частота запросов | Часто (проверка по требованию на предмет какого-либо действия или запроса) | Нечасто (однократная проверка для наиболее важных действий или наиболее конфиденциальных запросов) |
Смягчение последствий повторных атак и подобных атак | Автоматическое смягчение последствий с помощью Google Play | Использовать поле nonce с логикой на стороне сервера |
Вы можете увидеть таблицу с дополнительными различиями в рассмотрении классических запросов .
Запросите вердикт о честности в подходящий момент
Вам следует запросить вердикт о риске доступа к приложению как можно ближе к моменту действия или запроса к серверу, от которого вы хотите защититься, чтобы не дать мошенникам обойти проверку целостности, выполняемую вашим приложением.
Сделайте так, чтобы ваши запросы API было трудно воспроизводить
Стандартные запросы API имеют поле requestHash
, которое используется для защиты от подделки и подобных атак. В это поле следует включить дайджест всех соответствующих значений из запроса вашего приложения. Следуйте инструкциям по использованию привязки контента для защиты стандартных запросов вашего приложения.
Запросы классического API имеют поле, называемое nonce
(сокращение от number once), которое используется для защиты от определенных типов атак, таких как атаки повторного воспроизведения и подделки. Следуйте инструкциям по генерации nonce для защиты классических запросов вашего приложения.
Избегайте кэширования вердиктов о целостности
Кэширование вердиктов целостности увеличивает риск проксирования, что является атакой, при которой злоумышленник повторно использует вердикт с хорошего устройства для злонамеренных целей в другой среде. Вместо кэширования ответов вы можете сделать стандартный запрос API , чтобы получить вердикт по требованию.
Иметь многоуровневую стратегию обеспечения соблюдения
Вердикт о целостности API Play Integrity имеет ряд возможных ответов, что позволяет построить стратегию борьбы со злоупотреблениями с несколькими уровнями принуждения. Вы можете сделать это, настроив внутренний сервер вашего приложения на разное поведение в зависимости от каждого возможного ответа или группы ответов.
Также можно настроить стратегию принудительного применения на основе надежности устройства, включив получение дополнительных меток устройств в ответе API от Play Console. Каждое устройство будет возвращать все метки, критериям которых оно удовлетворяет. Например, после включения получения всех меток устройств вы можете доверять устройству, которое возвращает MEETS_STRONG_INTEGRITY
, MEETS_DEVICE_INTEGRITY
и MEETS_BASIC_INTEGRITY
больше, чем устройству, которое возвращает только MEETS_BASIC_INTEGRITY
. Вы можете по-разному реагировать на сервер в каждом сценарии.
Отправьте ряд ответов с вашего сервера в ваше приложение
Наличие диапазона результатов решения сложнее воспроизвести, чем отправка бинарного ответа Разрешить/Запретить с сервера обратно в приложение для каждого ответа. Например, вы можете использовать ряд связанных ответов, таких как Разрешить, Разрешить с ограничениями, Разрешить с ограничениями после завершения CAPTCHA и Запретить.
Выявляйте повторные злоупотребления с помощью отзыва устройств, сохраняя при этом конфиденциальность пользователей.
Отзыв устройства дает приложениям возможность хранить и вызывать некоторые пользовательские данные, связанные с определенным устройством, таким образом, чтобы сохранить конфиденциальность пользователя. Данные хранятся на серверах Google, что позволяет вашему приложению надежно вызывать данные по каждому устройству даже после переустановки приложения или сброса устройства. Это дает вам надежный способ повторно идентифицировать устройство, которое вы сочли злоупотребляющим в прошлом, чтобы вы могли принять меры и остановить его повторное использование для злоупотреблений. Вы можете определить собственное значение для трех значений, которые составляют данные отзыва устройства:
- Вы можете использовать их как до трех отдельных флагов или булевых значений. Например, значения могут представлять, что устройство создало или не создало учетную запись, использовало или не использовало бесплатную пробную версию, было или не было известно о серьезном злоупотреблении.
- В качестве альтернативы вы можете объединить все состояния значений в восемь пользовательских меток, например, одну метку для состояния по умолчанию, когда все три значения не изменены, и семь меток с пользовательскими значениями. Это позволяет вам сегментировать все устройства в восемь групп на основе поведения или действий, которые вы определяете. В этом сценарии последний обновленный из трех
writeDates
указывает, когда вы последний раз обновляли метку.
Также при работе с данными об отзыве устройств следует учитывать предварительные условия и другие соображения .
Выявляйте крупномасштабные злоупотребления, используя недавнюю активность устройства
Используйте функцию недавней активности устройства в API Play Integrity, чтобы найти устройства, запрашивающие большое количество токенов целостности. Злоумышленники с высокой активностью обычно генерируют действительные результаты аттестации с реальных устройств и предоставляют их ботам для автоматизации атак на рутированные устройства и эмуляторы. Вы можете использовать уровень недавней активности устройства, чтобы проверить, сколько аттестаций было сгенерировано вашим приложением на этом устройстве за последний час.
Показывать сообщения об ошибках, требующие действий
По возможности предоставляйте пользователю полезные сообщения об ошибках и дайте ему знать, что можно сделать для их устранения, например, повторить попытку, включить подключение к Интернету или проверить актуальность приложения Play Store.
Имейте план на случай непредвиденных проблем или сбоев
Панель состояния Play отображает информацию о состоянии службы Play Integrity API, а также информацию о любых сбоях и отключениях. Вам следует заранее спланировать, как ваш внутренний сервер будет функционировать в маловероятном случае масштабного отключения Play Integrity API. Обратите внимание, что ваш внутренний сервер также должен быть готов к работе в случае отзыва ключей подтверждения ключа платформы Android, специфичных для устройств.
Рассмотрите комплексные решения по борьбе с мошенничеством на предприятии
Корпоративные клиенты, ищущие комплексное решение по борьбе с мошенничеством и ботами, могут приобрести reCAPTCHA Enterprise для мобильных устройств, которое включает SDK для Android , предоставляющие разработчикам оценки риска мошенничества. reCAPTCHA Enterprise автоматически включает сигналы API Play Integrity и объединяет их с сигналами сети и приложений reCAPTCHA для клиентов, предоставляя бесперебойное, невидимое решение по борьбе с мошенничеством из коробки. Оно также может обеспечить защиту для приложений Android, где API Play Integrity недоступно.
Бросьте вызов опасному трафику при доступе к ценным или конфиденциальным объектам
Определите важные или конфиденциальные действия в вашем приложении или игре для защиты с помощью API Play Integrity вместо того, чтобы полностью запретить доступ. Когда это возможно, проверяйте рискованный трафик, прежде чем разрешить выполнение важных действий. Например, когда риск доступа к приложению указывает на то, что запущено приложение, которое может захватывать экран, попросите пользователя отключить или удалить приложения, которые могут захватывать экран, прежде чем разрешить им перейти к функциям, которые вы хотите защитить.
Условия обслуживания и безопасность данных
Получая доступ или используя Play Integrity API, вы соглашаетесь с Условиями обслуживания Play Integrity API . Пожалуйста, прочтите и поймите все применимые условия и политики перед доступом к API.
В Google Play есть раздел безопасности данных, в котором разработчики могут раскрывать методы сбора, распространения и обеспечения безопасности данных своих приложений, чтобы информировать пользователей. Чтобы помочь вам заполнить форму данных, ознакомьтесь с этой информацией о том, как API Play Integrity обрабатывает данные .