在软件行业快速发展的时代,“效率至上”被当成软件研发的“信条”。为了满足软件高效迭代的需求,大量使用开源组件和第三方库成为了软件研发的首选。但开源组件/代码帮助企业提高了研发效率的同时,也带来了大量的安全隐患。
01 基础性开源项目无人维护,开源组件安全堪忧
根据Synopsys发布的《2023开源安全和风险分析》报告显示:调研的软件系统中,有76%的软件包含开源软件组件。平均每个代码库由80%的开源代码组成,84%的代码库中包含至少一个已知开源漏洞,比2022年版的OSSRA报告增加了近4%。
另外,报告中也提到,审查的1481个含风险评估的代码库中 ,91%存在过去两年内未进行任何更新的开源代码。(未进行任何更新,即在过去24个月中未开展任何功能升级、代码改进和安全问题修复活动。)可见,开源代码缺乏更新维护,对开源项目安全性影响有多大。
*图源:Synopsys发布的《2023开源安全和风险分析》
据Synopsys报告表示:虽然诸如Kubernetes之类的重要项目仍有良好的维护支持,但也存在很多项目没有或仅由少数几个人进行维护。
Twitter 前开源负责人Will Norris就曾表示:“在Twitter 从事开源工作的大多数关键人物都已经离开了。和我一起开发开源软件的所有工程师都不在了。随着新的管理层到位,新的业务优先事项出台,曾经备受重视的开源项目开始降级,取而代之的是管理层新确定的重点项目。”
目前,虽然Google等企业已经制定了相关的激励计划,来促进开源项目的稳定维护,但其他绝大多数企业依旧是没有任何激励举措,这也就导致了我们开发人员依赖的大多数基础性开源项目,如今变得无人维护。
而正如Synopsys的调研中所示:76%的软件包含开源软件组件,如今开发人员对开源组件/代码依赖程度之大。因此,对于企业而言,相应的开源组件安全风险管控也理应受到重视。