商业和企业软件开发人员在开源软件组件更新方面越来越有章法,旨在降低软件供应链攻击的风险。但同时,恶意黑客也变得越来越狡猾:研究人员警告称,恶意黑客正侵蚀开源项目,意图将开源项目转化为恶意软件分发渠道。过去,攻击者只是利用常用开源组件中的现有漏洞,知道这些漏洞可以让依赖过时软件的许多公司企业沦为盘中餐。现在,攻击者变得更加主动,经常渗透开源项目,向其中植入被黑组件。一旦毫无戒心的公司企业下载使用,攻击者就可藉由这些包藏祸心的组件轻松入侵。Sonatype最近发布的《2020软件供应链状态》报告显示,此类所谓“下一代”供应链攻击显著增长,去年暴增430%。Sonatype首席执行官Wayne Jackson解释道:“对手的攻击活动正往‘上游’转移。他们可在‘上游’感染一个开源组件,在其分发到‘下游’时再策略性地秘密利用其中埋入的漏洞。”正如报告所解释的,借助这些下一代供应链攻击,攻击者正利用开源软件开发的固有特性来攻击其自身。开源项目依赖志愿者的贡献,这些项目本身常包含来自其他项目的数百甚至数千个依赖项。报告解释称,开源项目本就仰赖共同信任,这给恶意黑客创造了轻松狩猎他人的沃土。 事实上,攻击者正通过直接针对开发流水线的自动化恶意软件,找寻推进其恶意组件植入工作的办法。5月曝光的GitHub潜藏恶意软件,就是近期下一代软件供应链攻击的明显例子。这款恶意软件名为Octopus Scanner,针对参与开发NetBeans项目的用户。该软件旨在将后门代码植入GitHub存储库上的NetBeans组件,而存储库的合法拥有者甚至对此毫无所觉。也就是说,这些组件的开发人员每次公开发布代码,都是在为攻击者铺路。GitHub安全研究员Alvaro Muíoz在一篇关于Octopus Scanner的博客中解释道:“在开源软件环境中,这种方式为恶意软件提供了有效的传输手段,因为受影响的项目可能会被克隆、分叉,以及用于多个不同系统。这些代码生成的实际构件甚至可能以与原始生成过程无关的方式进一步传播,更难以跟踪。”正如Sonatype报告所示,Octopus Scanner远非孤立的复杂下一代供应链攻击事件。在此之前,今年春天,ReversingLabs的研究人员就发现了利用误植域名方法进行恶意活动的攻击。黑客在Ruby Gems包存储库中植入了760个恶意代码包,包名仅与合法包略有差异。与此同时,本月早些时候,美国黑帽大会上,研究人员展示了如何使用下一代方法攻击Node.js应用程序,其中就利用了用于跟踪内部程序状态的隐藏属性。这些下一代软件供应链攻击的兴起,可谓老生常谈。从业时间够长,就会知道什么叫好人难做。很多安全团队开始努力阻止某种攻击时,恶意黑客就会转向另一种方法。正如Sonatype所指出的,这一最新趋势之所以兴起,有部分原因是很多企业在减少开源组件风险暴露方面做得很好,黑客不得不切换赛道。采用DevSecOps实践的公司在更新依赖项方面比普通公司快530倍。根据该报告的研究,49%的公司现在能够在检测到开源漏洞后一周内完成修复。 情况正在不断改善,但专家警告说,即使下一代攻击兴起,公司企业抵御老旧攻击的立场只能加强不能减弱。报告数据显示,新的开源漏洞在公开曝光后三天内即出现在野漏洞利用,大约86%的公司企业在此窗口期内对这些漏洞利用程序不设防。