子课题 09 · 公共互联网反网络钓鱼工作组

供应链钓鱼研究专题(中篇)

基于NIST SP 800-161 Rev.1、SLSA框架、Sigstore基础设施与零信任架构,系统阐述供应链钓鱼攻击的检测原理、防御框架与技术实现路径。

供应链钓鱼检测技术体系

供应链钓鱼攻击的检测面临独特的挑战:攻击发生在组织直接控制范围之外,恶意代码可能深度嵌入合法的依赖关系或商务通信流程中,且攻击者往往拥有与合法参与者几乎无异的数字身份。因此,检测技术必须从"已知恶意特征匹配"演进为"全链路行为异常感知"。

软件成分分析(SCA)与SBOM

软件成分分析(Software Composition Analysis, SCA)是供应链安全检测的基础层能力。其核心任务是自动识别软件制品中嵌入的所有第三方组件——包括直接依赖、传递性依赖及嵌套依赖——并持续监控这些组件的漏洞状态、许可证合规性与异常变更。

  • SBOM(Software Bill of Materials):2021年美国行政命令EO 14028要求向联邦政府提供软件的供应商必须附带SBOM。SBOM以标准化格式(SPDX、CycloneDX或SWID)枚举软件的所有成分、版本、来源及依赖关系,使组织能够回答"我的软件里有什么"这一根本问题。NIST SP 800-161 Rev.1将SBOM视为C-SCRM的核心证据要求之一
  • 依赖图谱分析:现代应用的依赖树深度可达数十层。Zimmermann等(2019)与Decan等(2019)的实证研究表明,npm等生态的依赖网络呈显著的小世界特征,少数高度连接的包与维护者构成了不成比例的系统性风险——仅20个维护者账户即可覆盖超过半数的npm生态。SCA工具通过构建完整的依赖关系图谱,识别"关键节点"——即被大量下游包依赖、一旦失守将引发级联效应的组件
  • 漏洞关联与优先级排序:SCA不仅识别已知CVE,还需结合可达性分析(Reachability Analysis)评估漏洞是否在实际代码路径中被调用。这一能力显著降低了因"漏洞泛滥"导致的告警疲劳

依赖异常检测技术

针对恶意依赖注入的检测,学术界与产业界已发展出多层次的技术体系:

  • 静态特征检测:基于元数据异常(如维护者邮箱域名过期、GitHub星标数与下载量严重不匹配、安装脚本中包含可疑系统调用)进行风险评分。学术研究与OpenSSF Scorecard等主流工具已发展出基于包注册表元数据的弱信号评估方法,评估信号涵盖安装脚本的存在与内容、维护者邮箱有效性、项目维护活跃度、发布流程规范性等维度
  • 动态行为沙箱:在隔离环境中执行依赖的安装与初始化过程,监控网络连接、文件系统访问、进程创建等行为。Duan等(2021)通过结合静态与动态分析,在npm、PyPI和RubyGems中识别了339个恶意包,揭示了安装时与运行时两类代码执行技术
  • 版本跳跃检测:监控依赖版本的异常跳跃——特别是从长期稳定版本突然跳转到由新维护者发布的大版本更新。Garrett等(2019)开发了针对可疑包更新的检测方法,通过分析版本变更模式识别潜在的维护者劫持
  • 命名空间异常检测:利用自然语言处理技术检测typosquatting和combosquatting攻击。Taylor等(2020)开发的SpellBound工具通过计算包名称的编辑距离与语音相似度,自动发现潜在的名称混淆攻击

供应商身份验证与通信行为分析

针对供应商通信渠道钓鱼(VEC)的检测,需要融合身份验证技术与行为分析模型:

  • 邮件认证协议栈:SPF、DKIM与DMARC构成邮件来源验证的三层协议栈。DMARC策略(p=reject)可阻止来自未授权发送源的域名仿冒邮件。然而,VEC攻击往往来自被劫持的真实供应商邮箱,此时协议栈无法提供有效保护,必须辅以行为分析
  • 通信基线建模:通过机器学习建立与每个供应商的通信行为基线——包括正常发件时间、常用主题关键词、附件类型分布、付款信息变更频率等。当检测到偏离基线的异常行为(如非工作时间发送付款变更通知、首次使用新域名、附件类型突变)时触发告警
  • 商务线程完整性验证:攻击者常在被劫持的邮箱中设置邮件规则,将真实供应商的回复自动转发至外部地址,同时在原始线程中插入伪造的付款指令。检测系统需识别线程中突然出现的"账户变更"请求,并通过独立渠道(如预登记的电话号码)进行二次确认
  • 发件人历史关联分析:分析发件人IP地址、邮件头路由路径、X-Mailer字段等低层元数据的历史一致性。攻击者即使控制了邮箱账户,其访问的IP地址和客户端指纹往往与合法用户存在差异

构建管道完整性验证

软件构建管道是供应链攻击的高价值目标。构建完整性验证技术旨在确保"构建出来的工件确实由预期的源代码生成,且在构建过程中未被篡改"。

  • 可复现构建(Reproducible Builds):通过消除构建过程中的非确定性因素(如时间戳、文件排序、随机数生成),使不同主体在独立环境中从同一源代码构建出比特级一致的输出。一旦发布工件与独立复现结果不一致,即可判定存在构建时篡改。Fourné等(2023)系统研究了导致构建不可复现的技术原因及其安全影响
  • 来源证明(Provenance):构建系统生成并签名的元数据,记录工件的完整构建上下文——包括源代码仓库、提交哈希、依赖列表、构建配置及构建环境标识。SLSA框架将来源证明作为其核心交付物,Level 2即要求签名来源证明,Level 3要求来源证明不可伪造
  • 构建环境隔离与硬化:每个构建应在短暂、隔离、无状态的环境中执行,防止跨构建污染。构建定义应来源于版本控制,而非用户手动输入。SLSA Level 3明确要求"构建定义来源于受版本控制的源代码",以防范内部人员通过临时修改构建配置注入恶意逻辑
  • in-toto框架:Torres-Arias等(2019)提出的in-toto框架通过为供应链中的每个步骤(代码提交、构建、测试、发布)生成签名的"链接元数据"(link metadata),建立从源代码到最终工件的完整信任链。任何步骤的缺失或篡改均可被下游验证方检测

供应链钓鱼防御体系架构

有效的供应链钓鱼防御不是单一工具或控制的堆砌,而是涵盖治理策略、技术控制、流程规范与持续监控的系统性工程。以下四个互补框架共同构成当前最全面的防御体系。

框架协同关系

NIST SP 800-161 Rev.1提供治理层面的C-SCRM方法论与风险管理流程;SLSA框架提供软件构建与分发环节的技术控制标准与成熟度分级;Sigstore基础设施提供去中心化的软件签名与透明度日志服务;零信任架构则将"永不信任,持续验证"的原则扩展至供应链全链路。四者形成"治理—技术—验证—架构"的闭环防御体系。

NIST SP 800-161 Rev.1 C-SCRM框架

美国国家标准与技术研究院(NIST)于2022年5月发布SP 800-161第一版修订版(Rev.1),并于2024年1月发布更新版(Rev.1 Upd.1,进一步纳入人工智能系统的供应链风险考虑),将网络安全供应链风险管理(Cybersecurity Supply Chain Risk Management, C-SCRM)正式确立为组织风险管理体系的核心组成部分。

  • 三层风险管理方法:框架在企业级、任务/业务流程级和信息系统级三个层次上实施C-SCRM,确保供应链风险与组织整体风险 appetite 对齐。每一层均包含识别、评估、缓解与监控四个持续迭代的风险管理阶段
  • 全生命周期覆盖:C-SCRM控制贯穿系统与产品的设计、开发、采购、部署、运维、维护及退役全生命周期。NIST强调,供应链风险不能在采购阶段一次性"解决",而需在持续运营中动态管理
  • 关键控制领域:框架定义了十二个核心控制领域,包括供应商关键性评估、采购安全要求、供应商证据审查、子级供应商可见性、假冒产品防范、漏洞组件管理、事件响应协调等
  • 证据导向:框架要求组织保留供应商风险评估、缓解计划、例外审批及审查周期的完整证据链,确保决策可审计、可复盘

SLSA框架:软件工件来源保证

SLSA(Supply-chain Levels for Software Artifacts,发音"salsa")是由Google发起、OpenSSF维护的供应商中立框架,旨在通过渐进式成熟度模型提升软件构建与分发过程的完整性保证。

L1
来源证明
构建过程被脚本化并记录,生成来源元数据(provenance),包含源代码仓库、提交哈希与输出摘要。提供基本的可追溯性。
可追溯
L2
签名来源
来源证明由托管构建平台加密签名。任何对来源元数据的后续篡改都会导致签名失效,实现基本的篡改检测。
防篡改
L3
可信构建
构建环境被硬化,每个构建在短暂隔离环境中执行。构建定义来源于版本控制,签名密钥与构建步骤分离,来源证明不可伪造。
不可伪造
L4
封闭可复现
构建过程完全封闭(hermetic),无外部网络访问,且可复现。所有变更经过双人审查。提供最高级别的来源完整性保证。
最高保证

SLSA框架的核心价值在于其渐进性——组织无需一次性达到最高级别,而是可以沿着L1→L4的阶梯逐步提升供应链安全成熟度。对于联邦项目,SLSA Level 3被视为实际可行的目标,因为它提供了足以经受对抗性审查的不可伪造来源证明。

Sigstore:去中心化软件签名基础设施

传统代码签名依赖长期存在的私钥,其管理、轮换与保护成本高昂,且一旦密钥泄露,攻击者可签发看似合法的恶意工件。Sigstore通过"无密钥签名"(keyless signing)范式彻底重构了软件签名的信任模型。

  • 基于身份的短期证书:Sigstore使用OpenID Connect(OIDC)将开发者身份(如GitHub Actions工作流身份)与短期X.509证书绑定,证书有效期通常仅为10分钟。这消除了长期密钥的管理负担与泄露风险
  • 透明度日志(Rekor):所有签名操作被记录至公开的、不可篡改的透明度日志中。任何人均可审计签名历史,发现异常签名模式(如非预期时间窗口内的签名、来自未授权身份的签名)
  • 生态集成:Sigstore已被集成至Maven Central、PyPI、Kubernetes、GitHub Actions等主流生态系统。Newman等(2022)的研究为Sigstore的设计提供了理论基础,而2023年以来的大规模生产部署验证了其可用性与安全性
  • 与SLSA的协同:Sigstore的cosign工具可直接为容器镜像和工件生成符合SLSA Level 2及以上要求的签名来源证明,形成"来源证明生成—签名—透明日志记录—下游验证"的完整信任链

零信任供应链架构

将零信任(Zero Trust)原则从网络边界扩展至供应链全链路,是应对供应链钓鱼攻击的架构级解决方案。

  • 永不信任,持续验证:对供应商的每次访问请求、每次数据传输、每次工件交付都进行身份验证、授权检查与完整性校验。不再因"来自可信供应商"而降低审查标准
  • 最小权限与微隔离:将供应商访问权限限制至完成特定任务所需的最小范围。在供应链网络中实施微隔离,确保即使某一供应商被入侵,攻击者也无法横向移动至其他供应商或核心系统
  • 动态风险评估:基于实时威胁情报、供应商安全事件通报、依赖异常信号,动态调整对供应商的信任等级。当检测到供应商发生安全事件时,自动触发增强审查或临时隔离措施
  • 供应商身份联邦:建立跨组织的供应商身份联邦体系,使供应商的数字身份(证书、OIDC身份、API密钥)可被标准化验证,而非依赖每个组织独立管理的供应商账户

供应链钓鱼检测技术矩阵

不同检测技术适用于供应链攻击的不同阶段与不同攻击面。下表从检测对象、技术原理、部署位置、误报率与局限性五个维度,对主流检测技术进行系统性对比。

检测技术 检测对象 技术原理 部署位置 误报率 主要局限性
SCA / SBOM 已知漏洞组件 依赖解析 + CVE数据库匹配 + 可达性分析 开发/构建阶段 无法检测零日恶意包、维护者劫持后的合法更新中的后门
静态特征检测 恶意包元数据 元数据异常评分(邮箱过期、星标异常、安装脚本可疑调用) 包注册表/CI 中高 高级攻击者可伪造正常元数据;无法检测无安装脚本的运行时后门
动态沙箱分析 安装/运行时行为 隔离环境执行 + 系统调用/网络/文件监控 CI/CD管道 条件触发式恶意代码可能逃避沙箱探测;执行开销大
来源证明验证 构建完整性 SLSA来源证明解析 + 签名验证 + 复现构建比对 部署/运行时 极低 依赖构建系统支持;无法检测源代码层植入的后门(如XZ Utils)
通信行为分析 供应商邮件异常 基线建模 + 偏离检测 + 线程完整性校验 邮件网关 需要长期历史数据建立基线;新型攻击模式可能未被基线覆盖
透明度日志监控 异常证书/签名 Rekor日志审计 + 签名模式异常检测 签名/分发阶段 仅覆盖使用Sigstore签名的工件;无法检测未签名工件
图神经网络分析 依赖网络异常 GNN建模依赖关系图谱 + 异常节点/边检测 分析平台 计算资源需求高;需要大规模标注数据集训练

综合防御策略建议

单一检测技术无法覆盖供应链攻击的全谱系。建议组织采用"纵深防御"策略:在开发阶段部署SCA与静态特征检测,在构建阶段实施动态沙箱与SLSA来源证明生成,在分发阶段启用Sigstore签名与透明度日志,在运营阶段持续监控供应商通信行为与依赖异常信号。同时,将NIST SP 800-161 Rev.1的C-SCRM流程嵌入组织风险管理框架,确保技术控制与治理流程的协同运作。

策略框架参考:NIST SP 800-161 Rev.1 / SLSA v1.0 Specification / Sigstore Documentation / Ladisa et al. (2023) Safeguards Mapping.

业务流程与人员层防御:带外核验与职责分离

技术手段无法覆盖供应链钓鱼的全部攻击面——当攻击邮件来自被劫持的真实供应商邮箱、通过全部邮件认证检查时,最终的防御必然落在业务流程与人员决策上。以下流程控制被FBI、AFP等机构的实践指南反复验证为遏制BEC/VEC损失的最有效措施。

带外核验(Out-of-Band Verification)

带外核验是指通过独立于触发请求的通信渠道,对高风险操作进行二次确认,是抵御VEC与付款欺诈的第一流程防线:

  • 收款账户变更强制回拨:任何供应商要求变更收款银行账户、开票信息的请求,必须通过电话、视频或当面渠道向该供应商预登记的联系号码回拨确认——严禁使用请求邮件中新提供的联系方式,因为该号码可能由攻击者控制
  • 首次付款冷静期:对首次合作供应商或变更后账户的首笔付款,设置延迟支付期,并先行支付小额验证款项,确认到账方身份无误后再执行全额支付
  • 独立渠道存证:关键供应商的财务联系人、账户信息应在合作建档时通过线下或可信渠道登记,与日常邮件通道物理隔离

职责分离与人员韧性

技术检测存在固有盲区时,组织内部的权力制衡与人员意识构成最后一道防线:

  • 大额支付双人审批:超过阈值的付款指令必须由两名以上授权人员独立复核,其中至少一人不直接参与该笔交易的商务谈判,形成利益隔离
  • 供应商主数据管控:供应商主文件(Vendor Master File)的新增与账户信息修改,须由独立于发起人的岗位二次审批,并保留完整的修改审计日志
  • 针对性岗位培训:财务、采购、出纳等高风险岗位应接受针对BEC/VEC的专项演练。Verizon《2025年数据泄露调查报告》显示,接受定期安全意识培训的组织,员工钓鱼邮件举报率提升4倍——人员报告是发现已突破邮件网关之攻击的最高保真信号
  • 供应商侧协同:将核验要求写入采购合同,要求供应商在账户变更、付款指令异常时同样履行电话确认义务,实现双向流程防御

