Статический анализ мобильных приложений

в 9:40, , рубрики: android, application security, mobile security, static code analysis, Аналитика мобильных приложений, информационная безопасность

Статический анализ мобильных приложений - 1

Одним из этапов тестирования мобильного приложения — это статический анализ. Статический анализ приложения — это анализ приложения без выполнения каких либо функций приложения. Наиболее удобным для меня из open source фреймворков есть MobSF. Кому интересно, добро пожаловать под кат.

MobSF выполняет статический анализ приложений: Android, Apple iOS и Windows Phone и динамический анализ: только приложения для Android. Как проводить динамический анализ расскажу в следующей статье посвящённой MobSF. Более подробное описание и мануал по установке можно прочитать по ссылке.

После установки MobSF — выполним следующий батничек для запуска сервера (писал для себя, поэтому диск D).

d:
cd .MobSF
python .manage.py runserver

Дальше нужно перейтипо адресу http[:]//127.0.0.1:8000 и открывается главная страница(Рис. 1). Здесь функционала не много:

  • загрузка файла;
  • просмотреть отчеты по прошедшим сканам;
  • переход на документацию API;
  • переход на GitHub проекта.

Статический анализ мобильных приложений - 2
Рис. 1. Главная страница

После того как файл был загружен и проанализирован, появляется страница с результатом анализа (Рис. 2). Слева меню, которое позволит переходить быстро по всей странице (результат объёмный просто). Какая полезная информация находится на этом скриншоте:

  • хэш-сумма приложения;
  • поддерживаемые версии OS Android;
  • количество и типы компонентов (экспортированный или нет), это важно, так как экспортированные компоненты могут привести к критическим уязвимостям;
  • возможность просмотреть и скачать java- и smali-файлы, которые можно проанализировать другими инструментами или вручную;
  • просмотреть файл манифеста, для анализа.

Статический анализ мобильных приложений - 3
Рис. 2. Результат анализа

Идем далее. На рис. 3 показана информация по сертификату, которым было подписано приложение.

Статический анализ мобильных приложений - 4
Рис. 3. Информация о сертификате

Далее идёт описание анализа permissions, которые описаны в файле AndroidManifest.xml (Рис. 4). MobSF анализирует permissions приложения, определяет его статус, на предмет критичности и описание permissions. Здесь нужно понимать архитектуру OS Android для действительной критичности приложения.

Статический анализ мобильных приложений - 5
Рис. 4. Анализ Android Permissions

На вкладке Security Analysis -> Code Analysis (Рис. 5) показывается результат анализа java-кода статическим анализатором, который определяет потенциальные уязвимости, определяет их критичность и файлы в которых этот тип уязвимости был найден. Во многом эти результаты является являются false positive, но нужно это всё перепроверять.

Статический анализ мобильных приложений - 6
Рис. 5. Анализ кода

Следующая вкладка (Рис. 6) — это анализ файлов, на сервисе virustotal.com. В данном случае файл не определялся как заражённый.

Статический анализ мобильных приложений - 7
Рис. 6. Анализ файла

Вкладка URLs (Рис. 7) выводит список URL-адресов, IP-адресов и файлов в которых они хранятся или вызываются. В этом разделе анализируются куда приложение отправляет данные или куда сохраняет информацию.

Статический анализ мобильных приложений - 8
Рис. 7. Вкладка URLs

Вкладка “Strings” (Рис. 8) проводит анализ текстовых файлов, которые находятся в директории res. При анализе приложения эти файлы могут содержать захардкодженые учетки и другие чувствительные данные. Хотя на моей памяти такого не было.

Статический анализ мобильных приложений - 9
Рис. 8. Анализ текстовых файлов

Вкладка “Components” (Рис. 9) выводит полный список компонентов (activity, service, content provider и receives), импортированные библиотеки и файлы без определения расширения.

Статический анализ мобильных приложений - 10
Рис. 9. Список компонентов

Дополнительно анализ исходного кода можно провести с помощью статического анализатора VCG scanner. Для VCG нужен исходный код. Исходный код можно загрузить через кнопку Download Java Code (Рис. 10). Файл скачивается в ZIP-архиве. Дальше нужно извлечь папку с файлами из архива (Рис. 11).

Статический анализ мобильных приложений - 11
Рис. 10. Скачивание исходного кода

Статический анализ мобильных приложений - 12
Рис. 11. Извлечение исходного кода

Сканирование исходного кода делается следующим образом:

  1. Во вкладке “Settings” выбираем пункт “Java” — рисунок 12.
  2. Во вкладке “File” выбираем “New Target Directory” — рисунок 13.
  3. Во вкладке “Scan” выбираем “Full scan” — рисунок 14.

Статический анализ мобильных приложений - 13
Рис. 12. Выбор исходного кода

Статический анализ мобильных приложений - 14
Рис. 13. Подгрузка директории с файлами

Статический анализ мобильных приложений - 15
Рис. 14. Запуск сканирования

После завершения сканирования сканер выдаёт названия уязвимости, её критичность, краткое описание и место в исходном коде (Рис. 15). Можно получить полный список уязвимостей и сортировать по их критичности (Рис. 16).

Статический анализ мобильных приложений - 16
Рис. 15. Описание уязвимостей

Статический анализ мобильных приложений - 17
Рис. 16. Полный список уязвимостей

Вывод

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

Автор: Skif_1993

Источник

* - обязательные к заполнению поля