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