-
-
[分享]保护开源代码供应链或可有助于防止下一次大型网络攻击
-
发表于: 2021-12-1 10:27 9413
-
SolarWinds遭受的供应链攻击引起了轰动,在安全领域引起了轩然大波,许多CISO和安全主管都在问:“我的软件供应链安全吗?”
经过数月的分析,我们知道许多组织容易受到供应链攻击。在一个商业世界中,我们都非常依赖第三方组件,这些开源软件中的漏洞需要严格的安全测试。
没有一个组织是一个孤岛,SolarWinds事件是软件供应链攻击的一个例子,在这种攻击中,被破坏的代码被推到客户环境中运行。结果,许多SolarWinds的客户也受到了影响,其中包括几家《财富》500强公司。这种场景是供应链攻击发生的几种方式之一。
我们如何做才能最好地防御此类事件?
保护软件安全的出发点是对知识的全面了解。通过清楚软件供应链中的关键内容,了解软件中都有什么来更准确地做出相关防御。另一个需要注意的是,CISO和DevSecOps团队需要关注软件中的代码安全及在开发过程中对开源组件的依赖。
开源对犯罪分子来说是“唾手可得的果实”
今天,开源组件存在于所有类型的软件中——甚至是私有软件。这就是软件开发的本质。开发团队不断地使用开源包和容器来推动创新和开发新代码。
事实上,Sonatype、IT Revolution和Muse.dev发布的2021年软件供应链状态报告显示,去年,四大开源生态系统共发布了6,302,733个新版本,并引入了723,570个新项目。
该报告指出,这些社区目前共包含37,451,682种不同版本的组件,这意味着全球供应量同比增长20%。但这种增长也意味着随着开源变得越来越普遍,试图利用它的犯罪兴趣也在增加。Sonatype的报告发现,针对积极渗透开源代码的攻击增加了430%。
报告的作者在研究中说:“世界上的开源社区正面临着一种新的、迅速扩大的威胁,这与被动的对手利用已知的野外漏洞无关,而与侵略性的攻击者直接将恶意软件植入开源项目有关。”
开源之所以如此有价值,也是因为它的本质。如果没有管理,没有明确的监督,开源存储库就会被破坏。软件行业目前并没有跟踪所有代码的源代码,也没有对这些国际代码工厂中应用的安全标准等级进行分级。任何有良好或恶意意图的人都可以轻松地将其代码插入存储库中。因为开源软件经常包含漏洞,所以对这个“最容易摘到的果实”的攻击增加了。
跟踪开源依赖项是一项艰难的任务。但是安全领导者必须知道开发人员从哪里获得他们的开源和第三方打包代码、容器和基础设施作为代码。
企业如何更好地管理开源供应链的风险?
从组织的高层到整个IT部门,每个人都应该掌握开发中使用的开源代码的安全级别。以下三个关键步骤可以帮助公司更加了解开源:
创建和维护软件物料清单
确定代码创建位置的安全级别
3.加强软件代码安全检测,包括自研代码及开源组件代码
在现实中,迈出第一步的谷歌为开源代码库的分级树立了一个质量榜样。谷歌使用谷歌Scorecard程序对200,000多个开放源代码存储库进行了从1到10的排名,以确定这些“代码工厂”的安全性。
然而,对于一个公司来说,要在内部大规模复制谷歌的工作需要大量的人工资源,这将增加开发人员和安全团队之间的摩擦。复制谷歌模式或许存在困难,但可以通过以下这几点来为企业软件中开源组件安全增加保障:
确定开源组件的出处(来自哪个存储库)
开发人员想要创新、构建和推送代码,而安全团队想要确保代码是安全的。自动化DevSecOps过程可以消除许多保护代码所需的手动步骤。如静态代码检测工具及SCA等工具,可以高效帮助开发人员及安全人员解决软件中的安全缺陷问题。
标准化、协作和透明度
作为一个集体软件行业,我们需要问自己如何创建和记录代码存储库的标准,并使它们公开访问,这样代码的风险对任何想要使用它的公司来说都是清楚的。
这一过程应包括制定安全标准、与标准相一致的分级标准,以及建立公开透明的分级机制。
越来越多的公司,无论大小,开始进行安全防御准备。这将促进行业内更大的合作,提高对代码供应链安全建设的信心,并应该是减少大规模网络攻击的积极力量。
参读链接:
https://www.helpnetsecurity.com/2021/11/24/securing-open-source-code-supply-chains/
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!