Connect with us

Разработка

Начните повышать безопасность своего Android-приложения уже сегодня

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

Опубликовано

/

     
     

Когда дело доходит до разработки мобильных приложений, безопасность может казаться проблемой кого-то другого… но это не так. Как разработчики, мы не всегда имеем опыт в криптографии или информационной безопасности, но мы на переднем крае защиты пользовательских данных. Создаёте ли вы финтех-приложение или простой инструмент для повышения производительности, эти рекомендации помогут снизить риски и укрепить доверие.

Хранение данных: минимизация и шифрование

Не храните то, что не хотите раскрывать.

  • Используйте EncryptedSharedPreferences или EncryptedFile из AndroidX Security вместо обычного SharedPreferences для хранения конфиденциальных данных, таких как токены или персональные данные.
  • Избегайте утечек или регистрации пользовательских данных в таких системах, как New Relic или других инструментах мониторинга.
  • Используйте хранилище Keystore для кастомного шифрования файлов, больших двоичных объектов или потоков данных.
  • Для временных данных предпочтительнее кэширование в оперативной памяти, а не запись на диск.
  • Избегайте утечек памяти: утечки контекстов или долгоживущие ссылки могут непреднамеренно раскрыть конфиденциальные данные в памяти. Используйте такие инструменты, как LeakCanary, для их обнаружения и устранения.

Сетевое взаимодействие: безопасность по умолчанию

Каждый запрос — это потенциальное направление для атаки.

  • HTTPS с TLS 1.2+.
  • Закрепите свои сертификаты с помощью таких инструментов, как TrustKit или CertificatePinner от OkHttp. В приложении KMP вы можете использовать Ktor — технологии могут меняться, но это тема для другой статьи.
  • Удаляйте конфиденциальные заголовки или полезную нагрузку из логов в рабочей среде.
  • Избегайте отправки ролей или разрешений пользователей в параметрах URL — используйте вместо этого защищенные файлы cookie или заголовки для управления доступом и идентификацией на стороне сервера.

Аутентификация и управление сеансами

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

  • Само собой разумеется. Никогда не храните пароли или токены доступа в виде обычного текста.
  • При необходимости используйте биометрическую аутентификацию (BiometricPrompt).
  • Убедитесь, что сеансы истекают после бездействия или выхода из системы. Вы даже можете использовать кратковременные токены, регулярно их менять и аннулировать при выходе из системы или подозрительной активности.

Избегайте реверс-инжиниринга и уязвимостей WebView

Если что-то легко декомпилировать, это легко взломать.

  • Включите R8/ProGuard и обфусцируйте всё, что возможно.
  • ProGuard может быть недостаточным для вашего сценария использования. Рассмотрите возможность использования DexGuard для защиты от реверс-инжиниринга (он платный).
  • Удалите все логи BuildConfig.DEBUG и тестовые флаги в производственных сборках. Рассмотрите возможность использования таких инструментов, как AppShielding или Play Integrity API, для обнаружения взлома или устройств с root-доступом.
  • Используйте уникальные ключи API для каждой платформы/варианта сборки, чтобы минимизировать ущерб от потенциальных утечек. В целом, это очень распространенная проблема.
  • Будьте осторожны с WebView: избегайте включения JavaScript любой ценой. Извините, без извинений. Просто не делайте этого.

Защитите свой конвейер CI/CD

Ваше приложение защищено ровно настолько, насколько безопасен ваш процесс сборки.

Хотите узнать больше?

Продолжите чтение здесь:

Уже чувствуете себя в безопасности?

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

Если вы не знаете, с чего начать, выберите одну область из списка выше и улучшите её в следующем спринте.

Прогресс превыше совершенства.

Источник

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: