Endor Labs :2023年十大开源安全风险

首页 / 业界 / 报告 /  正文
作者:荏珺
来源:安全419
发布于:2023-03-10
近日,Endor Labs发布了一份新报告,确定了2023年的十大开源安全风险。报告显示,许多软件公司依赖于开源软件代码,但在如何衡量和处理与开源软件相关的风险和漏洞方面缺乏一致性。调查发现,在应用程序中超过80%的代码可能来自现有存储库的环境,而这些储存库可能存在明显严重安全威胁。因此,明确开源风险是构建应用程序安全防御的第一步。
 


2023年最大的开源风险

1. 已知漏洞

开源软件的组件可能包含其开发人员意外引入的易受攻击代码。这些漏洞可能在软件开发的下游被利用,从而危及其系统或数据的机密性、完整性以及可用性。
 
2.合规资源

攻击者通过现有项目或基础设施中的合规资源,将恶意代码注入组件。例如,可以利用软件包存储库中的漏洞,将恶意代码隐藏在软件包中进行分发。
 
3.名称混淆攻击

攻击者通过创建与合法开源或系统组件名相似的名称来诱骗受害者下载恶意软件,通过以下方式完成:
·名称错误:攻击者对原名称进行小范围修改;
·品牌劫持:攻击者采用或假冒其他著名的品牌,自行制作相似的软件;
·组合仿冒:攻击者使用不同语言或生态系统中的常见命名模式。
 
4.软件未修补

原始开源项目可能无法及时提供功能或非功能性错误的补丁,可能导致软件受到针对已知漏洞的攻击。
 
5.软件过时

一些开发人员为了更方面地操作,在更新版本出现时仍会选择使用过时版本的代码库,这可能导致项目错过重要安全补丁,提升安全风险。
 
6. 未跟踪依赖项

当软件组合分析工具未检测到组件依赖项中的漏洞、依赖项不是由使用包管理器建立或存在于上游软件组件中时,项目开发人员很可能无法及时察觉未跟踪依赖项的漏洞。
 
7.监管风险

使用未经许可的组件很可能会侵犯版权或违反相关规定,影响软件后续开发。
 
8. 尚不成熟的组件

依赖不成熟的组件或项目可能会带来重大的运营风险。例如,软件无法按预期运行、运行过程中稳定性出现问题等。
 
9. 可变组件

可变组件的过度使用对软件构建的稳定性和可重复性构成威胁。
 
10. 依赖性过小/过大

对组件的过度依赖或依赖不足都可能成为一种运营风险,这些风险包括账户接管、恶意拉取请求以及开发管道漏洞等。
 
缓解以上开源风险的方法

1、定期扫描代码及软件包

防止包泄露是一个即为复杂的问题,目前仍然没有一个完整都是解决方案,但企业可以参考一些新兴标准和框架。例如,微软S2C2F框架,可以根据特定安全需求和风险承受能力选择最适合其要求的保护措施并确定其防御优先级。
 
2、检查项目是否遵循开发最佳实践

要评估项目的质量和时效性,可以首先查看其发行说明,查找测试覆盖率或查看是否有CI/CD 管道标志。此外,还可以通过检查更新、请求数量来评估项目。
 
3、检查代码

为了确保代码安全,可以检查安装前后以及编码时的有效负载。同时,源代码仓库、更新频率和下游用户数量也需要涵盖其中。
 
4、评估软件成分分析工具

安全团队应确保软件成分分析(SCA)工具能够生成准确的组件清单,无论是在粗粒度级别(例如对于借助 Maven 或 npm 等包管理工具的依赖项),还是在细粒度级别(例如单个文件)。
 
5、使用符合开源许可条款的组件

为了确保合规性并避免潜在的法律问题,确定软件开发中使用组件(包括组件的链接方式、部署模型、预期分发方案等)是否符合许可非常重要。