软件成分分析(Software Composition Analysis, SCA)是Gartner定义的一种应用程序安全检测技术,该技术用于分析开源软件以及第三方商业软件涉及的各种源码、模块、框架和库等,以识别和清点开源软件的组件及其构成和依赖关系,并检测是否存在已知的安全和功能漏洞、安全补丁是否已经过时或是否存在许可证合规或兼容性风险等安全问题,帮助确保企业软件供应链中组件的安全。
关于OpenSCA:
悬镜安全(北京安普诺信息技术有限公司),起源于北京大学网络安全技术研究团队”XMIRROR”,创始人子芽。OpenSCA社区由悬镜安全于2021年12月31日正式开源。OpenSCA社区的开源项目起源于悬镜安全商业版“源鉴SCA”,是国内用户量最多、应用场景最广的开源SCA工具技术(中国信通院《中国DevOps现状调查报告2024》),通过软件码纹分析、依赖分析、特征分析、引用识别与开源许可合规分析等综合算法,OpenSCA 深度挖掘软件开源供应链安全风险,智能梳理数字资产风险清单。结合SaaS云平台和实时供应链安全情报,为社区用户提供灵活弹性、精准有效、稳定易用的开源数字供应链安全解决方案。目前OpenSCA社区涵盖泛互联网、车联网、金融、能源、信息通信和智能制造等众多行业极客用户,为全球开发者们和广大安全研究人员构筑了专注安全开发与开源治理的技术创新实践社区。
界面展示
检测能力-支持语言
OpenSCA现已支持以下编程语言相关的配置文件解析及对应的包管理器,后续会逐步支持更多编程语言,丰富相关配置文件的解析。
支持语言 | 包管理器 | 解析文件 |
Java | Maven | pom.xml |
Java | Gradle | .gradle .gradle.kts |
JavaScript | Npm | package-lock.json package.json yarn.lock |
PHP | Composer | composer.json composer.lock |
Ruby | gem | gemfile.lock |
Golang | gomod | go.mod go.sum |
Python | Pip | Pipfile Pipfile.lock setup.py requirements.txt requirements.in (后两者的解析需要具备pipenv环境,需要联网。) |
Rust | cargo | Cargo.lock |
Erlang | Rebar | rebar.lock |
与传统的企业版SCA工具相比,OpenSCA展现了独特的优势。轻量级、易于使用,同时具备完整的功能,支持漏洞库、私服库的自主配置,能够适应IDE、命令行、云平台等多种使用场景。无论是离线还是在线,OpenSCA都能灵活地融入开发流程,为用户输出透明化的组件资产和风险清单。
此外,OpenSCA的持续创新也值得关注。随着新版本的发布,在解析引擎、SBOM生成转化、许可证合规管控等方面都展现了显著的进步。特别是对SBOM(软件物料清单)的支持,不仅能够生成国际三大主流SBOM格式,还支持中国首个数字供应链SBOM格式DSDX,这标志着OpenSCA在适应国内外市场需求方面迈出了重要步伐。
使用流程
OpenSCA-cli是OpenSCA的命令行工具,支持在Windows/Linux/MacOS操作系统运行使用。
Step1 下载安装
访问下面地址,下载最新版本的对应系统架构的可执行程序压缩包:
https://github.com/XmirrorSecurity/OpenSCA-cli/releases
将压缩包解压到本地任意目录下:
Step2 开始检测
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
本地离线检测
MacOS/Linux
opensca-cli -path ${project_path} -out output.json
Windows
opensca-cli.exe -path ${project_path} -out output.json
参数说明
- url:OpenSCA云平台的url,当前为https://opensca.xmirror.cn;
- token:从OpenSCA云平台申请的个人token;
- path:指定检测的应用包或项目路径;
- out:指定保存检测结果的文件,文件类型为json格式。
更多参数说明请访问OpenSCA官网 或OpenSCA-cli开源项目查看。
Step3 查看检测结果
组件检测结果会保存在 opensca-cli 所在目录的 output.json文件。
升级与卸载
升级
删除旧版本目录包,下载最新版本的安装包重新解压即可。若旧版本目录下存有检测结果文件,请自行备份。
卸载
删除旧版本目录包即可完成卸载。
快递使用
Github:
Https://github.com/XmirrorSecurity/OpenSCA-cli/
Gitee:
Https://gitee.com/XmirrorSecurity/OpenSCA-cli/
OpenSCA官网:
Https://opensca.xmirror.cn