95%的开源漏洞隐藏在可传递依赖项中
Endor Labs研发部门Station9最新公布的研究报告表明,95%的开源漏洞存在于可传递依赖项中——开发人员未选择的开源代码包,但间接地被拉入项目中。
“如今,开源软件已经成为关键基础设施的支柱,但即使是资深开发人员和企业高管也经常对这个事实感到吃惊:现代应用程序中80%的代码来自开源软件。”Endor Labs首席执行官Varun Badhwar说道。
“开源安全这是一个大竞技场,但在很大程度上被忽视了。事实上开源安全性需要移动到优先级列表的顶部。”Badhwar补充道。
开源安全风险并不一定与开源代码在程序中的占比相关,事实上,大量开源安全风险与没有直接引用的依赖项有关,尤其是“传递的”,或自动拉入代码库的间接依赖项。可以说,可传递依赖项就是开源安全的那块短板。
调查的主要亮点数据和结论如下:
- 绝大多数漏洞(95%)确实存在于可传递依赖项中,这使得开发人员很难评估这些问题的真正影响或它们是否可访问。
- 两个最流行的开源风险评估社区项目——Census II和OpenSSF的关键性分数表明,确定开源风险严重性并不容易。事实上,Census II中75%的软件包的严重性得分低于0.64;企业需要自己决定哪些开源项目存在较大安全风险。
- 在最近的供应链攻击中,依赖关系混淆常被攻击者利用。同时,常见风险指标通常无法标记这些攻击。
- 50%最流行的Census II软件包在2022年没有发布新版本,30%在2018年之前发布了最新版本,未来可能会导致严重的安全和运营问题。
- 新并不意味着安全,即便升级到最新版本的软件包,仍有32%的可能性存在已知漏洞。
- 可访问性是确定开源软件漏洞优先级最重要的标准;仅基于安全指标(如CVSS分数)或忽略测试依赖项中的漏洞只能将漏洞可能性降低20%。