近日,Black Duck发布了其2025年度《开源安全和风险分析报告》,这份报告深入探讨了开源软件在现代应用开发中的普遍性和复杂性,以及随之而来的安全漏洞、许可问题、组件维护和行业趋势等关键风险。报告指出,开源软件无处不在,如果不正确识别和管理,可能会带来重大风险,因此提供了对开源组件使用情况的全面审计分析,包括安全漏洞、许可证合规性以及维护更新的重要性。报告中强调了软件物料清单(SBOM)的重要性,并提供了行业特定的洞察,是软件开发、安全和风险管理专业人士不可多得的宝贵资源。
开源软件在现代应用开发中扮演着至关重要的角色,它不仅加速了开发进程,还降低了成本,提高了灵活性和可扩展性。然而,随着开源软件的广泛使用,与之相关的安全和风险管理问题也日益凸显。2025年度的“开源安全和风险分析”(OSSRA)报告深入分析了开源软件的安全漏洞、许可问题、组件维护和行业趋势,揭示了开源软件无处不在且可能带来重大风险的现实。
报告指出,97%的代码库包含开源代码,每个应用平均含有911个开源组件。开源代码库的复杂性在过去四年中增加了两倍,主要原因是对“传递性依赖项”的使用增加。这些依赖项是其他软件组件运行所依赖的开源库,它们的存在使得追踪和管理变得异常困难。报告中提到,64%的开源组件是传递性依赖项,如果不使用自动化工具,几乎不可能定位或跟踪它们。
安全漏洞是开源软件中的一个普遍问题。81%的代码库包含高风险或重大风险漏洞,其中近一半是由传递性依赖项引入的。报告中特别提到了jQuery、jackson-databind和Spring Framework等开源组件,它们经常包含需要定期管理和修补的漏洞。此外,过时组件的使用也是一个严重问题,90%的代码库中包含最近四年没有进行任何维护与更新的过时开源组件,这不仅放大了安全风险,还带来了合规性和兼容性问题。
开源许可证的合规性同样重要。报告发现,56%的代码库存在许可证冲突问题,主要是由于传递性依赖项与另一个组件的许可证不兼容造成的。此外,33%的代码库包含无许可证或定制许可证的开源组件,这通常需要法律审查,因为这些许可证可能包含不希望看到的要求,或者需要对可能的知识产权问题进行评估。
为了提高软件安全性和透明度,报告强调了软件组成分析(SCA)和漏洞数据库(SBOM)的重要性。SBOM提供了软件组成的透明度,使组织能够了解其环境中运行的软件,并最终使安全团队能够了解风险、跟踪依赖项和审计软件。SCA工具通过代码扫描、依赖关系分析、漏洞和许可证识别以及SBOM生成等方式,帮助组织生成SBOM,并提供持续监控功能,保持SBOM的最新状态。
报告还提供了一些关于如何管理开源许可证风险的建议。使用自动化SCA工具可以创建最新的、准确的SBOM,并标记与软件分发和许可证要求相冲突的任何组件。Black Duck SCA等工具可以为任何应用或容器提供准确的SBOM,包括许可信息,帮助组织避免导致代价高昂的诉讼或损害宝贵知识产权的许可证问题。
维护和运营因素对风险的影响也不容忽视。90%的代码库包含过时4年以上的开源组件,91%的代码库包含在过去两年中没有任何维护或更新的组件。这些数据表明,许多应用和Web服务依赖于不再更新的开源软件,这可能会使它们容易受到未被发现或未修补的安全漏洞攻击。
综上所述,开源软件虽然带来了许多好处,但也伴随着必须积极管理的重大风险。组织需要全面了解其软件供应链、稳健的安全实践以及主动的许可和维护方法,以避免潜在问题。通过实施SCA工具、SBOM和适当的卫生实践,组织可以降低风险,并继续安全有效地利用开源软件的优势。
这篇文章的灵感来自于2025年度的“开源安全和风险分析”报告。除了这份报告,还有一些同类型的报告也非常有价值,推荐阅读,这些报告我们都收录在同名星球,可以自行获取。
以上为节选样张,关注公众号【蝉鸣报告】回复领取PDF完整电子版(无广告)。
【蝉鸣报告】每日更新最新硬核报告,覆盖产业报告、全球化、经济报告、趋势等全领域。