作者:Vishal Garg
软件供应链攻击在过去几年中迅速增加,包括SolarWinds和Log4Shell在内的一些备受瞩目的事件提高了人们对它们对网络安全构成的潜在风险的认识。
这些攻击引起了公共和私营部门的广泛关注,因此,美国总统于 2021 年 5 月 12 日发布了一项关于改善国家网络安全的行政命令,其中有一个部分专门致力于改善软件供应链安全。
什么是软件供应链攻击?
软件供应链攻击涉及渗透或操纵软件开发、分发或维护的各个阶段,以引入恶意代码或损害软件产品的完整性。
早期妥协
多年来,软件供应链攻击已经变得非常复杂,并且通常与高级持续威胁(APT)相关联,而在早期,软件供应链攻击的概念并不像我们今天所知道的那样广为人知。
尽管这些攻击已经存在了几十年,但由于网络安全的不断发展和有限的历史文档,确定确切的“第一次”攻击可能具有挑战性。
最早记录在案的供应链攻击事件之一通常归因于1980年代初发生的名为“Ken Thompson黑客攻击”的事件。链接到原始论文 这里.这次攻击不是恶意行为,而是软件开发和分发过程中潜在漏洞的展示。
虽然Ken Thompson Hack是一个值得注意的早期例子,但重要的是要注意,在这次演示之前和之后,供应链攻击可能以各种形式发生。近年来,由于软件系统的复杂性和互联性日益增加,术语“软件供应链攻击”变得越来越常用。然而,潜在的漏洞和潜在的利用已经在软件开发和分发领域存在了很长时间。
最早记录在案的实际软件供应链泄露实例之一发生在 2003 年,当时发生了一个名为“Linux 内核后门事件”的事件。该事件涉及在Linux内核的源代码中插入后门,Linux内核是Linux操作系统的| 核心组件。
进化与技术
从早期开始,软件供应链攻击多年来在复杂性和范围上不断发展。
21世纪第一个十年的后半段标志着软件供应链攻击演变的重大转折点。像“Stuxnet”和“Operation Aurora”这样的著名事件表明,国家资助的行为者有能力通过渗透软件开发流程来破坏关键基础设施和企业系统。Stuxnet对西门子工业控制软件的操纵突显了破坏关键部门使用的软件的潜在后果。
2010年代中期引入了更复杂的攻击。“ NotPetya”勒索软件利用乌克兰会计软件的受损软件更新在全球范围内传播,造成广泛的破坏。此事件展示了攻击者破坏受信任分发渠道的可能性,导致组织质疑软件更新的完整性。
近年来,软件供应链攻击不断发展,利用当今软件生态系统的互联性。2020 年“SolarWinds 攻击”等备受瞩目的事件揭示了现代供应链的复杂性,攻击者破坏软件更新以渗透到众多组织中。
此外,开源软件和第三方依赖关系的激增带来了新的挑战。攻击者越来越多地以这些组件为目标,利用众多应用程序使用的库中的漏洞。
攻击技术多年来一直在发展,攻击者可能以各种方式利用漏洞,例如:
- 受损更新:攻击者渗透到合法软件更新中,引入恶意代码,在安装时针对毫无戒心的用户。
- 恶意依赖关系:攻击者操纵软件开发中使用的第三方库或依赖关系来引入漏洞。
- 代码注入:攻击者在软件开发过程中注入恶意代码,针对特定功能或组件。
由于攻击技术的多样性和威胁形势的不断发展,目前还没有通用或公认的词典来描述各种攻击技术。因此,可能很难对这种性质的每个潜在已知妥协进行分类。
云原生计算基金会 (CNCF) 安全技术咨询小组 (TAG) 创建了一个供应链妥协目录,记录了自 2003 年以来的几次妥协。该小组的目标不是对每个已知的供应链攻击进行编目,而是捕获每种类型的几个示例,以了解模式并开发最佳实践和工具。
该目录提供了妥协的详细信息、妥协发生的年份、妥协类型以及影响和更多信息的参考链接。妥协分为七个不同的类别,但是,随着将来发生新的或更明显的妥协,这些类别可能会发生变化。
攻击和威胁分类
一些主要的框架,如MITRE ATT&CK,CAPEC和ENISA提供了攻击分类法。
- MITRE ATT&CK框架列出了攻击的“初始访问”阶段的“供应链入侵”的三个不同的攻击子类别。
- 常见攻击模式枚举和分类 (CAPEC) 具有单独的供应链攻击域,并在此域下提供八个不同的抽象攻击类别。这八个类别进一步细分为特定攻击技术的标准和详细级别模式。
- 欧盟网络安全局 (ENISA) 在其供应链攻击威胁态势文档中定义了供应链中的四个关键要素,包括供应商、供应商资产、客户和客户资产。供应链攻击是至少两种攻击的组合。使用的分类法考虑了供应链的所有四个关键要素,以及攻击者使用的攻击技术。
- 网络安全公司Comparitech创建了一个全球软件供应链攻击跟踪器,该跟踪器每天更新,并基于ENISA的方法。跟踪器记录攻击的位置,包括每个位置受影响的客户数量、按年份划分的攻击数量以及供应商和客户的攻击类型。
在其他工作中,已经创建了框架来对软件开发和交付过程中的威胁进行分类。比如:
- 软件保障的供应链级别 (SLSA) 框架描述了典型软件开发和交付过程中每个阶段可能发生的攻击。
SLSA Framework SLSA 框架
- 来自Google的软件供应链威胁,这主要基于SLSA框架,并描述了SLSA框架中未列出的其他威胁。
谷歌版本的软件供应链威胁
- 国家情报总监办公室 (ODNI) 文件将软件供应链攻击分为三类——供应链攻击、软件支持供应链攻击和软件供应链攻击。
对攻击技术进行分类有助于我们了解攻击、这些攻击的执行位置和方式,以及采取哪些控制措施来降低风险。但是,从上面可以明显看出,每个框架都使用不同的分类法,并且对这些攻击进行分类具有独特的方式。这可能是因为每个框架采取的方法和用于分类的参数不同。
由于软件供应链攻击可能跨越多个组织,并且不同的组织可能采用不同的框架,因此缺乏通用分类法可能会给在该领域工作的从业者带来问题。