Есть ли способ в Android Studio, чтобы сделать наше приложение устойчивым к взлому? - PullRequest
0 голосов
/ 22 февраля 2019

Я разработал приложение для Android из Android Studio (Java), содержащее рекламу Admob (Google).

Меня беспокоит то, что любой пользователь, скачавший мое приложение, может легко отключить все объявления с помощью таких модов, как Lucky Patcher.или измените мой APK, открыв его с приложениями, похожими на ShowJava.

Как определить, было ли наше приложение подделано или незаконно использовано путем изменения содержимого, например удаления рекламы?

1 Ответ

0 голосов
/ 13 марта 2019

Как я могу определить, было ли наше приложение подделано или незаконно использовано путем изменения содержимого, например удаления рекламы?

Да, оно существует и называется Аттестацией мобильных приложений и применяется только длямобильное приложение, которое связывается с сервером API под вашим контролем.

Прежде чем мы продолжим, я хотел бы прояснить разницу между WHO и ЧТО осуществляет доступ к серверу API.

КТО И ЧТО ДОСТУПАЕТ К СЕРВЕРУ API

WHO - это пользователь мобильного приложения, которое можно аутентифицировать, авторизовывать и идентифицировать несколькими способами, например, используяOpenID или OAUTH2.

Теперь вам нужен способ определить, ЧТО вызывает ваш API-сервер, и здесь все становится сложнее, чем может подумать большинство разработчиков. ЧТО - это то, что делает запрос к серверу API, действительно ли это ваше подлинное мобильное приложение, или это робот, автоматизированный скрипт или злоумышленник, вручную копающийся в вашем API-сервере с помощью такого инструмента, как Postman?

Хорошо, чтобы определить ЧТО разработчики склонны прибегать к API-ключу, который обычно они жестко кодируют в коде своего мобильного приложения, а некоторые прилагают дополнительные усилия и вычисляют его во время выполненияв мобильном приложении, таким образом, становится динамическим секретом, в отличие от прежнего подхода, который представляет собой статический секрет, встроенный в код.

АТТЕСТАЦИЯ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ

Использование решения для аттестации мобильных приложенийдать возможность серверу API узнать, ЧТО отправляет запросы, что позволяет отвечать только на запросы от подлинного мобильного приложения, отклоняя все другие запросы из небезопасных источников.

Моя проблемаЛюбой пользователь, который скачает мое приложение, может легко отключить все объявления, используя такие моды, как Lucky Patcher или редактируя мой APKдобавление в него приложений, подобных ShowJava.

Роль службы аттестации мобильных приложений заключается в том, чтобы во время выполнения гарантировать, что ваше мобильное приложение не было взломано или не запущено на корневом устройстве с помощью SDK.в фоновом режиме, который будет взаимодействовать со службой, работающей в облаке, чтобы подтвердить целостность мобильного приложения и работающего устройства.Именно здесь вы получите защиту от приложений LuckyPatcher и ShowJava, после того как они подделали ваш оригинальный apk, приложение больше не будет проходить проверку целостности облачной службы, что позволит вашему API-серверу отклонять запросы от подделанного мобильного приложения..

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

Теперь приложение должно отправлять при каждом вызове API токен JWT в заголовках запроса.,Это позволит серверу API обслуживать запросы только тогда, когда он может проверить подпись и время истечения срока действия в токене JWT и отклонить их, если он не прошел проверку.

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

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

Служба аттестации мобильных приложений уже существует как решение SAAS на Approov (я работаю здесь), который предоставляет SDK для нескольких платформ, включая iOS, Android, React Native и другие.Для интеграции также потребуется небольшая проверка кода сервера API для проверки токена JWT, выпущенного облачной службой.Эта проверка необходима для того, чтобы сервер API мог решать, какие запросы обслуживать, а какие отклонять.

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