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

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

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