漏洞知识库
点击放大

<di="center">
<img alt="logo" src="/resources/logo.svg">
<h2>用开源的方式做开源风险治理</h2>
![Release]()
![GitHub all releases]()
![Docker Pulls]()
![Jetbrains Plugin]()
![ Plugin]()
![LICENSE]()

中文 | English
</div>
<!-- TOC -->
OpenSCA 用来扫描项目的第三方组件依赖及漏洞信息。
官网:
欢迎点亮star,鼓励下项目组的小伙伴们~
---
OpenSCA现已支持以下编程语言相关的配置文件解析及对应的包管理器,后续会逐步支持更多的编程语言,丰富相关配置文件的解析。
| 支持语言 | 包管理器 | 解析文件 |
| ------------ | ---------- | ------------------------------------------------------------------------ |
| Java | Maven | pom.xml |
| Java | Gradle | .gradle .gradle.kts |
| Ja | Npm | package-lock.json package.json yarn.lock |
| PHP | Composer | composer.json composer.lock |
| Ruby | gem | gemfile.lock |
| Golang | gomod | go.mod go.sum Gopkg.toml Gopkg.lock |
| Rust | cargo | Cargo.lock |
| Erlang | Rebar | rebar.lock |
| Python | Pip | Pipfile Pipfile.lock setup.py requirements.txt requirements.in |
OpenSCA-cli 支持 Windows、Linux、MacOS 等操作系统,支持 x86_64 和 arm64 架构。目前提供了以下几种安装方式:
1. 从 github 或 gitee 或 gitcode 下载对应系统架构的可执行文件压缩包
2. 解压,并运行 opensca-cli 可执行文件即可。
克隆并源码编译(需要 go 1.18 及以上版本)
默认生成当前系统架构的程序,如需生成其他系统架构可配置环境变量后编译
CGO_ENABLEDCGO_ENABLED=0GOOS=${OS} \\ darwin,liunx,windowsGOARCH=${arch} \\ amd64,arm64| 参数 | 类型 | 描述 | 使用样例 |
| -------- | -------- | ---------------- | ------------------------ |
| config | string | 指定配置文件路径 | -config config.json |
| path | string | 指定检测项目路径 | -path ./foo |
| out | string | 根据后缀生成报告 | -out out.json,out.html |
| log | string | 指定日志文件路径 | -log my_log.txt |
| token | string | 云端服务token | -token xxx |
| proj | string | saas项目token | -proj xxx |
完整的检测参数需在配置文件中配置
(*v3.0.0开始url参数不再通过命令行指定,默认为OpenSCA云漏洞库服务,也可通过配置文件指定其他数据格式相符的云漏洞库;使用过往版本可在命令行或配置文件指定url参数。)
配置字段及说明详见config.json
v3.0.2开始,OpenSCA-cli可以通过proj参数向OpenSCA SaaS同步检出结果,方便资产及风险的全局管理。
配置文件与命令行参数冲突时优先使用命令行输入参数
指定了配置文件路径但目标位置不存在文件时会在目标位置生成默认配置文件
未指定配置文件路径会依次尝试访问以下位置:
1. 工作目录下的config.json
2. 用户目录下的opensca_config.json
3. opensca-cli目录下的config.json
可在配置文件的 optional.ignore 中设置需要跳过的文件或目录。该字段只读取当前配置文件中的规则,不会自动读取项目中的 .gitignore 文件;规则语法兼容常用 .gitignore 写法,包括目录匹配、通配符和 ! 反选。
out 参数支持范围如下:
| 类型 | 文件格式 | 识别的文件后缀 |
| -------- | -------- | -------------------------------- |
| 检测报告 | json | .json |
| | xml | .xml |
| | html | .html |
| | sqlite | .sqlite |
| | csv | .csv |
| | sarif | .sarif |
| SBOM清单 | spdx | .spdx .spdx.json .spdx.xml |
| | cdx | .cdx.json .cdx.xml |
| | swid | .swid.json .swid.xml |
| | dsdx | .dsdx .dsdx.json .dsdx.xml |
| | bomsw | .bomsw.json |
如需在docker容器中使用配置文件,将config.json放到src挂载目录即可。也可以使用-config指定其他容器内路径。
不同终端挂载当前目录的写法不同,常见的几种终端写法如下:
| terminal | pwd |
| ------------ | --------------------- |
| bash | $(pwd) |
| zsh | ${PWD} |
| cmd | %cd% |
| powershell | (Get-Location).Path |
更多信息请参考 Docker Hub 主页
---
| 字段 | 描述 | 是否必填 |
| :------------------ | :------------------------------------------------------------ | :------- |
| | 组件厂商 | 否 |
| product | 组件名 | 是 |
| | 漏洞影响版本 (必须为范围,不能填单个版本) | 是 |
| language | 组件语言 | 是 |
| name | 漏洞名 | 否 |
| id | 自定义编号 | 是 |
| cve_id | cve 编号 | 否 |
| cnnvd_id | cnnvd 编号 | 否 |
| cnvd_id | cnvd 编号 | 否 |
| cwe_id | cwe 编号 | 否 |
| description | 漏洞描述 | 否 |
| description_en | 漏洞英文描述 | 否 |
| suggestion | 漏洞修复建议 | 否 |
| attack_type | 攻击方式 | 否 |
| release_date | 漏洞发布日期 | 否 |
| security_le | 漏洞风险评级(1~4 风险程度递减) | 否 |
| exploit_le | 漏洞利用难度评级(-2:未知,-1:困难,0:困难,1:简单,2:普通) | 否 |
本地漏洞库中language字段设定值包含java、ja、golang、rust、php、ruby、python
范围描述:
| 符号 | 描述(x为检出的组件版本) |
| ------------- | -------------------------------- |
| [a,b] | a<=x<=b |
| (a,b) | a<x<b |
| [a,b) | a<=x<b |
| (a,b] | a<x<=b |
| (0,b) | x<b |
| (a,) | x>a |
| {a,b,c,...} | x=a 或 x=b 或 x=c 或 ... |
同时位于多个范围需要用||连接,例如:[a,b)||(b,c]代表a<=x<b或b<x<=c,即a<=x<=c且x!=b
也可以区间和集合混用:(0,b)||{c,d}||e,)代表x<b或x=c或x=d或x>=e
不需要。解压后直接在命令行或终端工具中执行对应命令即可开始检测。
OpenSCA支持自主配置本地漏洞库,需要按照[漏洞库文件格式配置。
同时OpenSCA提供云漏洞库服务,兼容NVD、CNVD、CNNVD等官方漏洞库。
检测速度与压缩包大小、网络状况和检测语言有关,通常情况下会在几秒到几分钟。
v1.0.11开始在默认逻辑中新增了阿里云镜像库作为maven官方库的备用,解决了官方库连接受限导致的检测速度过慢问题。
v1.0.10及更低版本使用时如遇检测速度异常慢、日志文件中有maven连接失败报错,v1.0.6-v1.0.10可在配置文件config.json中将“maven”字段作如下设置:
设置完毕后,确保配置文件和opensca-cli在同一目录下,执行opensca-cli检测命令加上-config congif.json即可,示例:
v1.0.5及更低版本需要自行修改源码配置镜像库地址,建议升级到更高版本。
更多常见问题,参见常见问题。
如果您在使用中遇到问题,欢迎向我们提交ISSUE。
也可添加下方微信:
!二维码
QQ技术
官方邮箱:<>
OpenSCA 是一款开源的软件成分分析工具,项目成员期待您的贡献。
如果您对此有兴趣,请参考我们的贡献指南。
开发语言:Go
Star 数:1134
该项目属于漏洞知识库方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕OpenSCA is an open source software supply chain security solution that supports the detection of open source dependencies, vulnerabilities and license compliance with a widely noticed accuracy by the community. 展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | OpenSCA-cli - OpenSCA is an open source software supply chain se |
| 所属分类 | 漏洞知识库 |
| 发布作者 | admin |
| 发布时间 | 2026-10-06 01:02:49 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 524 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |