根据Veracode的研究报告,近三分之一的应用程序在首次扫描时就发现了安全缺陷。研究表明,到了应用程序在生产中运行五年的时候,几乎70%的程序包含至少一个安全漏洞。这一现象引起了广泛关注,尤其是在过去一年中,随着对软件物料清单(SBOM)的重视,Veracode的研究团队还对3万个在GitHub上公开托管的开源库进行了审查,发现其中10%的库在近六年内没有进行任何提交(即源代码的变更)。
Veracode的首席研究官ChrisEng指出,未在六年内有提交的库并不一定意味着这些库增加了风险。Eng表示,该研究旨在让人们更加关注在应用开发中监控和扫描第三方代码的必要性。“政府机构和企业可以采取的最重要步骤是使用软件组成分析(SCA)工具来查找存在的瑕疵,从而暴露潜在漏洞的库,”Eng提到。“许多人对此已有所了解并在实践中。与此同时,理解所使用的开源库时,团队还需要确保更新到库的最新版本。”
此外,Synopsys软件完整性组的高级安全解决方案经理MikeMcGuire提到,88%的应用程序包含在过去两年内没有开发活动的开源组件。McGuire认为,根本问题并非这些开源项目被遗弃或缺乏维护,而是许多组织在其软件中构建了这些被遗弃的开源组件。“真实问题在于许多组织正在以这些被遗弃的开源组件来构建其软件,”McGuire说道。“在许多情况下,这涉及到意识问题。一些组织未意识到其依赖的库已失去支持,而其他一些组织完全不知道自己依赖的是哪些项目。”
Vulcan Cyber的高级技术工程师MikeParkin表示,Veracode关于创建安全开发流程的建议是合理的。但他认为,将开源称为“脆弱”并不合适。“发现10%的GitHub库在六年内未更新并不能代表整个开源社区,”Parkin称。“考虑到众多项目被遗弃、分叉或由新库所取代,这个数字并不令人惊讶。商业库也会被舍弃或被新库取代。这并不意味着脆弱,而是自然演化的结果。”
GuidePoint Security的应用安全总监KristenBell提到,这10%的比例展示了允许开发者在其应用中自由使用开源代码的缺点。Bell表示,当前安全团队正努力追踪其库中的漏洞,寻找开发人员引入的各种问题。“相反,组织应在批准使用之前,采用开源组件的审核流程,这在本质上与许多安全团队在技术采购过程中实施的第三方供应商管理流程并无太大不同。”
JupiterOne的首席信息安全官SounilYu指出,Veracode的研究显示开源软件社区需要一种类似细胞凋亡的机制——即细胞死亡的过程。“过时且易受攻击的代码应逐步从生态系统中清除,”Yu表示。“如果我们不积极主动地清除代码,这将是非常困难的。至少我们应该将其标记为潜在的有毒或危险,以便如果有人选择重用它,他们知道自己在做什么。”
通过对开源库和应用程序缺陷的深入分析,这些研究为开发更安全的软件提供了宝贵的见解和指南。采取适当的措施和工具,能够有效降低由于开源库引代来的潜在安全风险。
Leave a Reply