Анализ уязвимостей в Android-приложениях с открытыми сетевыми портами
29 апреля 2017 года
Группа исследователей из Мичиганского университета опубликовала (Архивная копия от 17 мая 2017 на Wayback Machine) доклад о безопасности мобильных приложений для платформы Android, которые открывают сетевые порты в слушающем режиме и принимают на них соединения. Отмечается, что обработка внешних сетевых запросов создаёт угрозу для безопасности мобильных устройств, которая обычно упускается из виду из-за не серверной специфики мобильных приложений. Исследователи разработали специализированную утилиту OPAnalyzer для статического анализа кода, которая выявляет открытие сетевых портов и оценивает наличие типовых уязвимостей в реализации.
Проверка более 100 тысяч приложений из каталога Google Play выявила 1632 программы, принимающие сетевые соединения, половина из которых насчитывает более 500 тысяч загрузок. Исследователи пришли к выводу, что почти половина всех обработчиков сетевых соединений не защищена и может быть использована для организации удалённых атак. Всего при автоматизированной проверке было выявлено 410 уязвимых приложений и 956 потенциальных методов эксплуатации уязвимостей. Вручную было подтверждено наличие уязвимостей в 57 приложениях, в том числе очень популярных, насчитывающих от 10 до 50 млн загрузок и предустанавливаемых на смартфоны некоторых производителей.
Выявленные уязвимости позволяют через отправку запросов на открытый приложением сетевой порт получить доступ к контактам и фотографиям, перехватить параметры аутентификации, установить вредоносное ПО, выполнить свой код на устройстве или отправить SMS на платный сервис. Уязвимости разделены на две категории: ошибки реализаций (например, отсутствие экранирования спецсимволов и ".." в путях) и вредоносные закладки (например, вшитый в приложения инженерный пароль для удалённого доступа).
По решаемым задачам обработчики внешних соединений в мобильных приложениях разделены на пять категорий: организация совместного доступа к данным (69.3%), прокси-сервисы (6.3%), удалённое выполнение операций (6.5%), приём VoIP-вызовов (2.3%) и приложения на базе платформы PhoneGap (14.6%). 60% уязвимостей при организации совместного доступа к данным связаны с ненадлежащим механизмом аутентификации клиента или её отсутствием. Основная проблема с прокси, которые обычно применяются в таких приложениях как фильтры содержимого и блокировщики рекламы, связана с ненадлежащим контролем доступа, что позволяет использовать их как усилитель DDoS-атак, для заметания следов или выделения прокэшированного контента.
Удалённое выполнение операций связано с предоставлением интерфейсов для выполнения определённых действий на телефоне, например отправки SMS с ПК или обращения к хранилищу. Гибридные приложения на базе фреймворка PhoneGap (Apache Cordova) разделены на бэкенд и фронтенд, который оформляется на JavaScript/HTML5. Обработчик PhoneGap должен привязываться к внутреннему сетевому интерфейсу, но по ошибке часто прикрепляется и к внешнему интерфейсу, при этом запросы аутентифицируются по UUID, и вероятность атаки через PhoneGap оценивается как маловероятная.
Для демонстрации возможных методов эксплуатации исследователи подготовили (Архивная копия от 10 октября 2020 на Wayback Machine) несколько сценариев атак:
- Доступ (Архивная копия от 10 октября 2020 на Wayback Machine) к фотографиям атакующим в локальной сети, выполнившим сканирование доступных в сети устройств:
- Доступ (Архивная копия от 10 октября 2020 на Wayback Machine) к фотографиям из вредоносного приложения, имеющего только право установки сетевых соединений:
- Инициирование (Архивная копия от 10 октября 2020 на Wayback Machine) отправки платных SMS при клике на ссылку в браузере:
- Перехват (Архивная копия от 10 октября 2020 на Wayback Machine) параметров аутентификации при работе пользователя с внешним сервисом:
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.