Импорт через терминал используя файл отчета

Вы можете импортировать отчеты в Security Center используя командуcurl в терминале:

curl -X POST localhost/api/v1/scan/import/ -H "Authorization: Token <токен_авторизации>" -H "Content-Type: multipart/form-data" -F "file=@<путь_к_файлу_отчета>" -F "product_name=<имя_продукта>" -F "product_type=<тип_продукта>" -F "scanner_name=<название_сканера>" -F "branch=<название_ветки>" -F "repository=<SSH_URL_репозитория>" -F "docker_image=<registry_URL>" -F "domain=<домен>" -F "host=<IP-адрес_хоста>"

В этой команде используются следующие параметры:

  • -X POST: определяет используемый метод HTTP (в данном случае POST)

  • -H "Authorization: Token <токен_авторизации>": определяет токен авторизации, полученный из настроек профиля в Security Center.

  • -H "Content-Type: multipart/form-data": определяет тип содержимого запроса.

  • -F "file=@<путь_к_файлу_отчета>": определяет путь к файлу отчета, полученного в результате сканирования.

  • -F "product_name=<имя_продукта>": определяет имя сканируемого продукта.

  • -F "product_type=<тип_продукта>": определяет тип сканируемого продукта.

  • -F "scanner_name=<название_сканера>": определяет название сканера, используемого для создания отчета (правильное имя см. на расширяемой вкладке ниже).

  • -F "branch=<название_ветки>": (необязательно) указывает название ветки в репозитории исходного кода (если применимо). Этот параметр особенно полезен, когда вы хотите связать результаты сканирования с определенной веткой в вашем репозитории. Если параметр не указан, сканирование будет связано с веткой по умолчанию.

Информация об активах, если используется Аудитор

  • -F "repository=<SSH_URL_репозитория>": если ваш продукт это код в репозитории, введите адрес репозитория в определенном формате, например: git@gitlab.com:cybercodereview/security-center.git.

  • -F "docker_image=<registry_URL>": если ваш продукт это Docker-образ, введите адрес registry, в котором находится ваш продукт, например: registry.gitlab.com/cybercodereview/security-center/back/auto_validator:latest.

  • -F "domain=<домен>": если ваш продукт это веб-ресурс, введите доменное имя вашего продукта, например: cybercodereview.ru.

  • -F "host=<host>": если ваш продукт находится в Интернете, введите IP-адрес вашего продукта, например: 0.0.0.0.

Список поддерживаемых сканеров

  • Acunetix Scan

  • Arachni Scan

  • AWS Security Hub Scan

  • Bandit Scan

  • Burp Enterprise Scan

  • Checkov Scan

  • CodeQL Scan (SARIF)

  • ESLint Scan

  • Find Security Bugs Scan (GitLab SAST Report)

  • GitLab Bandit

  • GitLab ESLint

  • GitLab Gemnasium

  • GitLab Gitleaks

  • GitLab KICS

  • GitLab OWASP Zap

  • GitLab Semgrep

  • Gitleaks Scan

  • Gosec Scanner

  • Hadolint Dockerfile check

  • Manual

  • Nuclei Scan

  • Pen Test

  • Prowler

  • Retire.js Scan

  • Semgrep JSON Report

  • subfinder

  • Terrascan Scan

  • Trivy Scan

  • Trufflehog3 Scan

  • CyberCodeReview Security Center

Если вы выполните команду curl для неподдерживаемого сканера, импорт не будет выполнен.

Вам нужно изменить команду curl в зависимости от сканера, используемого для создания отчета.

Обратите внимание, что если указанный тип продукта или имя продукта не существует в Security Center, они будут созданы автоматически. Однако, в рамках одного типа продукта не может быть двух продуктов с одинаковым именем.

Пример Curl

Ниже представлен пример команды для импорта отчета, созданного сканером Trivy:

curl -X POST localhost/api/v1/scan/import/ -H "Authorization: Token a75bb26171cf391671e67b128bfc8ae1c779ff7b" -H "Content-Type: multipart/form-data" -F "file=@./trivy-code.json" -F "product_name=Product1" -F "product_type=Application" -F "scanner_name=Trivy Scan" -F "branch=dev" -F "repository=git@gitlab.cybercodereview.ru:cybercodereview/security-center.git"

После завершения импорта вы можете просматривать и анализировать импортированные отчеты в Security Center.