当前,应用软件大多数基于开源的框架,开源框架的源代码、叠加的自研源代码。都需要进行安全漏洞测试。企业的软件开发比以往任何时候都更加依赖开源项目,也因此需要管理组件和第三方供应商中的漏洞带来的风险。
FORRESTER安全与风险会议分析师在Forrester安全与风险2021会议上建议,公司需要采取措施将供应链中第三方软件带来的风险降至最低。在过去几年里,供应链攻击已显著增长。
开源软件漏洞引发安全问题
随着外部攻击越来越多地通过第三方软件中的漏洞(例如开源项目或第三方供应商的漏洞)引发担忧。
根据Forrester对530个安全决策的调查,超过三分之一 (35%) 的外部攻击是通过利用漏洞进行的,而另外三分之一 (33%) 来自对第三方服务或软件制造商提供的软件漏洞进行破坏。由此可见,在软件开发期间加强对代码中安全漏洞的检测及修复,可以大大有效避免漏洞利用引起的网络攻击。
Forrester高级分析师Alla Valente表示,如果公司不采取措施解决这个问题,第三方风险的增长可能会破坏企业应用程序的安全性。
她表示,我们面临很多第三方风险,而且还在不断升级。部分原因是当前第三方的数量比以往任何时候都多。
安全法规促使企业重视软件安全
随着全球不同国家政府机构开始起草安全软件指南,这个问题将在2022年变得更加重要。
例如,拜登政府在5月签署了一项行政命令,要求国家标准与技术研究所(NIST)为联邦承包商起草指导方针,以更好地保护软件安全。这些指导方针包括为政府的产品提供软件材料清单,并证明开发人员构建环境的安全性。NIST已经制定了保护物联网设备和软件安全的指导原则草案。
我国的《关键基础设施保护条例》、《数据安全法》、等保2.0等政策也明确表示了在软件安全、数据安全等各个方面企业应准备的工作和承担的相应责任。
开源软件包漏洞难确定
“大多数开发人员只是连接到一个存储库,然后下载他们正在使用的任何软件包的最新软件版本,但这些软件包是否存在漏洞,或者每个人是否都在使用相同的版本?” Forrester首席分析师Condo表示,如果不关注此类问题,公司只是在推迟安全问题。
开源软件的不一致性质仍然是一个关键问题。虽然主要的软件包通常管理良好,但许多企业最终使用的包(通常是通过更常见的组件的依赖关系)管理得不太好,可能存在漏洞。
尽管开源软件项目平均修复漏洞的时间显着下降(从2011年的371天下降到2021年的28天),但主要生态系统托管的软件包数量显着增长,根据软件安全公司Sonatype发布的一份报告,去年增长了20%。
Condo表示,公司需要深入研究在软件开发中所依赖的软件包,并确定它们是否构成安全问题。他说:“了解你真正依赖的是什么真的很重要。哪里是最薄弱的环节,这些问题会在哪里出现,我们应该使用专有包或策划好的东西。”
AI/ML因素
随着越来越多的企业追求基于人工智能和机器学习(AI/ML)的分析,他们也面临着类似的问题。AI/ML代表了开源问题的一个特定方面,因为开源项目中编码了大量的算法。分析师Valente表示,企业应确定这些组件是否对其业务构成风险。
“组织正在利用人工智能和机器学习,问题不在于他们是否会使用人工智能和机器学习,而是他们是否会购买或构建它,”Valent表示。“如果他们打算购买ML或AI模型,在很多情况下它是开源的,甚至商业软件也有75%到90%是开源的。”
提前发现问题降低成本
企业需要在软件开发的早期关注安全问题。Condo表示,确定开源依赖项带来安全问题并将其排除在外,比试图在部署后关闭软件中发现的安全问题要便宜得多。
同样要注意的是,在自研代码中存在的安全漏洞一样需要及时检测静态代码安全和修正缺陷。数据显示,在软件测试、发布阶段纠正缺陷的成本是编码阶段发现并纠正缺陷的成本的15-90倍,如果在交付用户之后才发现并解决缺陷,这个数字将达到50-200倍。因此,在编码实现阶段发现并解决尽可能多的缺陷,能够极大降低缺陷管理成本,据相关统计数字估计,这个成本至少可以降低1/3。
Condo表示,在软件开发初期不够关注静态代码及开源组件的安全,就会制造更多的技术债务和安全问题,将不得不以更昂贵的方式处理下游问题。安全应该成为整个软件开发链的一部分,诸如如何更安全的开发软件、保护API安全和数据安全,并建立安全相应机制。
参读链接:
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/123750.html