Блог
Уязвимости мобильных приложений: какие бывают и как их устранить
По данным Statista в 2022 году во всем мире количество загрузок мобильных приложений составило 255 млрд. Это увеличило и число хакерских атак.
А так как мобильные приложения имеют уязвимости, разработчики все больше внимания уделяют созданию защищенных продуктов.

Фонд OWASP (некоммерческий фонд по безопасности программного обеспечения) регулярно изучает уязвимости мобильных приложений, в особенности с открытым исходным кодом и составляет списки. В 2011 году OWASP впервые провёл опрос, проанализировал информацию и предоставил её разработчикам. Такая же работа проводилась фондом в 2014 и 2016 годах. Данные за последний год следует учитывать разработчикам при обеспечении безопасности мобильных приложений.
Приведем примеры самых громких кибератак последнего времени.
Довольно известная мошенническая схема – через приложение обеспечивается доступ к бирже для инвестиций в газовую отрасль. Дальше пользователи перенаправляются на поддельный сайт, где якобы формируется инвестиционный капитал. Деньги потом уходят к мошенникам.
Приложение Keto План похудения через несколько дней после установки подключает дорогую подписку, оформляет платные SMS-сервисы.

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

А теперь рассмотрим данные OWASP.
Некорректное использование операционной системы

Эта уязвимость встречается чаще других. При разработке на любой платформе, будь то Android или iOS, нельзя отступать от конкретных требований по обеспечению безопасности. Но иногда разработчики либо пренебрегают этими правилами, либо допускают ошибки.

Приведенные ниже примеры нарушений протоколов безопасности приводят к возможности неавторизованного доступа к устройству:
  • искаженное применение функций iOS Touch ID;
  • неправильное использование iOS Keychain, когда пароли хранятся не в защищённом месте, а в базе приложения;
  • некорректное использование разрешений платформы;
  • открытые запросы в Android, позволяющие неавторизованное выполнение.

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

Риск утечки личной информации

Причины, по которым она может произойти: потеря или кража устройства, атака вредоносных ПО. Но практически все приложения имеют доступ к личным данным.
Как тогда избежать утечки информации?
Во время тестирования приложения выяснять, какая информация о пользователе обрабатывается, и ккак она взаимодействует с API. Так можно определить эффективность шифрования, сберечь код от взлома.
Во время сохранения данных можно использовать дополнительные методы аутентификации. Это могут быть звуковые сигналы при авторизации.

Незащищённые сообщения и тексты

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

Обмен данными между приложениями должен проходить через сеть безопасно, с использованием сервера. Во время шифрования целесообразно использовать надёжные центры сертификации (CA). А также оповещать пользователей о том, что обнаружен поддельный SSL/TLS сертификат, или цепочка сертификатов прервалась.

Обход аутентификации

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

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

Слабая криптография

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

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

Упрощённая авторизация

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

Неправильная реализация кода клиента

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

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

Как еще устранить уязвимость? При помощи автоматизированных инструментов тестировать заполнение буфера и использование памяти, создавать понятный исходный код, документировать. Для его написания использовать согласованные шаблоны.

Использование поддельных версий приложений.

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

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

Разбор приложения хакерами для анализа кода

Эта уязвимость особенно опасна. Она полностью способна изменить код и включить в приложение вредоносную функцию. Хакеры используют инструменты: Hopper, IDA Pro, и другие. Затем опять скомпилируют приложения, чтобы использовать его для своих целей.

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

Заложенная разработчиками дополнительная функциональность приложения

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

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

Вывод

  • В статье – примерный список уязвимостей и способов их устранения. Эта тема подлежит постоянному изучению и анализу.

  • Так как количество загружаемых мобильных приложений с каждым годом увеличивается, то растёт и число уязвимостей. С каждым годом совершенствуется схема хакерских атак.

  • Фонд OWASP постоянно занимается их изучением.

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

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

Для этих действий рекомендуется использовать только проверенные инструменты и работать с надежными подрядчиками.
Оцени эту статью!
Поделиться

Если у вас возникли вопросы или хотите обсудить разработку мобильного приложения

Просто напишите нам или позвоните +7 495 128 0804