Интеграция с GitLab CI/CD
Включение AppSec.Hub в пайплайн разработки, построенный с использованием GitLab CI/CD, позволяет автоматизировать и значительно ускорить сканирование кодовых баз и артефактов в рамках проверок информационной безопасности разрабатываемого ПО.
Интеграция осуществляется с помощью специальных скриптов AppSec.Hub, работающих через CLI (Command Line Interface). Более подробная информация об AppSec.Hub CLI приведена в соответствующем разделе.
Для выполнения заданий в рамках пайплайна в GitLab CI/CD используются различные раннеры, например Shell или Docker. В этом разделе описана настройка интеграции с использованием Docker.
Настройки переменных окружения
Задайте переменные окружения. В зависимости от особенностей цикла разработки ПО они могут задаваться на уровне проекта, группы и т. д. Более подробная информация приведена в документации сервиса.
IMAGE_NAME__APPSECHUB_CLI = docker.swordfishsecurity.com/appsechub/hub-cli
— имя образа hub-cli.IMAGE_TAG__APPSECHUB_CLI = latest
— версия образа hub-cli.APPSECHUB_URL = https://hub.company.com
— URL AppSec.Hub.CI_PROJECT_PATH_SLUG = AppSecHub
— название приложения AppSec.Hub, в котором проводится сканирование.APPSECHUB_TOKEN = eyJ...zUxMiJ9.eyJuYW1lIjoiSHV
— токен авторизации AppSec.Hub.
Cоздание токена авторизации AppSec.Hub описано в соответствующем разделе.
Кроме этого, для сканирования кодовых баз и артефактов используются следующие параметры:
-
CODEBASE_PARAMETERS = <codebase-url>;<branch>;<commit>;<checkout-path>;<name>
— параметры для сканирования кодовой базы.Например
CODEBASE_PARAMETERS = https://gitlab.company.com/project/repository.git;master;;/;some-name
Более подробное описание параметров приведено в «Приложении 6. Параметры скриптов AppSec.Hub CLI».
-
ARTIFACT_PARAMETERS = <artifact-url>;<artifact-name>
— параметры для сканирования артефактов.Например
ARTIFACT_PARAMETERS = https://nexus.company.com/repository/some-repository/v2/docker/manifests/latest;some-name
Более подробное описание параметров приведено в «Приложении 6. Параметры скриптов AppSec.Hub CLI».
Для доступа к репозиторию необходимы аутентификационные данные, см. документацию сервиса.
Настройки пайплайна
Каждый проект GitLab, в котором используется модуль CI/CD, должен содержать файл .gitlab-ci.yml, включающий настройки проекта и задач. В файл .gitlab-ci.yml на этапе test
добавьте следующие задания: devsecops_codebase_scan
(сканирование кодовой базы) и/или devsecops_artifact_scan
(сканирование артефакта в виде докер-образа). Более подробная информация приведена в документации сервиса.
devsecops_codebase_scan:
image: $IMAGE_NAME__APPSECHUB_CLI:$IMAGE_TAG__APPSECHUB_CLI
stage: test
script:
- cd /opt/scan
- python3 -m src.scan_codebase
--url "${APPSECHUB_URL}"
--token "${APPSECHUB_TOKEN}"
--appcode "${CI_PROJECT_PATH_SLUG}"
--codebase "${CODEBASE_PARAMETERS}"
devsecops_artifact_scan:
image: $IMAGE_NAME__APPSECHUB_CLI:$IMAGE_TAG__APPSECHUB_CLI
stage: test
script:
- cd /opt/scan
- python3 -m src.scan_artifact
--url "${APPSECHUB_URL}"
--appcode "${CI_PROJECT_PATH_SLUG}"
--token "${APPSECHUB_TOKEN}"
--artifact "${ARTIFACT_PARAMETERS}"
Используемые параметры:
devsecops_codebase_scan
и/илиdevsecops_artifact_scan
— имя задачи.image
— образ для выполнения задачи.stage
— этап пайплайна, на котором запускается задача.script
— скрипт, который будет запущен в контексте данного докер-образа:python3 -m src.scan_codebase
— запуск сканирования кодовой базы.python3 -m src.scan_artifact
— запуск сканирования артефакта.
Более подробная информация об AppSec.Hub CLI приведена в соответствующем разделе.