近日,Endor Labs发布了一份新报告,确定了2023年的十大开源安全风险。报告显示,许多软件公司依赖于开源软件代码,但在如何衡量和处理与开源软件相关的风险和漏洞方面缺乏一致性。调查发现,在应用程序中超过80%的代码可能来自现有存储库的环境,而这些储存库可能存在明显严重安全威胁。因此,明确开源风险是构建应用程序安全防御的第一步。
2023年最大的开源风险
1. 已知漏洞
开源软件的组件可能包含其开发人员意外引入的易受攻击代码。这些漏洞可能在软件开发的下游被利用,从而危及其系统或数据的机密性、完整性以及可用性。
2.合规资源
攻击者通过现有项目或基础设施中的合规资源,将恶意代码注入组件。例如,可以利用软件包存储库中的漏洞,将恶意代码隐藏在软件包中进行分发。
3.名称混淆攻击
攻击者通过创建与合法开源或系统组件名相似的名称来诱骗受害者下载恶意软件,通过以下方式完成:
·名称错误:攻击者对原名称进行小范围修改;
·品牌劫持:攻击者采用或假冒其他著名的品牌,自行制作相似的软件;
·组合仿冒:攻击者使用不同语言或生态系统中的常见命名模式。
4.软件未修补
原始开源项目可能无法及时提供功能或非功能性错误的补丁,可能导致软件受到针对已知漏洞的攻击。
5.软件过时
一些开发人员为了更方便地操作,在更新版本出现时仍会选择使用过时版本的代码库,这可能导致项目错过重要安全补丁,提升安全风险。
6. 未跟踪依赖项
当软件组合分析工具未检测到组件依赖项中的漏洞、依赖项不是由使用包管理器建立或存在于上游软件组件中时,项目开发人员很可能无法及时察觉未跟踪依赖项的漏洞。
7.监管风险
使用未经许可的组件很可能会侵犯版权或违反相关规定,影响软件后续开发。
8. 尚不成熟的组件
依赖不成熟的组件或项目可能会带来重大的运营风险。例如,软件无法按预期运行、运行过程中稳定性出现问题等。
9. 可变组件
可变组件的过度使用对软件构建的稳定性和可重复性构成威胁。
10. 依赖性过小/过大
对组件的过度依赖或依赖不足都可能成为一种运营风险,这些风险包括账户接管、恶意拉取请求以及开发管道漏洞等。