Уязвимости приложений Android стали проблемой из-за открытого формата Google Play, а также потому, что пользователи могут посадить приложения, удаляя любой контроль в области безопасности приложений.
Экспертное тестирование мобильных приложений Android показывает, что в большинстве случаев небезопасный хранение данных является наиболее распространенным недостатком безопасности в приложениях Android. Согласно отчету, уязвимости и угрозы немного чаще встречаются в приложениях Android по сравнению с аналогами IOS (43% против 38%). Но эксперты классифицируют эту разницу как минимальное: уровень безопасности приложений примерно эквивалентен двумя платформами.
Есть два аспекта: —
Уязвимости на стороне клиента
Android предоставляет объекты Mentent Message как путь для компонентов приложения для взаимодействия друг с другом. Если эти сообщения транслированы, любые конфиденциальные данные в них могут быть скомпрометированы вредоносными программами, которые зарегистрировали экземпляр широковещательной.
Уязвимости на стороне сервера
Уязвимости компонентов на стороне серверов как в применении, так и в механизмах защиты приложений. Последнее включает недостатки в реализации двухфакторной аутентификации. Рассмотрим одну уязвимость наши специалисты, встречающиеся в приложении. Если два идентичных запроса отправляются на сервер один сразу после другого, с минимальным интервалом между ними, одноразовые пароли (OTP) отправляются на устройство пользователя как в качестве push-уведомлений, так и через SMS на связанный номер телефона. Злоумышленник может перехватить SMS-сообщения и осимировать законный пользователь, например, путем очистки банковского счета пользователя.
Вот несколько главных уязвимостей-
1-дюймонарная защита: —
Недостаточный джейлбрейк/корневое обнаружение. Укоренив или джейлбрейка, устройство обрабатывает защиту данных и шифрования схем в системе. Когда устройство было скомпрометировано, любая форма вредоносного кода может работать на устройстве, что может значительно изменить предполагаемое поведение логики приложения. Рекаверические и данные о судебно-медицинских инструментах обычно работают на корневых устройствах.
Рекомендация: — Что касается безопасности, лучше не иметь приложения, запущенного на укоренившихся устройствах, или хотя бы сделать некоторую форму обнаружения корня/джейлбрейка. Обнаружение того, было ли устройство скомпрометировано устройство, добавляет дополнительный уровень защиты политики и смягчения последствий для защиты данных в приложении от воздействия.
2- Недостаточный транспортный слой защиты: —
Приложения часто не смогут зашифровать сетевой трафик, когда необходимо защитить чувствительные связи. Шифрование должно использоваться для всех аутентифицированных подключений, особенно доступных в Интернете веб-страницы. Бэкэндские соединения также должны быть зашифрованы, или риск воздействия аутентификации или токена сеанса к злоумышленникам в той же сети, что и хост приложения. Эти обратные соединения могут представлять более низкую вероятность эксплуатации, чем соединение по внешнему Интернету; Однако их влияние в случае эксплуатации может по-прежнему может привести к компромиссу учетных записей пользователей или хуже.
Рекомендация:-
Шифрование должно использоваться всякий раз, когда конфиденциальные данные, такие как кредитная карта или информация о здоровье, передается. Приложения, которые возвращаются к открытому тексту или иным образом вытесненные из режима шифрования, могут быть злоупотреблены злоумышленниками.
Убедитесь, что приложение имеет ограничение безопасности, которое определяет конфиденциальность и гарантийную гарантию на основе целостности. Это гарантирует, что все данные отправляются таким образом, чтобы гарантировать, что она не может наблюдаться или изменяться во время передачи. Если TLS должен быть расторгнут при балансировке нагрузки, брандмауэре веб-приложений или других линейных хостов, он должен повторно зашифровать данные в транзите к целевому хосту (ы).
3-недостаточное разрешение/аутентификация: —
Недостаточные результаты авторизации Когда приложение не выполняет адекватные проверки авторизации, чтобы убедиться, что пользователь выполняет функцию или доступ к данным в соответствии с политикой безопасности.
Процедуры авторизации должны обеспечить выполнение того, что разрешено делать пользователя, сервис или приложение. Когда пользователь аутентифицирован на веб-сайте, он не обязательно означает, что пользователь должен иметь полный доступ ко всем контенту и функциональности.
Рекомендация: — обеспечить обеспечение проверенной рамочной схемой авторизации, которая подчеркивает файлы конфигурации на основе политики на жесткокодируемых проверках аутентификации/авторизации, где это возможно.
Чтобы узнать о более уязвимых — https://codersera.com/blog/top-7-vulnerabilities-in-android-applications-2019/
Оригинал: «https://dev.to/johnathonroy5/vulnerabilities-in-android-applications-2019-48jl»