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]: