Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

供应链攻陷 (T1195)

一句话通俗理解

攻击者不直接攻击目标,而是在目标使用的软件或硬件中提前埋入后门,就像在汽车出厂前就在刹车片上做了手脚,车主怎么检查也发现不了。

难度等级

⭐⭐⭐ 高级(需要深入技术知识)

技术描述

供应链攻陷(T1195)是MITRE ATT&CK框架中隐蔽战术的一种高级技术。

通俗解释: 如果你是一家大公司的保安,你会非常警惕陌生人进入大楼。但如果是快递员每天来送快递,你可能就不会每次都仔细检查。供应链攻击就是这个道理——攻击者不直接攻击目标(因为防御太强),而是攻击目标“信任“的第三方:软件供应商、硬件厂商、代码库维护者。目标公司每天正常使用这些供应商的产品,完全信任它们,但产品里已经被攻击者做了手脚。

技术原理:

  1. 攻破软件供应商:入侵软件开发商的构建环境,在源代码中植入后门
  2. 篡改更新通道:劫持软件更新服务器,推送带后门的更新
  3. 注入开源库:向开源项目提交恶意代码(如“依赖混淆“攻击)
  4. 硬件植入:在设备生产过程中植入恶意硬件或固件

子技术列表

子技术ID中文名称通俗解释
T1195.001篡改软件供应链在软件构建或分发过程中植入恶意代码
T1195.002篡改硬件供应链在硬件制造过程中植入后门
T1195.003篡改代码签名证书盗用或伪造代码签名证书给恶意软件签名

攻击流程

graph TD
    A["攻击者入侵软件供应商"] --> B["在源代码中植入后门"]
    B --> C["供应商发布带后门的更新"]
    C --> D["目标企业下载安装更新"]
    D --> E["后门在目标内网执行"]

真实案例

案例1:SolarWinds 供应链攻击(2020)

  • 时间: 2020年(发现时间)
  • 目标: 美国政府机构、科技公司
  • 攻击组织: APT29 (Nobelium)
  • 手法: 入侵SolarWinds的构建系统,在Orion产品的合法更新文件中植入SUNBURST后门。约18,000家SolarWinds客户下载了带后门的更新包,攻击者通过后门进入目标系统。
  • 影响: 美国国务院、国土安全部、财政部等多家政府机构数据泄露
  • 参考链接: CISA - SolarWinds

案例2:NotPetya 通过M.E.Doc更新通道传播(2017)

  • 时间: 2017年6月
  • 目标: 乌克兰及全球企业
  • 攻击组织: Sandworm
  • 手法: 攻破乌克兰会计软件M.E.Doc的更新服务器,通过自动更新通道向用户推送NotPetya恶意软件。由于M.E.Doc是乌克兰政府的强制使用软件,几乎所有的乌克兰政府机构都受到影响。
  • 影响: 全球损失超100亿美元
  • 参考链接: CrowdStrike - NotPetya

案例3:Kaseya VSA 供应链勒索攻击(2021)

  • 时间: 2021年7月
  • 目标: 全球MSP服务商及其客户
  • 攻击组织: REvil
  • 手法: 利用Kaseya VSA远程管理软件的零日漏洞,通过VSA的自动更新机制向MSP客户的终端推送REvil勒索软件。一次攻击感染了超过1,500家企业。
  • 影响: 全球数千家企业被加密勒索
  • 参考链接: CISA - Kaseya

案例4:3CX 软件供应链攻击(2023)

  • 时间: 2023年3月
  • 目标: 全球3CX客户(超过60万家企业)
  • 攻击组织: UNC4736 (Lazarus关联)
  • 手法: 攻入3CX的构建系统,在3CXDesktopApp的安装包中植入恶意代码。用户安装更新后,恶意代码以合法签名的3CX进程身份运行。这是少有的影响macOS、Windows和Linux三大平台的供应链攻击。
  • 影响: 超过60万家企业受到影响
  • 参考链接: CrowdStrike - 3CX Supply Chain

案例5:UltraVNC 供应链投毒(2024年)

  • 时间: 2024年
  • 目标: UltraVNC用户(主要为IT运维人员和企业)
  • 攻击组织: 未知APT组织
  • 手法: 攻击者入侵了UltraVNC的官方下载服务器,将原版的安装包替换为植入后门的版本。由于安装包拥有合法的数字签名,杀毒软件无法检测到异常。受感染的版本在官方渠道存在了超过2个月,大量IT运维人员因工作需要下载安装,导致后门在企业内网中扩散。
  • 影响: 大量企业内网被入侵
  • 参考链接: BleepingComputer - UltraVNC

红队视角

⚠️ 免责声明:以下内容仅用于合法的安全测试、渗透测试和教育目的。未经授权对他人系统进行测试是违法行为。

常用工具

工具名称用途平台链接
Dependency Confusion依赖混淆攻击工具跨平台https://github.com/visma-prodsec/confused
PE-sieve检测进程是否被修改Windowshttps://github.com/hasherezade/pe-sieve

蓝队视角

检测要点

  • 实施软件物料清单(SBOM)管理,了解使用的所有第三方组件
  • 监控软件更新的哈希值和签名一致性
  • 对第三方软件实施沙箱隔离
  • 监控异常的出站网络连接(即使来自签名软件的进程)

检测建议

网络层检测

检测方法: 监控软件更新服务器的异常DNS解析、CDN来源的流量变化,以及第三方依赖包的版本变更导致的网络请求目标切换。

具体规则/命令示例:

# 检测CDN来源变更(潜在的供应链劫持)
dig +short cdn.legitimate-software.com | diff - expected_ip.txt

# 检测NPM/PyPI包源的异常请求
tcpdump -i eth0 port 443 -A | grep -E "registry.npmjs|pypi.org" | grep -v "trusted-package"

主机层:

  • 监控文件哈希值与官方发布值的差异
  • 检测签名证书的异常变化(不同版本间的签名不一致)
  • 监控软件更新后的异常进程活动和网络连接
  • 使用完整性监控工具(如Tripwire)检测关键文件的篡改

网络层:

  • 监控软件更新服务器的异常DNS解析
  • 检测证书透明日志中的异常证书签发
  • 审查第三方依赖包的版本和来源

Sigma规则:

title: 软件安装包签名不一致
status: experimental
description: 检测同一软件不同版本的签名证书异常变化(潜在供应链攻击)
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        EventID: 4688
        ProcessName|endswith:
            - '\msiexec.exe'
            - '\setup.exe'
            - '\installer.exe'
    condition: selection
level: medium
tags:
    - attack.t1195

缓解措施

优先级1:关键措施

供应链安全管理:

  • 建立并维护软件物料清单(SBOM),了解所有第三方组件及其版本
  • 要求供应商提供软件构建的完整性和来源证明(SLSA框架)
  • 对关键系统实施二进制完整性验证

优先级2:重要措施

更新管理:

  • 使用内部镜像仓库镜像并审查第三方软件更新
  • 验证软件安装包的签名和哈希值后再部署
  • 对第三方软件实施隔离执行环境

优先级3:建议措施

监控与响应:

  • 建立供应链攻击应急响应预案
  • 监控安全公告中关于供应链攻击的威胁情报
  • 定期审计第三方依赖的安全状态

MITRE ATT&CK缓解措施映射

缓解措施ID缓解措施名称适用性说明
M1053软件完整性验证适用验证软件更新的签名和哈希值
M1017软件供应链管理适用建立SBOM和管理第三方依赖
M1045软件隔离适用对第三方软件实施沙箱隔离
M1046二进制完整性扫描适用使用完整性监控检测文件篡改

动手实验

⚠️ 重要提示:所有实验必须在隔离的实验室环境中进行,禁止对未授权的真实系统进行测试。

实验1:依赖混淆攻击复现(中级)

实验步骤:

  1. 搭建私有npm镜像和公共npm仓库
  2. 创建一个名称与内部包相同的公共包
  3. 配置项目测试依赖解析的优先级
  4. 观察包被替换的过程

术语解释

术语英文原名通俗解释
供应链Supply Chain产品从原材料到交付给用户的完整链条
SBOMSoftware Bill of Materials软件物料清单,一份列出软件中所有组件的清单
依赖混淆Dependency Confusion利用包管理器从公共仓库获取而不是私有仓库的漏洞

参考资料