每个组织都依赖软件供应链。熟悉的应用程序均构建在由开源代码、API 和保持其顺利运行的第三方集成功能组成的网络上。正因为这种相互依存的动态架构,所以引入新工具则意味着选择信任其整个开发生态系统,而不仅仅是工具本身。
软件供应链攻击正是利用这一现象,成为越来越常见的攻破企业网络的攻击方法。Gartner 预测,到 2025 年,全球 45% 的组织会遭遇软件供应链攻击,比 2021 年增加三倍。
攻击者并非直接攻破目标的网络,而是通常利用目标所依赖的第三方应用或开源代码的脆弱性。这提供了对目标网络的间接访问权限。
换而言之,软件供应链攻击有时更具机会性,而非针对性。攻击者并不是从目标往上游寻找供应商,而是可能破坏一些广泛使用的东西,例如开源代码或特定应用程序,然后获取各种形式的收益。此类攻击的吸引力在于,与所需的付出相比,其回报非常可观。
攻击者通过各种方式获得对第三方资源的访问权限,使用盗窃的账户凭证或利用零日漏洞或未修补的漏洞。然后,他们利用该访问权限向下游发起攻击。软件供应链攻击可以采取各种形式,包括:
第三方网络访问权限。如果攻破了第三方或供应商,攻击者就可以利用这些权限来窃取客户和合作伙伴企业的数据,传播恶意软件等。例如,在 Kaseya 攻击事件中,网络犯罪团伙 REvil 利用了该公司远程监控和管理解决方案所使用的服务器中的一个漏洞。随后,REvil 利用提升权限,向数百名 Kaseya 客户部署了勒索软件。
软件/应用程序更新。设备可以下载隐藏在更新包中的恶意软件。2017 年,俄罗斯攻击者采用了这种方法,他们将 NotPetya 恶意软件嵌入在乌克兰一款热门会计软件的更新包中。攻击的影响范围远不止乌克兰,据白宫估计,此次攻击造成全球损失 100 亿美元。
开源代码包。公司通常会使用开源(或可公开访问的)代码,以最大限度提高软件开发的效率。然而,如果这些代码中存在漏洞,使用这些代码的组织就会面临风险。除了利用已知的漏洞外,攻击者还可以将恶意代码植入这些代码包中,作为传播恶意软件的另一途径。
还要注意的是,虽然基于软件的攻击最为普遍,其中 66% 的攻击专注于供应商代码,但供应链攻击可以采取各种各样的形式。例如,微芯片、笔记本电脑、物联网 (IoT) 设备和操作技术 (OT) 都可能遭到破坏。固件(即嵌入硬件中的软件)也可以成为攻击目标。
SolarWinds 攻击可以说是最著名的软件供应链攻击案例。2020 年 12 月,网络安全提供商 FireEye 报告称,他们遭受了一次攻击。俄罗斯网络犯罪团伙 Nobelium 将目标瞄准了 FireEye 的 IT 监控软件供应商 SolarWinds,并将恶意代码插入该公司的一个软件更新包中。共有 18,000 个企业客户下载了这个受感染的更新包。
SolarWinds 表明,对一个受信任的善意供应商发起攻击,可能导致攻击使用该供应商的组织。
而且,虽然许多公司要求供应商满足 SOC 2 合规性或渗透测试等安全标准,但没有任何组织可以保证这可防御攻击。
例如,2021 年 12 月,Apache 披露了其开源日志库 Log4j 中的一个严重漏洞。Log4j 使用如此普遍,网络安全 和基础设施安全局 (CISA) 主任 Jen Easterly 甚至说:“每个人都应该假设自己已经暴露,易受攻击。”攻击者没有浪费任何时间,立即利用该漏洞,并继续攻击。
虽然新闻报道的通常是大规模攻击或知名度高的受害者,但软件供应链攻击并不止针对大公司。攻击者也可能用这种方式发起一些较小的活动,例如瞄准开发环境,此类活动不一定会成为头条新闻。因此,这种攻击方式可能比研究表明的结果更加普遍。
因此,如果没有供应商可防御攻击,那么公司该如何应对供应链攻击呢?减少组织对第三方的过度信任是一个不错的开始。实施 Zero Trust 架构可以在这方面发挥重要作用。
基于边界的模型信任网络内的用户和设备,Zero Trust 则不然,它假设网络内也可能存在攻击者。Zero Trust 架构会根据身份和上下文来评估用户、设备和工作负载,并根据实时评估来动态做出访问控制决策。具体而言,Zero Trust 架构通过以下方式保护企业网络防御软件供应链攻击: