AppScreener

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

Образ с интеграцией: registry.cybercodereview.ru/cybercodereview/security-images/as_integration:v1.0.1 Кастомные импортеры для каждого типа анализа:

В данной интеграции управление сканрованиями реализовано через 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 в самом простом случае достаточно будет указать команду:

python3 app.py --work_mode sast/sca/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. Существует как отдельный параметр, поскольку значения типов в AppScreener для sast и sca отличаются.

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

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

Last updated