定义
供应链攻击是一种面向软件开发人员和供应商的新兴威胁。 目标是通过感染合法应用分发恶意软件来访问源代码、构建过程或更新机制。 攻击者寻找不安全的网络协议、未受保护的服务器基础结构和不安全的编码做法。 它们将在生成和更新过程中中断、更改源代码以及隐藏恶意软件。 由于软件由受信任的供应商构建和发布, 因此这些应用和更新已签名并经过认证。 在软件供应链攻击中, 供应商可能未意识到他们的应用或更新在发布到公众时受到恶意代码的感染。 然后, 恶意代码将以与应用相同的信任和权限运行。类型
上游服务器妥协—— Codecov 攻击
对于大多数软件供应链攻击,攻击者会破坏上游服务器或代码存储库并注入恶意负载(例如,恶意代码行或木马更新)。然后将该有效载荷向下游分发给众多用户。然而,从技术角度来看,情况并非总是如此。 Codecov 供应链攻击就是这样一个例子。尽管该事件与 SolarWinds 攻击存在相似之处,但两次攻击之间却存在明显差异。SolarWinds 供应链漏洞是技能卓越的威胁行为者的 “ 杰作 “,他们更改了合法的更新二进制文件 SolarWinds.Orion.Core.BusinessLayer.dll,其是 SolarWinds IT 性能监控产品 Orion 的一部分。 FireEye 之前分析过,假冒 DLL 的 RefreshInternal ( ) 方法中包含的恶意代码如下所示。当 Orion 加载库存管理器插件时,此方法会调用基于 HTTP 的后门:

中游妥协以传播恶意更新
术语 “ 中游 “ 在这里主要指攻击者破坏中间软件升级功能或 CI/CD 工具而非原始上游源代码库的实例。今年 4 月,许多《财富》500 强公司使用的 Passwordstate 企业密码管理器的制造商 Click Studios 通知客户称,攻击者破坏了 Passwordstate 的升级机制,并利用它在用户的计算机上安装了一个恶意文件。其文件名为 “moserware.secretsplitter.dll”,其中一小部分如下所示: 在安全公告中,Click Studios 表示,攻击持续了大约 28 小时才被关闭。只有在此时间段内执行一键升级的客户才会受到影响。而 Passwordstate 的手动升级不会受到损害。受影响的客户密码记录可能已被收集。 不出所料地是,Passwordstate 攻击事件后就发生了针对 Click Studios 用户的网络钓鱼攻击,攻击者在这些钓鱼电子邮件中放置了指向更新的恶意软件版本的非法链接。 除了具备技术要素(例如升级过程被篡改)之外,这种供应链攻击还具备社会工程学因素。在一份大小超过 300 MB 的伪造更新 zip 文件中,安全研究人员发现,攻击者已设法更改用户手册、帮助文件和 PowerShell 构建脚本,以指向其恶意内容分发网络(CDN)服务器:

依赖项混淆(dependency confusion)攻击
2021 年,提及供应链攻击就少不了要提 “ 依赖项混淆 “,特别是因为这种攻击的简单化和自动化特质,使其日渐受到攻击者的青睐。得益于在多个开源生态系统中发现的固有设计缺陷,依赖项混淆能够在攻击者端通过最小的努力甚至是自动化的方式发挥作用。 简而言之,如果您的软件构建使用私有的、内部创建的依赖项,而该依赖项在公共开源存储库中不存在,那么依赖项混淆(或命名空间混淆)就会起作用。攻击者能够在公共存储库上以相同的名称注册具有更高版本号的依赖项。然后,很大的可能是,攻击者创建的具有更高版本号的(公共)依赖项——而非您的内部依赖项——将被拉入您的软件构建中。
被盗的 SSL 和代码签名证书
随着 HTTPS 网站的增加,SSL/TLS 证书已经无处不在,它可以保护您的在线通信。因此,SSL 证书私钥的泄露可能会威胁到端到端加密连接为最终用户提供的安全通信和保证。 2021 年 1 月,Mimecast 披露其客户用于建立与 Microsoft 365 Exchange 服务连接的证书遭到破坏,可能影响约 10% 的 Mimecast 用户的通信。虽然 Mimecast 没有明确确认其是否为 SSL 证书,但正如一些研究人员所怀疑的那样,在很大程度上情况似乎确实如此。 虽然受损的 SSL 证书存在影响,但被盗的代码签名证书(即受损的私钥)会对软件安全产生更广泛的影响。获得私有代码签名密钥的攻击者可能会将他们的恶意软件签名为由信誉良好的公司提供的真实软件程序或更新。 尽管 “ 震网 “(Stuxnet)事件时至今日仍然是复杂攻击的一个重要案例——在此次攻击中,攻击者使用了从两家著名公司窃取的私钥将其恶意代码签名为 “ 受信任 “ ——但此类攻击其实早在 Stuxnet 事件前就已经盛行,甚至在 Stuxnet 事件发生后数年的今天仍在盛行。这也解释了前面提到的 Codecov 供应链攻击中 HashiCorp 的 GPG 私钥泄露事件之所以备受关注的原因。虽然目前还没有迹象表明 HashiCorp 的泄露密钥被攻击者滥用来签署恶意软件,但在泄露的密钥被撤销之前,这种事件确实有可能发生。针对开发者的 CI/CD 基础设施
如今,软件供应链攻击盛行,这些攻击不仅依赖于向用户的 GitHub 项目引入恶意拉取请求,还会滥用 GitHub 的 CI/CD 自动化基础设施 GitHub Actions 来挖掘加密货币。GitHub Actions 为开发人员提供了一种为 GitHub 上托管的存储库安排自动化 CI/CD 任务的方法。 攻击方式主要包括攻击者克隆使用 GitHub Actions 的合法 GitHub 存储库,稍微更改存储库中的 GitHub Action 脚本,并向项目所有者提交拉取请求以将此更改合并回原始存储库。
