OpenSCA开源组件分析工具详细教程
一、OpenSCA简介
OpenSCA是一款开源的软件成分分析(SCA)工具,用于扫描项目的第三方组件依赖及漏洞信息。作为悬镜安全旗下源鉴OSS开源威胁管控产品的开源版本,OpenSCA继承了以下核心能力:
- 多源SCA开源应用安全缺陷检测
- 软件成分分析
- 依赖分析
- 特征分析
- 引用识别
- 合规分析
通过这些方法,OpenSCA可以深度挖掘组件中潜藏的各类安全漏洞及开源协议风险,保障应用开源组件引入的安全。
官方地址:https://opensca.xmirror.cn/
二、应用场景
1. 安全开发
- 提供开源的IDE开源风险检测插件
- 帮助开发者快速定位并修复漏洞
- 开发人员友好,轻量级低成本零门槛安装
- 企业级SCA核心引擎,支持二次开发
2. 安全测试
- 产品第三方开源组件的安全测试
- 提高软件产品安全性,防止应用带病上线
3. 安全管理
- 第三方组件及供应商软件的安全准入
- 企业内部安全组件库的建立
- 软件或组件资产可视化清单梳理
- 安全部门合规审查及相关开源治理工作
三、下载与安装
方法1:从源代码构建
-
克隆OpenSCA源代码到本地:
git clone https://gitee.com/XmirrorSecurity/OpenSCA-cli.git opensca -
Windows系统需要先安装Git:https://git-scm.com/download/win
-
在Git Bash中执行以下命令:
cd opensca go work init cli analyzer util go env -w GOPROXY=https://goproxy.cn go build -o opensca-cli cli/main.go
方法2:直接下载可执行程序
-
访问项目地址下载最新版本:https://gitee.com/XmirrorSecurity/OpenSCA-cli/
-
下载Go语言环境(如需):https://golang.google.cn/dl/
-
安装Go语言环境(默认安装到C盘,可修改路径)
-
安装完成后,验证安装:
go version -
配置环境变量(此电脑→高级系统配置→环境变量→系统变量)
-
在项目文件夹打开CMD执行:
go work init cli analyzer util go env -w GOPROXY=https://goproxy.cn go build -o opensca-cli cli/main.go
四、检测配置
OpenSCA需要关联漏洞库才能进行组件漏洞检测,提供两种关联方式:
1. 云平台漏洞库
- 可关联最新的漏洞数据
- 将本地解析的组件信息(不包含代码信息)上传至OpenSCA云平台
2. 离线漏洞库
- 需要按照OpenSCA提供的格式准备自己的漏洞库
- 无需将解析的组件信息传输到云平台
- 可完成组件漏洞检测
五、云端在线检测
1. 生成Token
- 访问OpenSCA官网(opensca.xmirror.cn)登录或注册
- 进入OpenSCA云平台
- 选择一个时间(可以设置较长有效期)
- 复制生成的口令
2. 检测应用包或项目
根据不同操作系统执行相应命令(需替换${}为实际参数):
MacOS/Linux:
opensca-cli -url https://opensca.xmirror.cn -token ${token} -path ${project_path} -out output.json
Windows:
opensca-cli.exe -url https://opensca.xmirror.cn -token ${token} -path ${project_path} -out output.json
示例(Windows):
- 下载有漏洞的组件:
https://repo1.maven.org/maven2/com/alibaba/fastjson/1.2.80/ - 在opensca文件夹打开CMD,执行:
opensca-cli.exe -url https://opensca.xmirror.cn -token ${097ead7e-f7b1-425c-82f7-d5df9813537a} -path fastjson-1.2.80.jar -out output.json
3. 其他检测样例
-
仅检测组件信息:
opensca-cli -path ${project_path} -
连接云平台:
opensca-cli -url ${url} -token ${token} -path ${project_path} -
使用本地漏洞库:
opensca-cli -db db.json -path ${project_path}
六、查看检测结果
组件检测结果会保存在opensca-cli所在目录的output.json文件中。
如需查看json格式,可使用在线转换工具:https://www.sojson.com/
七、IDE插件集成
插件添加参考链接:https://opensca.xmirror.cn/docs/v1/plugin.html#%E6%8F%92%E4%BB%B6%E5%8A%9F%E8%83%BD
八、参数说明
| 参数 | 说明 |
|---|---|
| -url | OpenSCA云平台地址 |
| -token | 用户认证Token |
| -path | 待检测的项目路径 |
| -out | 检测结果输出文件路径 |
| -db | 本地漏洞库路径 |
九、注意事项
- Windows用户建议使用Git Bash执行命令
- 确保网络连接正常以便从云平台获取最新漏洞数据
- 对于大型项目,检测可能需要较长时间
- 离线使用时需定期更新本地漏洞库
通过本教程,您应该能够全面了解OpenSCA的功能、安装方法和使用流程,帮助您在开发过程中更好地管理开源组件的安全风险。