12.3 供应链攻击加速

虽然我们在第1章“软件供应链威胁的背景”中讨论过一些指标,但在本文结束之际,我们认为再次强调软件供应链攻击的趋势只会继续加速是有必要的。这是由于多种因素造成的,例如现代数字环境和生态系统的复杂性增加,开源软件(OSS)和第三方软件的广泛使用,以及恶意行为者意识到软件供应链攻击的高效性和有效性。

我们引用的最令人震惊的指标之一是2022年Sonatype软件供应链状况报告。该报告发现在过去的三年中软件供应链攻击年均增长率为742%。报告还指出七分之六的漏洞是由于传递依赖关系造成的。这也得到了其他来源的证实,例如在讨论透明度和开源软件(OSS)的挑战时,我们在第4章所引用的来自Endor Labs的依赖管理状况报告。

单个易受攻击的组件或代码片段也可能被其他项目重用,从而导致其在生态系统中的存在呈指数级分布同时增加风险。例如,根据Sonatype(www.sonatype.com/resources/log4j-vulnerability-resource-center)的数据,Log4j中易受攻击的代码被数百个项目重用,并通过这种方式传播到其他成千上万个组件(总下载量超过1.5亿次),并且在截至本文撰写时,每天仍有数万次下载量。研究人员现在发现成千上万的恶意软件包正在跨生态系统传播,表现了恶意行为者越来越关注软件供应链并促成了我们现在行业中不断看到的软件供应链攻击指数增长。

同一份Sonatype报告显示一个相关原因是开源软件(OSS)供应和消费的巨大增长。如摘自Sonatype报告的图12.3所示,在调查的主要生态系统中现有超过300万个项目,4700万个版本,并且每年的请求量超过3万亿次,这些都导致了所调查的生态系统同比增长超过30%。

虽然开源软件(OSS)的增长和消费通过代码重用加速了几乎所有行业的速度、效率和创新,但也由于第三方代码中的漏洞在各处被重用而产生了重大的系统性风险。这些广泛被使用的项目和依赖关系也是最易受攻击的。从某种意义上说,由于广泛使用开源软件(OSS)增加了行业的攻击面,开源软件(OSS)项目的广泛成功和采用也会增加行业风险。

由于传递依赖关系的存在问题进一步加剧,平均每个库有5.7个传递依赖关系并且62%库的第三方依赖中存在漏洞。因此,确保依赖项经过谨慎考虑选择是很重要的,因其可能伴随的漏洞和潜在风险。一些供应商已经开始整合功能,帮助开发人员在软件开发过程中进行组件选择时做出基于风险的决策。

继续依赖管理的话题,Sonatype报告提出了普通开发人员必须面对的几个问题。这其中包括跟踪和管理150个初始依赖项,每个应用程序每年多达1500次依赖变更,还需要有足够的安全和法律专业知识来选择最安全的版本。现实环境下,许多开发人员是通过交付速度对其进行评估或激励的,这种分析和细微差别往往不是关键考虑因素,更不用说实际和现实了。

虽然Sonatype报告是最有名的报告之一,但它绝不是证实软件供应链攻击呈指数增长的唯一来源。开源软件(OSS)的加速使用,伴随着恶意行为者对供应链这一攻击媒介的日益关注以及许多有能力做出更安全决策的实体(如软件开发人员)的认知过载,创造了一个完美的风暴。

遗憾的是我们并未看到这一趋势有所下降,因为恶意行为者已经意识到这种方式的高效性和成果。事实上,我们预计攻击者的创新性和创造性将持续发展,不仅针对开源软件(OSS)组件,还会针对服务和软件提供商,正如我们在一些标志性案例中展示的那样。

为了进一步证明趋势有效性,2022年欧洲网络安全局(ENISA)将软件依赖关系供应链妥协列为到2030年出现的头号威胁(见图12.4)。这一威胁排在其他关键领域之前,如虚假信息传播、技能短缺和人工智能滥用的潜在风险。这表明软件供应链威胁不仅在当前显得至关重要,正如我们讨论的趋势以及历史背景和软件供应链攻击目录中可以看出,而且在未来一段时间内它仍将是各个组织和国家面临的相关威胁。