Перейти к содержанию

Интеграция с 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 приведена в соответствующем разделе.

К началу