Частые обновления, сложные бэкэнд и богатые функциями приложения Android выпускаются в крупные магазины приложений каждый день. Тем не менее, многие приложения становятся жертвами атак кибербезопасности, прежде чем они даже получат шанс расцвести.
Мобильные приложения могут использоваться сотрудниками, заинтересованными сторонами и клиентами, поэтому существуют различные векторы угроз и поддержание безопасности мобильного приложения и бэкэнд -услуг сегодня обязательно для предприятий.
Некоторые из общих мобильных подвигов безопасности, влияющих на приложения Android, являются:
• Слабая аутентификация и авторизация. • Уязвимости безопасности на серверах, сетях, сторонних библиотеках и интегрированных браузерах • Недостатки впрыска, такие как инъекция SQL • Уязвимости по перекрестному сайту (XSS) • Воздействие конфиденциальной информации
Реализация безопасности приложений начинается с самого начала с требований, проектирования и в течение всего жизненного цикла разработки программного обеспечения (SDLC).
Каковы соображения безопасности для мобильных приложений Android?
Чтобы помочь вам обеспечить безопасность в вашем приложении Android, вот контрольный список Android App Security, чтобы начать работу с соображениями безопасности для разработки, тестирования и выпуска безопасных приложений Android.
Контрольный список мобильных приложений: Что вам нужно сделать, прежде чем запустить приложение для Android
Этот контрольный список безопасности мобильных приложений может помочь вам начать работу по обеспечению безопасности приложений.
Конечно, у вас должны быть эксперты по безопасности провести более тщательный обзор, так как этот контрольный список безопасности приложения охватывает в основном основы.
#1. Защитите хранение данных с помощью шифрования и использования хранилища ключей
Безопасность хранения данных играет решающую роль в безопасности приложений Android. Вы будете хранить данные на разных устройствах, сетях или системах по разным причинам, и эти данные мобильного приложения могут включать конфиденциальную информацию, такую как информация о кредитной карте, учетные данные пользователя или многое другое.
Вы должны убедиться, что данные, которые вы храните, безопасны и зашифрованы, чтобы предотвратить потерю данных.
Рассмотрите возможность использования Android Store, который обеспечивает доступ к безопасному местоположению для хранения конфиденциальных данных, таких как криптографические ключи или учетные данные пользователя. Когда ключ генерируется в защищенном оборудовании, вы также можете указать элементы управления доступа для защиты использования ключа.
Кроме того, убедитесь, что не отображается конфиденциальная информация через пользовательский интерфейс мобильного приложения или обнажается с помощью механизмов IPC (межпроцесс-связи). Кроме того, конфиденциальная информация не должна быть записана в журналы приложений или совместно с третьими лицами, если она не является неотъемлемой частью архитектуры, и эти взаимодействия тесно контролируются.
#2. Безопасное взаимодействие с платформой путем настройки просмотров веб —
Важно, чтобы мобильное приложение использовало стандартные компоненты и API платформы безопасным образом. Для этого убедитесь, что мобильное приложение запрашивает только минимальный набор необходимых разрешений.
Все входы от пользователя и внешних источников должны быть проверены и продезинны при необходимости. Это включает данные, полученные от механизмов МПК, таких как сетевые источники, пользовательские URL -адреса или намерения.
Убедитесь, что мобильное приложение не экспортирует критические функции с помощью средств МПК или пользовательских схем URL -адреса, если они не защищены надлежащим образом. Проверьте, настроены ли WebViews, чтобы разрешить только минимальный набор требуемых обработчиков протокола. Потенциально вредные обработчики, такие как APP-ID, TEL и FILE, должны быть отключены.
Убедитесь, что хранилище WebView, загруженные ресурсы и кэш должны быть очищены до того, как WebView будет уничтожен. Если нативные методы мобильного приложения подвергаются воздействию WebView, он должен отображать только JavaScript, содержащийся в пакете приложения.
Кроме того, реализация сериализации объектов с помощью API безопасной безопасной сериализации также помогает поддерживать безопасное взаимодействие платформы.
#3. Используйте криптографию для поддержания безопасности мобильных приложений
Криптография является важным аспектом обеспечения данных пользователя, особенно в мобильной среде, где злоумышленники могут иметь физический доступ к мобильному устройству. Цель использования криптографии состоит в том, чтобы поддерживать подлинность данных, целостность и конфиденциальность, даже при атаке.
Разработчики Android должны знать о поставщиках безопасности Java Cryptography Architecture (JCA), которое использует программное обеспечение. Они должны рассмотреть возможность использования самого высокого уровня ранее существовавшей структуры безопасности приложения, которая может поддержать вариант использования их приложения.
Убедитесь, что мобильное приложение использует проверенные методы криптографических примитивов (такие как односторонние хэш-функции, цифровые подписи) и не зависят исключительно от симметричной криптографии с жестко-кодированными клавишами в качестве единственного процесса шифрования. (Не используйте твердые клавиши !!!) Убедитесь, что мобильное приложение не использует криптографические алгоритмы или протоколы, которые считаются устаревшими по соображениям безопасности.
Используйте разные криптографические ключи для нескольких целей, чтобы поддерживать безопасность мобильных приложений. Убедитесь, что клавиши используются для конкретных целей, а не один ключ, который все шифрует. Используйте несколько ключей, чтобы минимизировать радиус взрыва, если ключ скомпрометирован.
Кроме того, убедитесь, что все случайные значения создаются с использованием безопасного генератора случайных чисел. Используя магазин Key Store, который предлагает механизм хранения и поиска криптографических клавиш, помогает сохранить ключи для повторного использования без особых хлопот.
#4. Реализовать сильные элементы управления аутентификацией
Контрольный список безопасности приложения Android не завершен без лучших практик аутентификации. Аутентификация — это процесс проверки личности пользователя, чтобы определить, являются ли они тем, кем они утверждают. Если пользователи мобильных приложений с удаленными службами интегрируют приемлемая форма аутентификации, такую как имя пользователя и пароль в удаленной конечной точке.
Создайте сильную политику паролей для вашего мобильного приложения, которая включает в себя строгие рекомендации, по которым должны следовать пользователи. Попросите их использовать длинные пароли или пассажирские фразы, которые ранее не были скомпрометированы. Кроме того, если пользователь представляет неправильные учетные данные аутентификации более чем в определенном количестве раз, его следует временно заблокировать от дальнейшего доступа к учетной записи или попросить предоставить больше информации, чтобы доказать свою личность.
Схему аутентификации могут быть дополнены пассивной контекстной аутентификацией, включая IP -адрес, геолокацию, используемое устройство и время суток.
В идеале, в такой системе аутентификации контекст пользователя сравнивается с ранее записанными данными для обнаружения аномалий, которые могут указывать на потенциальное мошенничество или злоупотребление счетами.
Кроме того, мобильное приложение должно также информировать пользователя о последних действиях, таких как попытки входа в систему, транзакции и т. Д.
Используйте многофакторную аутентификацию, которая обычно включает одноразовые пароли с помощью токенов на основе времени или электронной почты по зарегистрированным контактным данным, безопасным токенам, контакты, биометрическую аутентификацию и многое другое для проверки идентификации пользователя.
#5. Использование сертификатов TLS для защиты передачи данных
Безопасность сети в приложениях Android по своей сути рискованна, поскольку она включает в себя передачу данных, которые потенциально являются личными для пользователя (и обратно на серверы).
Мобильные пользователи все чаще знакомы с проблемами конфиденциальности и безопасности мобильных приложений, особенно если приложение Android выполняет транзакции по всей сети, поэтому важно, чтобы ваше мобильное приложение реализовало все лучшие методы безопасности мобильных приложений для обеспечения безопасности данных пользователя.
Data-In Transit должен быть защищен, что означает, что отправка/получение и сохраненные данные внутри вашего приложения должны быть закреплены с помощью TLS или VPN-коммуникации туннеля.
Наличие этих сертификатов и процессов, интегрированных в сеть вашего приложения, помогает последовательно создавать безопасный канал по всему мобильному приложению.
Например, безопасность транспортного уровня (TLS) помогает шифровать данные при перемещении в сеть. Настройки TLS в идеале должны следовать передовым методам или как можно ближе к рекомендуемым стандартам, если мобильная операционная система не поддерживает стандартную практику.
Атаки, которые могут быть вызваны из входных данных по МПК или сети при использовании собственного кода, следует правильно управлять управлением буферами и обработки указателей. Когда устанавливается защищенный канал, мобильное приложение должно проверить сертификат X.509 удаленной конечной точки. Принимаются только сертификаты, подписанные доверенным CA. Предпочтительно, прикрепите сертификаты.
Понимание защиты мобильных приложений
Никакие конфиденциальные данные приложения не должны быть включены в резервные копии, генерируемые операционной системой мобильной связи. Кроме того, приложение Android не должно хранить какие -либо конфиденциальные данные в памяти дольше, чем требуется, и память должна быть четко явно после использования.
Приложение Android должно обеспечить минимальную политику безопасности устройств, которая требует, чтобы пользователь установил пароль устройства. Токены и сеансы доступа должны быть признаны недействительными в удаленной конечной точке после того, как пользователь вышел из приложения или после предопределенного периода времени.
В дополнение к этому, мобильное приложение не должно полагаться только на один канал небезопасной связи (SMS или электронная почта) для конфиденциальных операций, таких как восстановление учетной записи, конфиденциальные транзакции или регистрация.
Приложение также должно быть в состоянии обнаружить, работает ли оно на корневом устройстве, и в зависимости от бизнес -требований, либо приложение должно быть прекращено, либо пользователей следует предупреждать, если устройство рутировано.
Мобильное приложение должно уведомить пользователей обо всех действиях входа в систему по электронной почте или SMS, предоставляя им список устройств, используемых для доступа к их учетной записи, времени и местоположения, откуда доступ к приложению, и дайте возможность блокировать определенные устройства.
Готово ли ваше приложение к запуску?
Поддержание безопасности мобильных приложений настоятельно рекомендуется, поскольку количество кибератак, нацеленных на мобильные приложения, постоянно повышается. Этот контрольный список Android Application Security поможет вам убедиться, что ваше приложение следует за лучшими методами безопасности и защищает ваших пользователей от становления жертвой кибератаки.
Важно быть знакомым с лучшими практиками безопасности Android и следить за ними, поскольку они уменьшают возможность введения проблем безопасности мобильных приложений, которые могут повлиять на ваших пользователей.
Этот пост был первоначально опубликован в CypressDataDefense.com .
Оригинал: «https://dev.to/joywinter90/pre-launch-android-app-security-checklist-4a69»