项目引入的第三方开源组件可能包含已公开的安全漏洞,手动排查依赖树既费时又容易遗漏。软件成分分析(SCA,Software Composition Analysis)自动识别项目中的所有第三方依赖并与漏洞数据库比对,在安全风险被利用前发现并修复问题。
功能介绍
SCA 通过以下方式检测项目的开源安全风险:
依赖识别:解析项目的依赖声明文件(如
package.json、pom.xml、go.mod、requirements.txt等),提取所有直接依赖和传递依赖。漏洞匹配:将识别到的组件及其版本号与 CVE(Common Vulnerabilities and Exposures)漏洞数据库进行比对,确认是否存在已知安全漏洞。
风险评估:根据漏洞的 CVSS 评分和利用难度,对每个漏洞标注严重等级,并给出修复建议(如升级到安全版本)。
与 SAST 的区别
对比维度 | SCA(软件成分分析) | SAST(静态应用安全测试) |
检测对象 | 第三方开源组件及其已知漏洞 | 项目自身源代码中的安全缺陷 |
检测方式 | 比对漏洞数据库(CVE) | 静态分析源代码逻辑 |
典型发现 | 依赖包存在远程代码执行漏洞 | 代码中存在 SQL 注入风险 |
修复方式 | 升级依赖版本 | 修改代码逻辑 |
SAST 的功能介绍请参见静态应用安全测试 SAST。
适用场景
项目引入了大量第三方开源库,需要了解依赖的安全状况。
安全合规要求定期扫描第三方组件漏洞。
在代码合并前检查新引入的依赖是否存在已知漏洞。
查看 SCA 扫描结果
通过以下任一方式完成包含 SCA 的扫描任务后,可通过扫描结果页面的 SCA 页签查看软件成分分析详情:
操作步骤
登录代码安全控制台。
进入项目列表页面,找到目标项目,单击操作列的查看。
进入项目详情的任务列表,单击目标扫描任务操作列的查看,进入扫描结果页面。
单击SCA页签,查看软件成分分析结果。
解读扫描结果
SCA 页签展示本次扫描识别到的第三方依赖信息和关联的安全漏洞详情。
组件概览
页面顶部以卡片形式展示本次扫描的 SCA 汇总信息,包括:
CVE 漏洞数:本次扫描识别到的已知漏洞总数。
严重风险组件数:关联严重或高危漏洞的组件数量。
风险等级分布:各风险等级下的组件与漏洞分布。
依赖包列表
列表展示项目检测到的所有第三方依赖包及其安全状况:
字段 | 说明 |
组件名称 | 第三方依赖包的名称(如 |
版本 | 当前项目使用的组件版本 |
组件风险等级 | 基于该组件关联漏洞的最高 CVSS 评分给出的综合风险等级 |
CVE 漏洞等级 | 该组件关联漏洞的最高等级(严重、高危、中危、低危) |
漏洞详情
单击具体依赖包可查看其关联的漏洞信息:
字段 | 说明 |
CVE 编号 | 漏洞对应的 CVE 数据库唯一标识,如 CVE-2021-44228 |
风险等级 | 严重、高危、中危或低危,基于 CVSS 评分划分 |
漏洞描述 | 漏洞的影响范围和攻击方式说明 |
修复建议 | 建议升级到的安全版本号或替代方案 |
风险等级说明
等级 | CVSS 评分范围 | 处置建议 |
严重 | 9.0~10.0 | 可被远程利用且无需用户交互,应立即修复 |
高危 | 7.0~8.9 | 存在较大安全风险,建议尽快修复 |
中危 | 4.0~6.9 | 存在一定风险,建议随版本迭代修复 |
低危 | 0.1~3.9 | 风险较低,可根据实际情况评估是否修复 |