中国软件供应链安全实践进展

在监管框架驱动下,中国的软件供应链安全实践已从合规要求走向工程落地。以下方向的进展,为国内组织实施供应链钓鱼防御提供了可依托的本土基础设施。

开源治理基础设施

  • 基金会托管模式:开放原子开源基金会托管的OpenHarmony、openEuler等项目建立了覆盖代码评审、漏洞响应、版本发布的安全治理流程,为国内大型开源项目提供了可复制的治理样板
  • 本土代码托管平台:Gitee等国内平台承载了大量关键业务代码,其企业版逐步提供依赖漏洞扫描、代码审计与制品库安全能力,成为企业供应链安全工具链的本土选项
  • "可信开源"评估体系:中国信息通信研究院持续开展开源软件供应链安全研究,发布"可信开源"系列评估与相关白皮书,为企业评估开源组件与开源供应商提供方法论参考

关键行业落地路径

  • 金融行业先行:五部门开源治理意见发布后,主要金融机构普遍建立了开源软件台账与准入评审机制,将开源组件漏洞管理纳入信息科技风险管理框架,部分机构已开展SBOM建设试点
  • 漏洞协同通报:依托工信部网络安全威胁和漏洞信息共享平台(NVDB)及各行业漏洞库,关键组件高危漏洞可在监管协调下实现跨行业快速通报,缩短供应链漏洞的处置窗口
  • 软件物料清单起步:国内头部ICT企业开始在对外交付的软件产品中附随组件清单,金融、电信等行业在采购合同中逐步引入SBOM与安全开发承诺条款,与国际供应链安全要求接轨
  • 多元供应策略:关键信息基础设施运营者在核心系统领域推进供应来源多元化与国产化替代,降低单点供应商被入侵或断供的系统性风险——这是供应链安全治理在架构层面的根本举措

供应链安全建设分阶段路线图

框架与标准解决"应该做什么",路线图解决"先做什么、后做什么"。基于NIST SP 800-161 Rev.1的三层风险管理方法与SLSA的渐进式成熟度思想,组织可参照以下三个阶段推进供应链钓鱼防御体系建设。各阶段目标互为支撑,但实施顺序不可颠倒——没有对软件资产与供应商的可见性,一切后续控制都是空中楼阁。

阶段一 0—3个月 · 建立资产与供应商可见性
生成并维护SBOM(SPDX/CycloneDX) 建立开源依赖台账与关键组件清单 绘制供应商/第三方服务全量清单 锁定lockfile并启用哈希校验 DMARC策略升级至p=quarantine→reject 梳理付款变更等高风险业务流程
阶段二 3—12个月 · 管道加固与流程改造
部署私有依赖镜像并启用24—48小时隔离期 CI/CD构建环境隔离与最小权限改造 集成SCA+恶意包静态/动态检测至流水线 启用Sigstore/cosign签名与来源证明验证 付款账户变更强制带外电话回拨 大额支付双人审批与供应商主数据管控
阶段三 12—24个月 · 生态协同与持续验证
按SLSA L1→L3分级提升关键项目 建立供应商安全评分与年度复审机制 部署CT日志监控与蜜罐依赖包 供应链场景红队演练 跨组织威胁情报共享接入 供应链事件应急预案纳入BCP并定期演练

投入优先级提示

IBM《2025年数据泄露成本报告》量化了若干关键控制的成本削减效果:经测试的应急响应预案平均节约266万美元/次泄露,广泛部署安全AI与自动化节约190万美元,零信任架构节约176万美元。三者合计可覆盖一次全球平均水平泄露成本的半数以上。对于资源有限的组织,建议优先投入"流程层"控制(带外核验、双人审批)——其成本几乎为零,却能阻断VEC/BEC这一损失最大的攻击路径(FBI IC3统计BEC年损失已达数十亿美元量级)。

数据来源:IBM Cost of a Data Breach Report 2025 / FBI IC3 Annual Report 2024/2025 / NIST SP 800-161 Rev.1实施指南。

探索其他子课题