AppScreener

Коммерческий сканер для анализа кода и сервисов компании

Образ с интеграцией:

registry.cybercodereview.ru/cybercodereview/security-images/appscreener:1.1.0

Кастомные импортеры для каждого типа анализа:

Ниже представлены файлы-импортеры. Их нужно загрузить согласно инструкции

В данной интеграции управление сканированиями реализовано через API AppScreener.

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

  • APPSCREENER_HOST - хост, на котором развернута инсталяция со сканером

  • APPSCREENER_API_KEY - API ключ для доступа к API интерфейсу сканера (данную переменную рекомендуется задавать в docker-compose или helm-чартах аудитора, а не в Задании)

Остальные переменные окружения пробрасываются автоматически из ASOC:

  • REPOSITORY - URL репозитория для сканирования в git/https форматах (в случае с SAST или SCA сканированиями)

  • PRIVATE_SSH_KEY - SSH-ключ для скачивания репозитория из VCS (в случае с SAST или SCA сканированиями). Можно также указать кастомные учетные данные для скачивания репозиториев; об этом позже.

  • DOMAIN - домен для выполнения динамического анализа (DAST).

В случае, если запуск интеграции производится вне ASOC, данные переменные необходимо будет указать самостоятельно.

Для запуска сканирования через Задание в ASOC в самом простом случае достаточно будет указать команду:

# Так как сканер нетипичный, нужен переход в корень cd / # SAST сканер, требуется переменная окружения REPOSITORY python3 app.py --work_mode sast # SCA сканер, требуется переменная окружения REPOSITORY python3 app.py --work_mode sca # DAST сканер, требуется переменная окружения DOMAIN python3 app.py --work_mode dast

Указание нужного типа сканирования инициирует соответствующий тип сканирования в AppScreener.

—work_mode - единственный обязательный параметр при запуске сканирования.

Для вывода всех возможных параметров, можно воспользоваться командой help:

python3 app.py -h

Все возможные опции для конфигурации сканирования:

options: -h, --help show this help message and exit --work_mode {sast,sca,dast} Режимы работы: sast - анализ уязвимостей, sca - анализ библиотек, dast - динамический анализ --sast_preset SAST_PRESET Выбор преднастроенного пресета для выполнения SAST-анализа --project_name PROJECT_NAME Имя проекта в AppScreener --vcs_auth_type_sast {vcsAccount,vcsToken,vcsSshKey} Тип авторизации в систему контроля версий для SAST (если необходимо выбрать преднастроенную в AppScreener авторизацию) --vcs_auth_type_sca {vcsAccountUuid,vcsTokenUuid,vcsSshUuid} Тип авторизации в систему контроля версий для SAST (если необходимо выбрать преднастроенную в AppScreener авторизацию) --vcs_auth_uuid VCS_AUTH_UUID Идентификатор выбранной учетной записи (если необходимо выбрать преднастроенную в AppScreener авторизацию) --scan_timeout_limit SCAN_TIMEOUT_LIMIT Ограничение максимального времени выполнения сканирования в минутах (по дефолту 30 минут)

Пояснения:

—sast_preset - необходим для указания кастомной конфигурации, которая была предаварительно создана в AppScreener.

—project_name - имя проекта внутри AppScreener. Если его не задать, то в случае с sast/sca будет заведено имя проекта, соответствующее CI_PROJECT_PATH_SLUG репозитория. В случае с dast - домен+путь без схемы и параметров.

—vcs_auth_type_sast - если в AppScreener заведены настройки для клонирования проекта и сканирования, их можно указать с помощью этого ключа.
type подразумевает выбор типа учетной записи.
Данный параметр используется только для sast и должен задаваться совместно с —vcs_auth_uuid.

—vcs_auth_type_sca [^1]- то же самое, только для sca. Существует как отдельный параметр, поскольку значения типов в AppScreener для sast и sca отличаются.

—vcs_auth_uuid - внутренний UUID конкретной настройки учетной записи внутри AppScreener.

—scan_timeout_limit - если необходимо лимитировать время ожидания сканирования, можно воспользоваться данным параметром. По умолчанию время ожидание - 30 минут.

[^1]: