Интеграция с Google Play
Интеграция с Google Play осуществляется через mdast_cli.
Сбор необходимых параметров
Примечание
Поскольку передача учётных данных осуществляется в незащищённом виде, для интеграции с Google Play следует использовать специально выделенный для этих целей сервисный Google-аккаунт. Двухфакторная аутентификация для аккаунта должна быть отключена.
Аутентификация в Google Play выполняется с помощью токена. Поддерживаются два варианта:
OAuth2 Token(значение видаoauth2_4/…) — используется при первом запуске. По нему скрипт автоматически получает AAS-токен;AAS Token(значение видаaas_et/…) — используется при последующих запусках вместо OAuth2-токена, что позволяет избежать повторной аутентификации.
Внимание
Требуется токен аутентификации Android-устройства в Google, а не OAuth2-токен из Google Cloud Console: значение вида ya29.… из GCP в этом сценарии не подойдёт. Токены OAuth2 Token и AAS Token являются секретами — храните их в защищённом хранилище секретов CI/CD (например, Vault, переменные GitLab CI) и не размещайте в репозитории или в открытых логах пайплайна.
Получение OAuth2-токена. Чтобы получить OAuth2 Token:
- В браузере войдите под сервисным Google-аккаунтом, который будет использоваться для интеграции.
- Откройте embedded-страницу входа Google: https://accounts.google.com/EmbeddedSetup — и пройдите вход (адрес электронной почты и пароль).
- Откройте инструменты разработчика браузера (DevTools), перейдите на вкладку Application и выберите пункт Cookies.
- Скопируйте значение cookie oauth_token для домена
google.com(значение начинается сoauth2_4/).
Полученное значение передаётся в параметре --google_play_oauth2_token.
При запуске скрипта обязательно передаются следующие параметры:
distribution_system— для Google Play указывается значениеgoogle_play;-
google_play_package_name— имя скачиваемого пакета. Чтобы узнать имя пакета приложения, откройте его страницу в Google Play — имя пакета является частью URL (параметрid);
-
google_play_email— адрес электронной почты аккаунта Google; - токен аутентификации —
google_play_oauth2_token(при первом запуске) илиgoogle_play_aas_token(при последующих запусках).
Дополнительно можно указать необязательные параметры:
google_play_file_name— имя, с которым будет сохранён скачиваемый файл;google_play_proxy— конфигурация прокси.
Получение AAS-токена. При первом запуске передайте адрес электронной почты и OAuth2-токен в параметре --google_play_oauth2_token. По нему скрипт автоматически получит долгоживущий AAS-токен и выведет его в лог в виде строки AAS token: aas_et/…. Скопируйте это значение — в дальнейшем его следует передавать в параметре --google_play_aas_token вместо OAuth2-токена.
Пример первого запуска (получение AAS-токена по OAuth2-токену).
mdast_cli -d \
--distribution_system google_play \
--google_play_package_name org.telegram.messenger \
--google_play_email ********@gmail.com \
--google_play_oauth2_token "oauth2_4/********"
Пример запуска скрипта
Примечание
Более подробная информация об остальных параметрах запуска скрипта приведена в разделе «Системы CI/CD/Параметры запуска».
После сбора необходимых параметров можно, запустив скрипт, скачать приложение и начать его ручное сканирование. Для повторных запусков используется сохранённый AAS-токен.
python mdast_cli/mdast_scan.py \
--profile_id 1337 \
--architecture_id 1 \
--distribution_system google_play \
--url "https://saas.mobile.appsec.world" \
--company_id 1 \
--token 5d5f6c98*********487a68ee20d4562d9f \
--google_play_package_name com.instagram.android \
--google_play_email ********@gmail.com \
--google_play_aas_token "aas_et/********" \
--google_play_file_name best_apk_d0wnl04d3r
В результате приложение будет скачано в папку downloaded_apps под именем best_apk_d0wnl04d3r.apk, а также запустится ручное сканирование.
Примечание
Если приложение опубликовано в формате split apk, будет скачан zip-архив, который также может использоваться для проведения DAST-анализа.