Уязвимости в приложениях Android 2019

Уязвимости приложений Android стали проблемой из-за открытого формата Google Play, а также из-за того, что пользователи могут загружать приложения, устраняя любые упущения в отношении безопасности приложений.

Экспертное тестирование мобильных приложений Android показывает, что в большинстве случаев небезопасное хранение данных является наиболее распространенной уязвимостью в приложениях для Android. Согласно отчету, уязвимости и угрозы немного чаще встречаются в приложениях Android, по сравнению с аналогами iOS (43% против 38%). Но эксперты классифицируют эту разницу как минимальную: уровень безопасности приложений примерно одинаков для двух платформ.

Есть два аспекта:

Клиентские уязвимости

Android предоставляет объекты сообщений Intent как способ взаимодействия компонентов приложения друг с другом. Если эти сообщения передаются, любые конфиденциальные данные в них могут быть скомпрометированы вредоносным ПО, которое зарегистрировало экземпляр BroadcastReceiver.

Уязвимости на стороне сервера

Уязвимости серверных компонентов как в коде приложения, так и в механизмах защиты приложения. К последним относятся недостатки в реализации двухфакторной аутентификации. Давайте рассмотрим одну уязвимость, с которой наши эксперты столкнулись в приложении. Если два идентичных запроса отправляются на сервер один за другим с минимальным интервалом между ними, одноразовые пароли (OTP) отправляются на устройство пользователя как в виде push-уведомлений, так и посредством SMS-сообщений на связанный номер телефона. Злоумышленник может перехватывать SMS-сообщения и выдавать себя за законного пользователя, например, путем очистки банковского счета пользователя.

Вот некоторые основные уязвимости

1-бинарная защита: —

Недостаточный джейлбрейк / Root Detection. Рутинг или джейлбрейк устройства обходят схемы защиты данных и шифрования в системе. Когда устройство скомпрометировано, на нем может работать любая вредоносная программа, что может существенно изменить предполагаемое поведение логики приложения. Инструменты восстановления и судебной экспертизы данных, как правило, также работают на корневых устройствах.

Рекомендация:

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

2- Недостаточная защита транспортного уровня: —

Приложениям часто не удается зашифровать сетевой трафик, когда это необходимо для защиты конфиденциальных сообщений. Шифрование должно использоваться для всех аутентифицированных соединений, особенно для веб-страниц, доступных через Интернет. Внутренние соединения также должны быть зашифрованы, иначе существует риск подвергнуть токен аутентификации или сеанса злоумышленникам в той же сети, что и хост приложения. Эти внутренние соединения могут представлять меньшую вероятность эксплуатации, чем соединение через внешний Интернет; однако их влияние в случае эксплуатации может все еще привести к компрометации учетных записей пользователей или еще хуже.

Рекомендация:

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

Убедитесь, что приложение имеет ограничение безопасности, которое определяет конфиденциальность и гарантию защищенности на основе целостности транспорта. Это обеспечит отправку всех данных таким образом, чтобы гарантировать, что они не могут быть просмотрены или изменены во время передачи. Если протокол TLS должен быть прерван на балансировщике нагрузки, брандмауэре веб-приложения или других встроенных хостах, он должен повторно зашифровать данные при передаче на целевой хост (ы).

3-Недостаточная авторизация / аутентификация: —

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

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

Рекомендация:

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

Добавить комментарий

Войти с помощью: