Перейти к содержанию

Системы CI/CD

Для встраивания в процесс CI/CD предусмотрен специальный скрипт, в процессе выполнения которого собранное приложение отправляется в систему для анализа. На выходе формируется JSON- или PDF-файл с подробными результатами.

Варианты установки

DockerHub

Можно установить пакет, используя Docker.

docker pull mobilesecurity/mdast_cli:release-version

Примечание

Версия релиза указывается в формате release-version, где release-version — это текущая версия. Пожалуйста, уточняйте эту информацию у вендора, на официальном сайте или на странице в Docker Hub.

Пакетный менеджер pip

Возможно установить пакет, используя pip.

pip install mdast_cli

При таком способе возможно запускать сканирование без указания интерпретатора python при помощи команды mdast_cli, пример:

mdast_cli -h

Во всех примерах ниже будет использован именно такой подход.

Исходный код

Также поддерживается запуск при помощи загрузки исходных файлов и запуска непосредственно основного скрипта:

python3 mdast_cli/mdast_scan.py -h

При таком способе запуска необходимо дополнительно установить пакеты, указанные в файле requirements.txt.

Варианты запуска

На данный момент поддерживается несколько вариантов запуска:

  • анализ приложения, файл которого расположен локально;
  • анализ приложений из Google Play;
  • анализ приложений из RuStore;
  • анализ приложений из App Store;
  • анализ приложений из AppGallery;
  • анализ приложений из Firebase;
  • анализ приложений из системы AppCenter;
  • анализ приложений из системы Nexus Repository 2.x;
  • анализ приложений из системы Nexus Repository 3.x.

Параметры запуска

Параметры запуска зависят от расположения файла приложения, отправляемого на анализ.

Обязательные параметры

  • url — сетевой адрес Стингрей (путь до корня без последнего «/»), при использовании cloud-версии — https://saas.stingray-mobile.ru;
  • token — токен аутентификации, более подробная информация приведена в разделе «Интеграции» Руководства пользователя;
  • distribution_system — способ загрузки приложения, возможные опции: file, google_play, appstore, firebase, appcenter, nexus, nexus2, rustore, appgallery, см. соответствующие разделы, например «Интеграция с Google Play»;
  • company_id — идентификатор компании, в рамках которой осуществляется сканирование.

Опциональные параметры

  • profile_id — идентификатор профиля, для которого проводится анализ, если параметр отсутствует, проект и профиль создаются автоматически;
  • testcase_id — идентификатор тест-кейса, который будет воспроизведен во время анализа; возможен запуск нескольких тест-кейсов, для этого их id перечисляются через пробел. Если параметр не задан, будет запущено и через 30 секунд остановлено сканирование в ручном режиме, после чего данные оправляются на анализ;
  • download_path — путь к папке, в которую скачивается приложение (значение по умолчанию — downloaded_apps);
  • architecture_id — архитектура операционной системы, на которой будет произведено сканирование, если параметр отсутствует, выбор архитектуры осуществляется автоматически (Android 11/iOS 14);
  • nowait — определяющий необходимость ожидания завершения сканирования. Если данный флаг установлен, скрипт не будет дожидаться завершения сканирования, а выйдет сразу же после запуска. Если флаг не установлен, скрипт будет ожидать завершения процесса анализа и формировать отчет;
  • summary_report_json_file_name — имя JSON-файла, в который выгружается информация о сканировании. При отсутствии параметра информация не будет сохраняться в JSON;
  • pdf_report_file_name — имя PDF-файла, в который выгружается информация о сканировании. При отсутствии параметра PDF-отчет сохраняться не будет.

Локальный запуск

Данный вид запуска подразумевает, что файл приложения для анализа располагается локально, рядом (на одной системе) со скриптом. Для выбора этого способа при запуске необходимо указать параметр distribution_system file. В этом случае обязательным параметром необходимо указать путь к файлу file_path.

Для запуска анализа локального файла

mdast_cli --distribution_system file \
  --file_path "/files/demo/apk/demo.apk" \
  --url "https://saas.stingray-mobile.ru" \
  --profile_id 1 \
  --testcase_id 4 \
  --company_id 1 
  --architecture_id 1 \
  --token "token_value"

В результате будет запущен автоматизированный анализ приложения demo.apk с профилем с id 1 и будет запущен тест-кейс с id 4.

Запуск без ожидания завершения сканирования

mdast_cli --distribution_system file \
  --file_path "/files/demo/apk/demo.apk" \ 
  --url "https://saas.stingray-mobile.ru" \
  --profile_id 1 \
  --testcase_id 4 \
  --company_id 1 \ 
  --architecture_id 1 \
  --token "token_value" \
  --nowait

В результате будет запущен автоматизированный анализ приложения demo.apk с профилем id 1 (тест-кейс id 4). Сразу после этого скрипт завершится и отчет генерироваться не будет.

Генерация Summary отчета в формате JSON

mdast_cli --distribution_system file \
  --file_path "/files/demo/apk/demo.apk" \ 
  --url "https://saas.stingray-mobile.ru" \
  --profile_id 1 \
  --testcase_id 4 \
  --company_id 1 \
  --architecture_id 1 \
  --token "token_value" \
  --summary_report_json_file_name json-scan-report.json

В результате будет запущен автоматизированный анализ приложения demo.apk с профилем id 1 (тест-кейс id 4) и по завершении сканирования будет выгружен JSON-отчет с суммарным количеством дефектов и краткой статистикой по сканированию.

К началу