Защитите окружающую среду

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

API обеспечения целостности игры

Функции API обеспечения целостности игры

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

Это помогает проверить, что взаимодействия и запросы к серверу поступают из вашего подлинного исполняемого файла приложения в надежной среде:

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

Как это помогает снизить уровень мошенничества

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

Процесс принятия решений в API обеспечения целостности воспроизведения

Риск доступа к приложению

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

Скриншот телефона, на котором пользователю предлагается закрыть определенные приложения.

Благодаря этим совместным усилиям мы получаем сигналы, необходимые для более глубокого анализа и более эффективной защиты наших клиентов.
— Nubank, партнер по раннему доступу

Риск доступа к приложению имеет разные уровни:

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

Применение мер по контролю рисков доступа к приложениям

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

В этой таблице приведены примеры судебных решений:

Пример ответа на вердикт о риске доступа к приложению Интерпретация
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 может принимать одно из следующих значений:

Вердикт Объяснение Рекомендуемые действия

NO_ISSUES

Функция Play Protect включена, и никаких проблем с приложениями на устройстве обнаружено не было.

Функция Play Protect включена и не обнаружила никаких проблем, поэтому никаких действий от пользователя не требуется.

NO_DATA

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

Функция Play Protect включена и не обнаружила никаких проблем, поэтому никаких действий от пользователя не требуется.

POSSIBLE_RISK

Функция Play Protect отключена.

Функция 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 API разрешает до 10 000 запросов на приложение в день. Чтобы выразить заинтересованность в увеличении максимального количества запросов в день, следуйте этим инструкциям . Для того чтобы ваше приложение могло претендовать на увеличение максимального количества запросов в день, оно должно корректно интегрировать Play Integrity API и быть доступно в Google Play, а также на других каналах распространения.

Что следует учитывать при использовании API проверки целостности игрового процесса

Автоматическая защита целостности (API >= 23)

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

Как это помогает снизить уровень мошенничества

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

  • Если проверка установщика не пройдёт, пользователям будет предложено загрузить ваше приложение из Google Play.
  • Если проверка на наличие изменений не пройдёт, приложение не запустится.

Это помогает защитить пользователей от модифицированных версий вашего приложения.

Выполнение

Автоматическая защита целостности данных в настоящее время доступна только избранным партнерам Play. Если эта функция недоступна в вашей консоли Google Play и вы хотите выразить заинтересованность в ее получении, обратитесь в службу поддержки разработчиков Google Play.

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

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

Что следует учитывать

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