近年来,开源软件发展迅猛,在移动互联网、云计算、大数据等领域逐渐形成技术主流。企业和个人在使用、参与或主导开源项目的过程中,一般都会涉及开源组件漏洞及许可证的相关问题。需要注意的是,产生这些问题的并不是开源软件本身,而是对开源软件的不当管理。
新思科技(Synopsys, Nasdaq: SNPS) 近日发布了《2022年开源安全和风险分析》报告(OSSRA)。该报告由新思科技网络安全研究中心
(CyRC) 编制,分析了由Black
Duck®审计服务团队执行的对2,400多项商业和专有代码库的并购交易审计结果。该报告强调了在商业和专有应用程序中使用开源的趋势,并提供了见解,以帮助开发人员更好地了解他们所处的互联软件生态系统,同时还详细地介绍了非托管开源所带来的安全隐患,包括安全漏洞、过期或废弃的组件以及许可证合规性问题。
2022年OSSRA报告强调,开源组件在每个行业都被广泛使用,并且是当今所有应用程序的构建基础。
使用过时的开源组件仍然是常态。易受攻击的Log4j版本也含有过时开源组件。在Black
Duck审计服务团队今年分析的2,409个代码库中,87%(即2,097)实施了安全与风险评估*。从运营风险/维护方面来看,在2,097个代码库中,85%的代码库中包含至少四年未更新的开源代码;88%的代码库中包含过时版本的组件;5%的代码库含有易受攻击的Log4j版本。
经过评估的代码库显示,开源漏洞数量总体减少。2,097个代码库经过安全与运营风险评估,其中包含至少一个高风险开源漏洞的代码库数量大幅减少。今年的被审代码库中只有49%包含至少一个高风险漏洞,2021年为60%。此外,81%包含至少一个已知的开源漏洞,与
2021 年 OSSRA 的调查结果相比减少了 3%。
许可证冲突总体上也在减少。 超过一半(53%)的被审代码库存在许可证冲突,与 2020 年的 65% 相比大幅下降。总体而言,特定许可证冲突在 2020
年至 2021 年期间减少了。
30%的被审代码库中都包含无许可证或使用定制许可证的开源代码。如果未经创作者/作者以授权许可证的形式明确允许,其他人则不能合法地使用、复制、分发或修改该软件。没有许可证的软件可能意味着使用开源组件带来的法律风险。定制化的开源代码许可证可能会对被许可方提出非预期的要求,因此经常需要对可能的知识产权IP问题或其它影响进行法律评估。
新思科技网络安全研究中心首席安全策略师Tim Mackey表示:“使用软件组成分析(SCA)工具的用户已经将重点放在减少开源许可证冲突和解决高风险漏洞上。得益于此,我们今年可以看到许可证冲突问题和高风险漏洞数量已经减少。但是我们不能忽略,经过审计的代码库中有超过一半仍然存在许可证冲突,近一半包含高风险漏洞。更令人不安的是,88%被审代码库中包含过时版本的开源组件。而且往往这些组件有可用的更新版本或补丁,但没有被采用。”
Tim
Mackey指出:“没有将软件升级到最新版本的理由有很多。但是,如果企业没有一份清单,准确列明其在代码使用的开源组件,那过时的组件可能就会被遗忘;直到变成一个易受攻击的高风险漏洞,企业才慌忙查找这个组件用在哪里,然后去进行更新。这正是Log4j面临的情况。这也是软件供应链和软件物料清单(software
Bill of Materials, SBOM)成为当下行业热点的原因。”
*在2022年的OSSRA报告中,“开源漏洞与安全”以及“开源维护”部分的数据基于包含风险评估的
2,097个代码库,而“许可证”部分的数据则基于全部的2,409个代码库。 |