Анализ уязвимостей в Android-приложениях с открытыми сетевыми портами

4 месяца ago admin 0

Группа исследователей из Мичиганского университета опубликовала доклад о безопасности мобильных приложений для платформы 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% уязвимостей при организации совместного доступа к данным связаны с ненадлежащим механизмом аутентификации клиента или её отсутствием. Прокси обычно применяются в таких приложениях как фильтры содержимого и блокировщики рекламы, основная проблема с этими сервисами связана с ненадлежащим контролем доступа, что может использоваться как усилитель для DDoD-атак, заметания следов или выделения прокэшированного контента.

Удалённое выполнение операций связано с предоставлением интерфейсов для выполнения определённых действий на телефоне, например, отправки SMS с ПК или обращения к хранилищу. Гибридные приложения на базе фреймворка PhoneGap (Apache Cordova) разделены на бэкенд и фронтэнд, который оформляется на JavaScript/HTML5. Обработчик PhoneGap должен привязываться на внутреннем сетевом интерфейсе, но по ошибке часто прикрепляется и к внешнему интерфейсу, при этом запросы аутентифицируются по UUID и вероятность атаки через PhoneGap оценивается как маловероятная.

Для демонстрации возможных методов эксплуатации исследователи подготовили несколько сценариев атак:

  • Доступ к фотографиям атакующим в локальной сети, выполнившим сканирование доступных в сети устройств:
  • Доступ к фотографиям из вредоносного приложения, имеющего только право установки сетевых соединений:
  • Инициирование отправки платных SMS при клике на ссылку в браузере:
  • Перехват параметров аутентификации при работе пользователя с внешним сервисом:


Source: pirates.in.ua