软件成分分析(Software Composition Analysis, SCA)是Gartner定义的一种应用程序安全检测技术,该技术用于分析开源软件以及第三方商业软件涉及的各种源码、模块、框架和库等,以识别和清点开源软件的组件及其构成和依赖关系,并检测是否存在已知的安全和功能漏洞、安全补丁是否已经过时或是否存在许可证合规或兼容性风险等安全问题,帮助确保企业软件供应链中组件的安全。

OpenSCA是SCA技术原理的实现。作为悬镜安全旗下源鉴OSS开源威胁管控产品的开源版本,OpenSCA继承了源鉴OSS的多源SCA开源应用安全缺陷检测等核心能力,通过软件成分分析、依赖分析、特征分析、引用识别、合规分析等方法,深度挖掘组件中潜藏的各类安全漏洞及开源协议风险,保障应用开源组件引入的安全。

检测能力

OpenSCA现已支持以下编程语言相关的配置文件解析及对应的包管理器,后续会逐步支持更多编程语言,丰富相关配置文件的解析。

产品优势

 01. 丰富的语言支持,海量知识库支撑

支持主流编程语言的软件成分分析,如:Java、JavaScript、PHP、Ruby;

云平台实时的组件库/漏洞库/许可证库/特征库等海量知识库支撑。

02. 组件依赖解析,可视化SBOM分析

组件的直接依赖及间接依赖解析分析;

组件安全漏洞分析,可快速定位漏洞影响范围并及时修复

透明化SBOM(软件物料清单),助力快速梳理内部软件资产。

03. 许可合规分析,知识产权安全保障

支持主流许可证的检出;

分析开源许可证的合规性及兼容性风险

04. 企业级核心引擎,更高检出更低误报

拥有企业级SCA核心检测引擎及分析引擎;

基于海量知识库,多源SCA开源应用安全缺陷检测等算法,对特征文件进行精准识别,提高组件的检出率。

使用流程

在线检测

登录OpenSCA官网控制台,上传项目进行检

#本地检测

#第一步:安装最新版本的OpenSCA-cli

OpenSCA-cli是OpenSCA的命令行工具,支持在Windows/Linux/MacOS操作系统运行使用。从 GitHub或 Gitee下载对应系统架构的可执行程序压缩包,并解压到本地任意目录下。
https://github.com/XmirrorSecurity/OpenSCA-cli/releases

将压缩包解压到本地任意目录下:

#第二步:开始检测

opensca-cli 工具需要关联漏洞库,方可有组件漏洞检测数据。我们提供了云平台漏洞库和离线漏洞库两种关联方式,来满足用户的在线和离线使用需求。

  1. 云平台漏洞库:可关联最新的漏洞数据,通过将本地解析的组件信息(不包含代码信息)上传至OpenSCA云平台;
  2. 离线漏洞库:需要按照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

参数说明

  1. url:OpenSCA云平台的url,当前为https://opensca.xmirror.cn;
  2. token:从OpenSCA云平台申请的个人token;
  3. path:指定检测的应用包或项目路径;
  4. out:指定保存检测结果的文件,文件类型为json格式。

#第三步:查看检测结果

opensca-cli 所在目录下会生成检测结果文件 output.html

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