近日,Synopsys发布了一份报告,该报告检查了2400多份来自合并和收购交易的商业和专有代码库的审计结果,重点介绍了商业和专有应用程序中开源代码使用的趋势,并提供了一些能够帮助开发人员更好地了解软件生态系统的见解。以及还详细介绍了不受管理的开源代码带来的普遍风险,包括安全漏洞、过时或废弃的组件以及许可证合规性问题。
调查结果强调了这样一个事实——即开源代码及相关组件在每个行业、任何地方都得到了使用,并且是当今构建的每个应用程序的基础。
与此同时,过时的开源也仍然是常态——包括存在着易受攻击的 Log4j 版本。从操作风险以及维护的角度来看,2097个代码库中有85%包含已过期四年以上的开源代码。88%使用了不是最新可用版本的组件。5%包含了易受攻击的Log4j版本。
经过评估的代码库显示,开源代码的漏洞总体上正在减少。2097个被评估的代码库中包括安全性和操作风险评估。包含高风险开源漏洞的代码库数量大幅度减少。今年经审计的代码库中有49%包含至少一个高风险漏洞,而去年这一比例为60%。此外,81%的评估代码库包含至少一个已知的开源代码漏洞,与2021年OSSRA的调查结果相比至少减少了3%。
许可证冲突总体上也在减少。超过一半(53%)的代码库包含许可冲突,与2020年的65% 相比大幅下降。总体而言,在2020年至2021年期间,具体的许可证冲突全面减少。
评估的代码库中有20%包含没有许可证或定制许可证的开源代码。由于软件许可管理着使用它的权利,因此没有许可证的软件面临着使用开源组件是否会带来法律风险的两难境地。此外,定制的开源许可证可能会对被许可人提出不必要的要求,并且通常需要对可能出现的知识产权问题或其他影响进行法律评估。
Synopsys网络安全研究中心战略家首席安全官Tim Mackey表示,SCA软件的用户将注意力集中在减少开源许可证问题并解决高风险漏洞上,这一努力反映在今年所看到的许可证冲突和高风险漏洞的减少上,可问题依旧存在,所审核的代码库中有一半以上仍包含许可证冲突,近一半仍包含高风险漏洞。更令人不安的是,88%的代码库[带有风险评估]包含过时版本的开源组件,其中包含可用的更新或补丁但没有应用。
Mackey认为没有使软件完全保持最新是有正当理由的。除非一个组织对其代码中使用的开源保持准确和最新的清单,否则一个过时的组件可能会被遗忘,直到它变得容易受到高风险攻击,然后才会争先恐后地确定它的使用位置并对其进行更新。这正是 Log4j所发生的,也是为什么软件供应链和软件物料清单(SBOM)会成为如此热门的话题。