Как запретить несанкционированное изменение и распространение приложений, используя автоматическую защиту целостности

Примечание. Функции, описанные на этой странице, пока доступны только некоторым партнерам Google Play.

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

Как это работает

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

Автоматическая защита целостности создана в следующих целях:

  • Предотвращение несанкционированного изменения. Автоматическая защита целостности препятствует внесению изменений в ваше приложение. Это помогает предотвратить распространение его неофициальных копий. В измененных версиях приложения могут быть удалены платежные данные, добавлена реклама, указан другой идентификатор владельца объявлений или внедрено вредоносное ПО.
  • Предотвращение пиратства платных приложений. Если оригинальная версия приложения приобретена из неофициального источника, ею нельзя пользоваться. В таком случае показывается уведомление с предложением купить ваше приложение в Google Play. Вы можете отключить эту функцию, сняв флажок напротив параметра "Требовать установку из Google Play" на странице настроек автоматической защиты целостности.
  • Увеличение количества пользователей, получающих официальные обновления. Если пользователь установил оригинальную версию приложения из неизвестного источника, ему будет предложено добавить приложение в библиотеку Google Play, чтобы получать для него обновления. Вы можете отключить эту функцию, сняв флажок напротив параметра "Требовать установку из Google Play" на странице настроек автоматической защиты целостности.
Важно! Автоматическая защита целостности не гарантирует полную защиту от взлома, пиратства, перепаковки и несанкционированного распространения. Однако она делает работу мошенников сложнее и затратнее, снижая их шансы на успех. Мы постоянно совершенствуем автоматическую защиту целостности. Новые выпуски вашего приложения по умолчанию получат ее последнюю версию.

Как настроить автоматическую защиту целостности

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

Требования

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

Действуют следующие ограничения:

  • Автоматическая защита целостности поддерживается только на устройствах с ОС Android 6.0 (API уровня 23) и более поздними версиями. ОС Android 6.0 вышла в 2015 году. По данным на 2023 год, целевая версия 23 или выше для атрибута minSdkVersion охватывает более 97 % активных устройств Android.
  • Автоматическая защита целостности поддерживает следующие ABI: x86, x86_64, armeabi-v7a и arm64-v8a. Изменить ABI для приложения можно в настройках Gradle. Если вы удалите другие ABI, которые не используются на активных устройствах Android, это не повлияет на доступность вашего приложения.
  • Автоматическая защита целостности работает в офлайн-режиме. Однако при включенном параметре "Требовать установку из Google Play" ей время от времени может быть нужно подключение к интернету, если приложение Google Play на устройстве не получало обновлений данных в течение продолжительного времени.
  • Если в вашем приложении уже используется сервис лицензирования Google Play, отключите параметр "Требовать установку из Google Play".
  • На приложения, которые вы загружаете на страницу внутреннего доступа в Play Console, защита не распространяется. Отправляйте ссылки для внутреннего доступа к приложениям только надежным участникам команды и не выкладывайте незащищенные версии в общий доступ.
  • Функция автоматической защиты целостности несовместима с механизмом прозрачности кода наборов App Bundle, поскольку предполагает изменение кода. Если она включена, загружаемые наборы App Bundle с механизмом прозрачности кода будут отклонены.
  • Приложения с мгновенным запуском не поддерживают этот тип защиты. Она доступна только для наборов App Bundle без мгновенного запуска. Однако вы можете загрузить с одним и тем же типом версии два набора: защищенный – для установки, незащищенный – для запуска без установки.
Шаг 1. Включите защиту

Создайте выпуск, следуя инструкциям из шага 1 в статье о подготовке и внедрении выпуска.

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

При подготовке выпуска вы увидите кнопку Включить защиту целостности или Управление защитой целостности. Если вы нажмете Да в разделе "Автоматическая защита целостности", то Google Play будет подписывать ваши выпуски и добавлять защиту целостности, чтобы ограничить несанкционированное изменение и распространение. Это означает, что автоматическая защита целостности включена.

Завершите подготовку выпуска и сохраните изменения.

Шаг 2. Протестируйте защищенное приложение

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

При этом обращайте особое внимание на следующие аспекты:

  • Запуск приложения. Убедитесь, что приложение запускается быстро и без сбоев.
  • Обратные вызовы из нативного кода (C или C++) к коду Java (в вашем собственном коде или сторонних библиотеках). Например, при взаимодействии с объявлениями, добавлении записей в журнал, аутентификации, интеграции с социальными сетями, а также во время работы некоторых связанных с Android функций, таких как обработка разрешений.

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

Чтобы отключить защиту целостности для отдельного выпуска, сделайте следующее:

  1. Во время подготовки выпуска нажмите Управление защитой целостности.
  2. В разделе "Автоматическая защита целостности" выберите Предыдущая версия защиты или Отключить защиту для этого выпуска.
  3. Сохраните изменения. Они будут применены только к этому выпуску. Для следующего загруженного выпуска снова будет включена самая новая и надежная версия защиты.
Шаг 3. Опубликуйте рабочую версию приложения

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

Как создать специальную страницу приложения для тех, кто переходит к нему в Google Play при нажатии на диалоговое окно защиты целостности

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

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

  1. Откройте Play Console и перейдите на страницу Целостность приложения (Выпуск > Целостность приложения).
  2. Прокрутите страницу вниз до раздела Play Integrity API.
  3. Нажмите Настройки.
  4. Прокрутите экран до раздела "Специальные страницы приложения в Google Play".
  5. Выберите Создать страницу приложения.
  6. Выполните инструкции на странице Создание специальной страницы приложения в Google Play и нажмите Сохранить.

Страницу можно также настроить в разделе Специальные страницы приложения в Google Play:

  1. Откройте Play Console и перейдите в раздел Специальные страницы приложения в Google Play (Развитие > Специальные страницы приложения в Google Play).
  2. Выберите Создать страницу приложения. Затем укажите, хотите ли вы создать новую страницу или скопировать существующую, и нажмите Далее.
  3. Прокрутите раздел "Информация о странице приложения" до пункта Целевая аудитория.
  4. Выберите По URL и введите "playintegrity" в текстовое поле.
  5. Укажите другие данные и нажмите Сохранить.

Совет. Не меняйте параметр playintegrity и вводите его без ошибок. Это ключевое слово, зарезервированное для ссылок защиты целостности.

Рекомендации

Не выпускайте незащищенные версии приложений

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

Используйте дополнительные методы защиты с осторожностью

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

Тестируйте защищенное приложение

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

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

Когда пользователь переходит по ссылке для внутреннего доступа к приложению в App Bundle Explorer, открывается та версия сборки, которую вы загрузили в Google Play. Если вы загрузили для тестирования защищенную версию, то именно она будет доступна по ссылке. Чтобы посмотреть статус защиты, перейдите на вкладку Сведения в App Bundle Explorer.

Отслеживайте сбои

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

Сбои, которые не относятся к Google Play, не влияют на показатели стабильности Android Vitals. Если вы анализируете сбои с помощью других инструментов, например Crashlytics, и хотите отфильтровать результаты по источнику установки, то для Google Play используйте название пакета com.android.vending.

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

Сообщайте о взломанных версиях приложения

Взломанная версия – это версия приложения, работающая после того, как ее изменили, или установленная из стороннего источника (если ваше приложение требует установки из Google Play).

Если вы обнаружили взломанную версию своего приложения, сообщите нам.

Материалы по теме

Эта информация оказалась полезной?

Как можно улучшить эту статью?
Поиск
Очистить поле поиска
Закрыть поиск
Главное меню
6230282834230213350
true
Поиск по Справочному центру
true
true
true
true
true
92637
false
false