技术文档 | 免下载、0配置、多任务并发,在Docker Image中使用OpenSCA

2023-09-11 10:37:08 浏览数 (1)

想跳过下载步骤快速使用OpenSCA检测代码风险?想实现多个项目并发扫描?

在Docker Image中使用OpenSCA即可轻松实现。一起来look look

目的

  • 方便用户使用最新版本的 OpenSCA-cli
  • 保证环境的一致性,消除不同操作系统对结果的影响
  • 可以方便在本地维护不同版本的 OpenSCA-cli
  • 方便在特定情况下并发扫描的需求

使用方法

命令行传参方式使用

检测当前目录的依赖关系

代码语言:shell复制
docker run -ti --rm -v $(PWD):/src opensca/opensca-cli

使用云端数据库检测漏洞

代码语言:shell复制
docker run -ti --rm -v $(PWD):/src opensca/opensca-cli -token xxxx

使用本地数据库检测漏洞

代码语言:shell复制
docker run -ti --rm -v $(PWD):/src -v /localDB:/data opensca/opensca-cli -db /data/db.json

检查依赖关系并生成 SBOM

代码语言:shell复制
docker run -ti --rm -v $(PWD):/src opensca/opensca-cli -out /src/output.spdx

配置文件方式使用

OpenSCA-cli Docker 镜像默认从当前 /src 目录查找 config.json 配置文件,因此若希望对每一个项目进行单独配置,只需在不同项目的根目录维护配置文件即可。

例如如下目录结构:

代码语言:shell复制
.├── LICENSE├── README.md├── config.json├── pom.xml├── src│   ├── config│   └── main├── testfiles│   └── ...└── tools    └── ...

config.json 内容

代码语言:shell复制
{  "path": "/src",  "out": "/src/output.spdx",  "vuln": true,  "dedup": true,  "progress": true,  "url": "https://opensca.xmirror.cn",  "token": "xxxx-xxxx-xxxx-xxxx",
  "origin": {    "": {       "dsn": ""     }  },
  "maven": [    {      "repo": "",      "user": "",      "password": ""    }  ]}

完成配置后,后续扫描无需修改命令,只需修改配置文件即可,方便在 CI/CD 的 Pipeline 中使用:

代码语言:shell复制
docker run -ti --rm -v $(PWD):/src opensca/opensca-cli

升级 OpenSCA-cli 镜像

可在引用时追加版本号,例如

代码语言:shell复制
docker run -ti --rm -v $(PWD):/src opensca/opensca-cli:v1.0.13

或者使用 pull 命令获取最新镜像

代码语言:shell复制
docker pull opensca/opensca-cli:latestdocker run -ti --rm -v $(PWD):/src opensca/opensca-cli

开源安全共建

感谢每一位开源社区成员对OpenSCA的支持和贡献。OpenSCA的代码会在GitHub和Gitee持续迭代,欢迎Star和Fork,也欢迎向我们提交ISSUE和PR,参与我们的开源安全共建计划,与社区成员共同建设充满可能性的开源解决方案。

0 人点赞