Возможное решение
Как я могу усложнить этот процесс для злоумышленника
Возможным решением вашей проблемы является использование решения для аттестации мобильных приложений, чтобы во время выполнения гарантировать, что ваше мобильное приложение не подвергается атаке MitM, не подделывается, не работает на корневом устройстве, не подключено к отладчику и не Инструментальные рамки присутствуют. Это достигается путем запуска SDK в фоновом режиме, который будет связываться со службой, работающей в облаке, для подтверждения целостности мобильного приложения и работающего устройства. SDK в мобильном приложении не принимает никаких решений о целостности приложения или мобильного устройства, которые принимаются в облачной службе на основе измерений, предоставляемых мобильным приложением.
Таким образом, при успешной аттестации целостности мобильного приложения облачной службой краткосрочный токен JWT выпускается и подписывается секретом, который известен только серверу API и службе аттестации мобильных приложений в облаке. В случае сбоя при аттестации мобильного приложения токен JWT подписывается секретом, который не известен серверу API.
Теперь приложение должно отправлять с каждым вызовом API токен JWT в заголовках запроса. Это позволит серверу API обслуживать запросы только тогда, когда он может проверить подпись и время истечения срока действия в токене JWT, и отклонить их, если проверка не пройдена.
Если секрет, используемый службой аттестации мобильных приложений, не известен мобильному приложению, его невозможно реконструировать во время выполнения, даже если приложение взломано, работает на корневом устройстве или обменивается данными через соединение, которое является Цель атаки Человека посередине.
Таким образом, это решение работает в модели положительного обнаружения без ложных срабатываний, таким образом, не блокируя законных пользователей и удерживая плохих парней в страхе.
Любые идеи?
Вы можете попробовать внедрить собственное решение или поискать существующее решение SAAS для аттестации мобильных приложений, например Approov(я здесь работаю), которая предоставляет SDK для нескольких платформ, включая iOS, Android, React Native и другие. Для интеграции также потребуется небольшая проверка в коде сервера API для проверки токена JWT, выданного облачной службой. Эта проверка необходима для того, чтобы сервер API мог решить, какие запросы обслуживать, а какие отклонять.
Резюме
В конце концов, решение для защиты вашего API-сервера и мобильного приложения должно быть выбрано в соответствии с ценностью того, что вы пытаетесь защитить, и юридическими требованиями для этого типа данных, такими как правила GDPR в Европе.
Пройдя лишнюю милю
Кажется, вы занимаетесь безопасностью мобильных приложений. Могу ли я порекомендовать вам:
Проект OWASP Mobile Security — 10 основных рисков
Проект OWASP Mobile Security — это централизованный ресурс, предназначенный для предоставления разработчикам и группам безопасности ресурсов, необходимых им для создания и обслуживания безопасных мобильных приложений. В рамках проекта наша цель состоит в том, чтобы классифицировать риски безопасности мобильных устройств и обеспечить контроль разработки, чтобы уменьшить их влияние или вероятность использования.
person
Exadra37
schedule
10.05.2019