Moatgator Shield
Укрепите каждую сборку до выпуска.
Обфускация кода и строк, защита от модификации и проверки целостности, добавляемые в ваш конвейер сборки через pull request.
Сделайте реверс-инжиниринг дорогим.
Атакующие начинают с чтения вашего приложения. Shield переписывает скомпилированное приложение так, что логику, эндпоинты и секреты гораздо сложнее прочитать, изменить и перепаковать, не трогая ваш исходный код.
- Обфускация кода и строк
- Защита от модификации и проверки целостности
- Файлы маппинга сохраняются для читаемых отчётов о сбоях
Что делает Shield
01
Обфускация имён и кода
Переименовывает классы, методы и поля и перестраивает поток управления, так что декомпилированный результат мало говорит атакующему о том, как устроено приложение.
02
Шифрование строк
В Android эндпоинты, ключи и другие чувствительные строки шифруются при сборке и расшифровываются только тогда, когда нужны.
03
Целостность и защита от модификации
Приложение проверяет собственный код и подпись во время работы и реагирует, если запускается изменённая или переподписанная копия.
04
Диверсификация по сборкам
Защита меняется от сборки к сборке, поэтому обход, написанный для одного релиза, не работает в следующем.
05
Защита ассетов и ресурсов
Встроенные ассеты и ресурсы защищены, поэтому их нельзя просто распаковать и использовать в другом месте.
06
Читаемые отчёты о сбоях
Для каждой сборки создаётся файл маппинга, работающий с Crashlytics, Sentry и Play Console для деобфускации stack trace.
Как Shield вписывается в ваш релиз
- 1
Защита в вашем конвейере
Pull request добавляет Moatgator в вашу сборку Android или iOS (бета). Защита применяется к скомпилированному приложению, а не к исходному коду.
- 2
Подписываете вы, как и раньше
Moatgator возвращает неподписанный артефакт. Ваш конвейер выравнивает и подписывает его, поэтому ключи и сертификаты остаются у вас.
- 3
Знайте цену
Каждая сборка сообщает о влиянии на размер приложения и время запуска, чтобы вы настроили, что включать.
shield: android: obfuscation: names + control-flow string_encryption: true asset_protection: true integrity: signature + code diversify_per_build: true report: [size, startup] # impact per buildЧто охватывает Shield
Android
- Переименование классов, методов и полей
- Обфускация потока управления
- Шифрование строк
- Защита ресурсов и ассетов
- Проверки целостности и подписи
iOS (бета)
- Укрепление имён, строк и символов
- Переподпись в вашем собственном конвейере
- Сертификаты и профили остаются у вас
Фреймворки
- React Native с защитой бандла Hermes
- Expo через пользовательскую функцию EAS Build
- Flutter с обнаружением во время работы; код на Dart защищается собственной обфускацией Flutter
Часто задаваемые вопросы
Меняет ли Shield мой исходный код?
Нет. Он работает со скомпилированным приложением внутри вашего конвейера сборки, через pull request, который вы проверяете.
Замедлит ли защита приложение или сделает его больше?
Защита добавляет некоторые накладные расходы. Каждая сборка сообщает о влиянии на размер приложения и время запуска, так что вы видите стоимость и настраиваете, какие защиты включать.
Храните ли вы мои ключи подписи?
Нет. Moatgator возвращает неподписанный артефакт, а подписывает его ваш собственный конвейер. Ключи, сертификаты и provisioning profiles остаются у вас.
Работает ли это с React Native, Expo и Flutter?
Да. Бандлы React Native, собранные с Hermes, защищаются, а Expo работает через пользовательскую функцию EAS Build. Приложения Flutter получают обнаружение во время работы через наш плагин; Moatgator не обфусцирует код на Dart, поэтому оставьте включённым флаг --obfuscate самого Flutter.
Останутся ли отчёты о сбоях читаемыми?
Да. Для каждой сборки создаётся файл маппинга, и он работает с Crashlytics, Sentry и Play Console для деобфускации stack trace.
Достаточно ли одной обфускации?
Нет. Обфускация повышает стоимость анализа, но не останавливает решительного атакующего. Сочетайте Shield с Runtime, который обнаруживает модификацию и инструментирование во время работы приложения.
Готовы защитить своё приложение?
Начните бесплатно или расскажите, что вам нужно.