2021-06-01-国家互联网应急中心-2021年开源软件供应链安全风险研究报告_25页_2mb
报告摘要
2021年开源软件供应链安全风险研究报告总结
核心内容概述
本报告由国家计算机网络应急技术处理协调中心发布,旨在分析2021年开源软件供应链中的安全风险。报告从多个维度探讨了开源漏洞的发展现状、组件生态库的安全风险、依赖层级传播范围、文件级漏洞传播情况以及提出开源安全风险防范建议,强调了开源软件在现代软件开发中的重要性及其潜在的安全隐患。
主要观点
- 开源软件的广泛应用:开源软件已成为企业构建信息技术的重要组成部分,广泛应用于教育、金融、医疗等领域,其使用率超过60%。
- 开源安全风险日益突出:随着开源软件的普及,其安全漏洞数量持续增长,且存在修复滞后、漏洞信息分散等问题。
- 漏洞传播具有放大效应:组件依赖关系使得漏洞在供应链中传播,影响范围远超预期,一级与二级传播分别扩大了125倍和173倍。
- 高危漏洞占比上升:2020年高危及以上漏洞占比超过50%,其中CWE-79(跨站脚本)为主要缺陷类型。
- 部分仓库漏洞风险突出:Rubygems仓库在2020年含高危以上漏洞占比高达96%,Maven仓库则为漏洞传播影响范围最小的仓库。
- 同源漏洞文件普遍存在:80.35%的漏洞文件在开源项目中存在同源文件,其传播范围在不考虑版本差异时扩大54倍,考虑版本差异时扩大171倍。
- 开源安全需全生命周期管控:建议企业、机构在软件开发的各个环节加强开源安全治理,包括建立管理组织、识别开源成分、修复漏洞、建立威胁情报体系、及时更新组件、使用左移安全工具等。
关键信息
一、开源漏洞发展现状及趋势
- 整体增长趋势:2015至2020年,开源漏洞数量逐年增长,2020年新增漏洞数为3426,环比增长40%。
- 高危漏洞占比上升:2020年高危漏洞占比达46.91%,超危漏洞占比为8.83%,合计占比达55.74%。
- CWE-79为主要缺陷类型:2020年新增漏洞中,CWE-79占比约14%,主要涉及跨站脚本攻击。
- 漏洞披露滞后:部分漏洞从POC披露到NVD首次公开需长达11年,如CVE-2009-4067。
二、开源组件生态安全风险分析
- 漏洞数量持续增加:Maven仓库漏洞数量最多,2020年达3533个;Rubygems漏洞增长最快,增长约10.5倍。
- 高危漏洞占比最高:2020年高危漏洞占比最高,数量为1826个,相比去年增长2.6倍。
- 不同仓库漏洞分布差异:Rubygems仓库含高危以上漏洞占比达96%,而Go仓库含高危以上漏洞占比最低,为39%。
三、组件漏洞依赖层级传播范围分析
- 一级传播影响范围:原始6416个含漏洞组件,经一级传播影响801,164个组件,扩大125倍。
- 二级传播影响范围:经二级传播影响1,109,519个组件,扩大173倍。
- 传播范围最广的仓库:npm仓库在两轮传播中影响范围最大,分别扩大234倍和307倍。
- 传播影响范围最小的仓库:Maven仓库在两轮传播中影响范围最小,分别扩大41倍和64倍。
四、开源文件潜在漏洞风险传播分析
- 同源文件占比高:80.35%的漏洞文件在开源项目中存在同源文件,共计14,118个。
- 漏洞文件传播范围显著:不考虑版本差异时,漏洞文件被766,877个开源项目引用;考虑版本差异时,被2,410,476个开源项目引用。
- 同源文件结构一致:多数同源文件仅删减了注释行,代码逻辑和变量名未变,具有潜在漏洞风险。
五、开源安全风险建议
- 建立开源管理领导组织:设立开源管理办公室或领导小组,统一管理开源使用风险。
- 识别开源成分:准确识别软件中的开源成分,形成清单和图谱,实现对开源成分的可知可控。
- 修复已知开源漏洞:优先修复已知漏洞,通过升级组件版本降低风险。
- 建立开源威胁情报体系:实时监控和同步威胁情报,提升安全响应效率。
- 弃用过老组件:避免使用已停止维护的组件,选择较新、活跃的组件。
- 使用左移安全工具:在早期研发阶段集成安全工具,降低后期治理成本。
总结
本报告揭示了开源软件供应链中存在的多重安全风险,包括漏洞数量增长、漏洞披露滞后、高危漏洞占比上升、依赖层级传播放大漏洞影响范围以及同源漏洞文件的广泛引用。为应对这些风险,建议从组织管理、成分识别、漏洞修复、威胁情报、版本更新和左移安全工具等方面构建系统化的开源安全防控机制,以保障开源软件在供应链中的安全使用。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载