开源组件分析工具OpenSCA教程

开源组件分析工具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

打开组件包:

猜你喜欢

转载自blog.csdn.net/m0_65355570/article/details/125803273