首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将OWASP依赖跟踪集成到GitLab CI/CD管道中

将OWASP依赖跟踪集成到GitLab CI/CD管道中
EN

Stack Overflow用户
提问于 2022-07-08 12:47:50
回答 2查看 873关注 0票数 1

有谁能帮帮我呢?

  1. 我希望在GitLabСI/СD管道中实现将SBOM-fileС上传到依赖跟踪。
  2. 全局思想(下一步):在构建的开始(管道的开始),创建一个SBOM-文件并将其上传到依赖跟踪,现在我使用手动创建的SBOM-文件。

由以下gitlab-ci.yml组成:

代码语言:javascript
复制
DT_SCA:
     stage: test
     script:
       - git clone https://gitlab.com/.../test.git
       - cd test/
       - curl
         -X "PUT" "http://х.х.х.х:8080/api/v1/bom"
         -H "X-API-Key:xxxx"
         -H "Content-Type:multipart/form-data" /// option 2. -H "Content-Type:application/json'
         -d @хххх.xml /// option 2. -d @хххх.json

我得到一个500错误(内部服务器错误)。

尝试不同的变化,总是不同的错误。

同时,没有正式的融合可能性。请帮帮我。

有现成的解决办法吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-07-12 06:21:22

我在前端/nodejs中使用了类似的东西:

我有一个运行sbom的文件

代码语言:javascript
复制
cyclonedx-node -d -t application -o ./bom.json

另一个deptrack.sh:

代码语言:javascript
复制
version=`node -p "process.env.npm_package_version"`

name=`node -p "process.env.npm_package_name"`

curl -X 'POST' 'http://--your IP--:8081/api/v1/bom'\
     -H 'Content-Type: multipart/form-data' \
     -H 'X-Api-Key: --your key--' \
     -F "projectName=$name" \
     -F "projectVersion=$version" \
     -F 'autoCreate=true' \
     -x "" \
     -F 'bom=@./bom.json'

在我的package.json中,我有两个从管道中触发的脚本:

代码语言:javascript
复制
  "scripts": {
    "sbom": "sh ./sbom.sh",
    "deptrack": "sh ./deptrack.sh"
},

在您的gitlab.ci中,您可以得到以下工作:

代码语言:javascript
复制
sbom:
  stage: compile
  image: --your nodejs image--
  tags:
  - docker
  script:
  - npm ci
  - npm run sbom
  - npm run deptrack
  only:
    - master
  interruptible: true
票数 0
EN

Stack Overflow用户

发布于 2022-10-18 09:31:30

当我用三叶草生成SBOM时,这就是我如何将其结果发送到依赖项跟踪的方式:

代码语言:javascript
复制
dt-import-sbom-scan:
  extends: .dt-upload
  needs: ["trivy-fs-sbom-scan"]
  script:
    - |    
      curl -X "POST" "http://<YOUR_URL>/api/v1/bom" \
        -H 'Content-Type: application/json' \
        -H "X-Api-Key: $DT-API-KEY" \
        -F "autoCreate=true" \
        -F "projectName=$CI_PROJECT_NAME" \
        -F "projectVersion=$CI_COMMIT_BRANCH" \
        -F "bom=@trivy-filesystem-sbom.json"
  rules:
    - if: $TRIVY_FS_SBOM == "false"
      when: never

对于.dt-upload,我使用了以下方法:

代码语言:javascript
复制
.dt-upload:
  stage: .post
  image: docker:stable
  services:
    - name: docker:dind
  before_script:
    - apk add --update curl
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72911670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档