概述
开源组件分析工具OpenSCA
软件简介
OpenSCA 是一款开源的软件成分分析工具,用来扫描项目的第三方组件依赖及漏洞信息。
作为悬镜安全旗下源鉴 OSS 开源威胁管控产品 (opens new window) 的开源版本,OpenSCA 继承了源鉴 OSS 的多源 SCA 开源应用安全缺陷检测等核心能力,通过软件成分分析、依赖分析、特征分析、引用识别、合规分析等方法,深度挖掘组件中潜藏的各类安全漏洞及开源协议风险,保障应用开源组件引入的安全。官方地址:https://opensca.xmirror.cn/
应用场景
安全开发
- OpenSCA 开源的 IDE 开源风险检测插件,帮助个人 / 企业开发者快速定位并修复漏洞
- 开发人员友好,轻量级低成本零门槛安装
- 企业级 SCA 核心引擎,支持二次开发
安全测试
- 产品第三方开源组件的安全测试
- 提高软件产品安全性,防止应用带病上线
安全管理
- 第三方组件及供应商软件的安全准入
- 企业内部安全组件库的建立
- 软件或组件资产可视化清单梳理
- 安全部门合规审查及相关开源治理工作
项目地址
https://gitee.com/XmirrorSecurity/OpenSCA-cli
下载安装
方法1:
下载opensca的源代码到本地
git clone https://gitee.com/XmirrorSecurity/OpenSCA-cli.git opensca
如果是在Windows系统安装需要安全git:
https://git-scm.com/download/win
安装以后在gitbash输入命令:
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/
下载地址: https://golang.google.cn/dl/,到本地
.傻瓜式安装,安装路径默认C盘,可修改安装到其他路径,一直下一步到安装完成
安装成功后,打开cmd,输入命令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-cli 工具需要关联漏洞库,方可有组件漏洞检测数据。提供了云平台漏洞库和离线漏洞库两种关联方式,来满足用户的在线和离线使用需求。
云平台漏洞库:可关联最新的漏洞数据,通过将本地解析的组件信息(不包含代码信息)上传至OpenSCA云平台;
离线漏洞库:需要按照OpenSCA提供的漏洞库格式准备自己的漏洞库信息,无需将解析的组件信息传输到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
其他检测样例:
仅检测组件信息
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/
举例:(我自己的扫描结果)
{
"task_info": {
"tool_version": "v1.0.7",
"app_name": "fastjson-1.2.80.jar",
"size": 671884,
"start_time": "2022-07-15 11:01:07",
"end_time": "2022-07-15 11:01:07",
"cost_time": 0.1634333
},
"vendor": "com.alibaba",
"name": "fastjson",
"version": "1.2.80",
"language": "Java",
"direct": false,
"paths": ["META-INF/maven/com.alibaba/fastjson/pom.xml/[com.alibaba:fastjson:1.2.80]"],
"vulnerabilities": [{
"name": "Fastjson 代码问题漏洞",
"id": "XMIRROR-2022-25845",
"cve_id": "CVE-2022-25845",
"cnnvd_id": "CNNVD-202206-1037",
"cwe_id": "CWE-502",
"description": "Fastjson是一款基于Java的快速JSON解析器/生成器。 nFastjson 1.2.83 之前版本存在安全漏洞,该漏洞源于容易绕过默认的 autoType 关闭限制来反序列化不受信任的数据,攻击者利用该漏洞可以攻击远程服务器。",
"suggestion": "目前厂商已发布升级补丁以修复漏洞,补丁获取链接: nhttps://github.com/alibaba/fastjson/wiki/security_update_20220523",
"attack_type": "远程",
"release_date": "2022-06-10",
"security_level_id": 1,
"exploit_level_id": 0
}]
}
IDE中增加插件检测:
插件添加参考链接:
https://opensca.xmirror.cn/docs/v1/plugin.html#%E6%8F%92%E4%BB%B6%E5%8A%9F%E8%83%BD
打开组件包:
最后
以上就是无情学姐为你收集整理的开源组件分析工具OpenSCA教程的全部内容,希望文章能够帮你解决开源组件分析工具OpenSCA教程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复