Импорт через Терминал используя файл отчета
Вы можете импортировать отчеты в Security Center используя командуcurl в терминале:
{% code overflow="wrap" %}
curl -X POST localhost/api/v1/scan/import/ -H "Authorization: Token <authorization_token>" -H "Content-Type: multipart/form-data" -F "file=@<report_file_path>" -F "product_name=<product_name>" -F "product_type=<product_type>" -F "scanner_name=<scanner_name>" -F "branch=<branch_name>" -F "repository=<repository SSH URL>" -F "docker_image=<registry address>" -F "domain=<domain>" -F "host=<host>"
{% endcode %}
В этой команде используются следующие параметры:
-X POST: определяет используемый метод HTTP (в данном случае POST)-H "Authorization: Token <authorization_token>": определяет токен авторизации, полученный из Security Center.-H "Content-Type: multipart/form-data": определяет тип содержимого запроса.-F "file=@<report_file_path>": определяет путь к файлу отчета, создаваемого сканером.-F "product_name=<product_name>": определяет название сканируемого продукта.-F "product_type=<product_type>": определяет тип сканируемого продукта.-F "scanner_name=<scanner_name>": определяет имя сканера, используемого для создания отчета (правильное имя см. на расширяемой вкладке ниже).-F "branch=<branch_name>": (необязательно) указывает имя ветки в репозитории исходного кода (если применимо). Этот параметр особенно полезен, когда вы хотите связать результаты сканирования с определенной веткой в вашем репозитории. Если параметр не указан, сканирование будет связано с веткой по умолчанию.
Информация об активах, если используется Auditor
-F "repository=<repository SSH URL>": если ваш продукт это код в репозитории, введите адрес репозитория в определенном формате, например: git@gitlab.com:cybercodereview/security-center.git-F "docker_image=<registry address>": Если ваш продукт является образом, введите адрес реестра, в котором находится ваш продукт, например: registry.gitlab.com/cybercodereview/security-center/back/auto_validator:latest-F "domain=<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
{% hint style="warning" %} Если вы создадите команду curl для неподдерживаемого сканера, импорт не будет выполнен.
{% endhint %}
Вам нужно изменить команду curl в зависимости от сканера, используемого для создания отчета.
{% hint style="info" %} Обратите внимание, что если указанный тип продукта или название продукта не существует в Security Center, они будут созданы автоматически. Однако в рамках одного типа продукта не может быть двух продуктов с одинаковым именем.
{% endhint %}
Пример Curl
Вот пример команды для импорта отчета, созданного сканером Trivy:
{% code overflow="wrap" %}
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"
{% endcode %}
После завершения импорта вы можете просматривать и анализировать импортированные отчеты в Security Center.