返回博客
供应链安全15 分钟阅读

中国 SaaS 的软件供应链安全:美国客户必查的 6 个进入点与 SBOM 实战手册

A

Alexander Sverdlov

高级安全顾问

2026-05-22
中国 SaaS 的软件供应链安全:美国客户必查的 6 个进入点与 SBOM 实战手册

跨境合规 · SaaS · 2026 年 5 月

中国 SaaS 的软件供应链安全:美国客户必查的 6 个进入点与 SBOM 实战手册

SOC 2 刚过,美国客户的安全团队又发来三个新要求:提供产品的软件物料清单(SBOM)、说明你怎么监控和修复开源组件漏洞、确认有没有来自实体清单企业的代码。你打开仓库,看到 1400 多个 npm 包,没人知道里面装了什么。这是一份基于 14 家中国 SaaS 客户真实项目整理出来的软件供应链安全实战手册。

本文要点

  • 美国客户问「软件供应链安全」时,问的不是一个问题,而是 六类:SBOM、开源依赖治理、构建管道完整性、第三方代码来源、密钥与制品仓库、漏洞响应 SLA
  • SBOM(软件物料清单)已经从「加分项」变成「必答项」。美国 14028 号行政令和 NIST SSDF 推动之下,越来越多企业客户把它直接写进采购合同
  • 一个典型的中国 SaaS 产品平均依赖 1000 至 1800 个开源组件,其中 60% 到 80% 是你从没主动安装过的「传递依赖」
  • 中国 SaaS 在供应链安全上多一道别人没有的题:地缘政治尽职调查。美国客户会问代码在哪里构建、由谁构建。回避不如用构建溯源(provenance)主动回答
  • SCA 工具(Snyk、Trivy、Dependabot)能自动化 35% 到 45% 的工作,但 依赖治理策略、漏洞 SLA、构建管道加固仍需人工设计
  • 一份两页的「软件供应链安全说明」加可下载 SBOM 放进信任门户,能把供应链相关的问卷题答复时间 从数小时压到数分钟

2026 年 3 月的一个下午,杭州一家做数据分析的 SaaS 公司联合创始人给我发来一封转发邮件。他们刚通过 SOC 2 Type 1,原以为可以松口气,结果美国客户的安全团队在续约前又提了三个要求:提供产品的软件物料清单(SBOM)、书面说明监控和修复第三方与开源组件漏洞的流程、并确认产品中是否含有来自美国实体清单企业的代码组件。

这位创始人打开代码仓库数了一下:前端 1400 多个 npm 包,后端 200 多个 PyPI 包,还有一堆容器基础镜像。团队第一反应是「我们用的都是 GitHub 上最流行的库,应该没问题吧」。但这句话不是美国客户要的答案。客户问的不是你信不信任这些库,而是你能不能说清楚产品里到底装了什么,以及当其中一个组件出事时,你多久能定位、多久能修复、多久能通知到他们。

过去两年里,xz-utils 后门、被投毒的 npm 包、伪装成知名库的恶意依赖,让几乎每一家美国大企业的安全团队都重写了供应商问卷。「软件供应链安全」从问卷脚注里的一行字,变成了独立的一整个板块。我们用三周时间帮这家公司把答案搭了出来,续约谈成。下面是这套打法。

第一步

美国客户问「软件供应链安全」时,到底在问什么

美国客户的安全团队说「请提供软件供应链安全信息」时,这不是一道题,而是一整张清单。过去两年里,几乎所有美国大企业都把供应商问卷里的供应链部分从两三道题扩展成了独立板块。我们把它归纳成六类。回答之前,先看清楚对方到底在问什么:

美国客户问的 6 类供应链安全问题 美国客户问软件供应链安全时的 6 类问题 四类是文档与流程问题,只有两类需要动技术 1. SBOM 软件物料清单 「你的产品由哪些组件构成?」 要一份机器可读的完整依赖清单, 含名称、版本、来源、许可证 类型:文档 2. 开源依赖治理 「新漏洞出现时,你多久能 定位并修复?」 要扫描工具、分级标准、修复 SLA 类型:流程 3. 构建管道完整性 「代码从提交到上线,中间 有没有被篡改的可能?」 要 CI/CD 加固、构建溯源、签名 类型:技术 4. 第三方代码来源 「有没有来自实体清单或 高风险来源的组件?」 中国 SaaS 多出来的一道题 类型:文档 5. 密钥与制品仓库 「构建密钥、制品仓库 谁能访问?」 要访问名单、轮换记录、审计日志 类型:技术 6. 漏洞响应 SLA 「关键漏洞你承诺多少 小时内修复并通知?」 要写进合同的安全附录 类型:流程
图 1. 美国客户在软件供应链安全上提的六类问题。看清分类,能省下大量焦虑。

这六类问题背后只有一个核心诉求:你能不能证明自己的产品里装了什么,以及当其中一个组件出事时你多快能反应。把它们拆开看你会发现,第 1、4 两类是文档问题,第 2、6 两类是流程问题,只有第 3、5 两类真正需要动技术。中国 SaaS 团队往往一上来就担心要重做 CI/CD,其实六类里有四类靠整理材料和写清流程就能完成。先认清这点,下面五步会轻松很多。

🎯

第二步

软件供应链的 6 个攻击进入点

要回答好客户的问题,先得知道攻击者会从哪里下手。软件供应链攻击的逻辑很简单:与其攻破你的产品,不如污染你产品所依赖的某个环节,让恶意代码顺着你的构建管道自己流进去。过去两年里曝光的 xz-utils 后门,攻击者潜伏了两年多,靠的就是污染一个被无数项目间接依赖的压缩库。几年前的 Log4j 漏洞之所以波及面那么广,也是因为它是一个深藏在传递依赖里的组件。下面是六个最常见的进入点:

软件供应链的 6 个攻击进入点 从代码到客户:供应链的 6 个攻击进入点 攻击者污染的是环节,不是你的产品本身 开源依赖 源代码仓库 CI/CD 构建 制品仓库 生产与客户 1. 直接依赖被投毒 攻击者发布同名或近似名的 恶意包,骗你装错(typosquatting) 防线:包名核对 + 锁定版本 + 安装前扫描 2. 传递依赖藏漏洞 你没装过、却被间接拉进来 的组件,占依赖总数 60-80% 防线:SBOM 列全 + SCA 持续扫描传递层 3. 构建脚本被篡改 CI 配置、构建脚本被改动, 在编译时注入恶意逻辑 防线:构建配置纳入评审 + 受保护分支 4. CI/CD 密钥泄露 部署密钥、云凭证写在 日志或环境变量里被读走 防线:密钥保险库 + 短期 令牌 + 日志脱敏 5. 容器基础镜像带洞 从公共仓库拉的基础镜像 本身就含已知漏洞或后门 防线:镜像扫描 + 固定 摘要 + 最小基础镜像 6. 制品无签名校验 部署时不验证产物来源, 被替换的制品也照样上线 防线:制品签名 + 部署前 校验来源证明 六个进入点里,进入点 1、2 占了真实事件的多数。先把开源依赖治理做扎实,性价比最高。
图 2. 软件供应链的六个攻击进入点,以及每个进入点对应的防线。

这六个进入点不需要同时全部加固。我们在 14 个项目里发现,真实发生的供应链事件超过七成集中在进入点 1 和 2,也就是开源依赖本身。所以优先级很清楚:先把依赖治理(第四步)和 SBOM(第三步)做扎实,再处理构建管道(第五步)。如果你的预算和时间有限,把 80% 投在前两个进入点上,是最划算的分配。

📋

第三步

SBOM:美国客户现在真的会要

SBOM(Software Bill of Materials,软件物料清单)就是你产品的「配料表」。它用机器可读的格式列出产品里每一个软件组件的名称、版本、来源和许可证。两年前它还是个加分项,现在不一样了:美国 14028 号行政令要求向联邦政府供货的软件提供 SBOM,NIST 的安全软件开发框架(SSDF,SP 800-218)把它写进了基线,连带着商业采购方也开始在合同里要求它。我们最近接触的美国中大型企业里,大约一半已经在供应商问卷里明确点名要 SBOM

好消息是,生成 SBOM 本身并不难。业界两个主流格式分别是 SPDX(Linux 基金会维护)和 CycloneDX(OWASP 维护),美国客户两个都接受。用 Syft 这类开源工具,对着代码仓库或容器镜像跑一条命令,几分钟就能产出一份 CycloneDX 格式的 SBOM。难的不是生成,而是让它持续准确、并知道怎么对外交付。下面是美国 NTIA 公布的 SBOM 最小要素,以及每一项的实务做法:

SBOM 最小要素 含义 实务做法
组件名称与供应方每个组件叫什么、谁发布的由 Syft 自动从包管理器元数据读取,无需手填。
版本号精确到补丁级的版本前提是依赖已锁定(lockfile 入库),否则版本会漂移。
唯一标识符PURL 或 CPE 等机读标识让客户能把组件与漏洞数据库自动对上号。工具默认带。
依赖关系哪个组件依赖哪个区分直接依赖与传递依赖,传递层一定要列全。
SBOM 作者与时间戳谁生成、什么时候生成在 CI 里每次发布自动生成,时间戳自带,杜绝过期清单。
已知未知项明确说明哪些部分未覆盖如果某子系统暂未纳入 SBOM,直接写明。诚实比假装完整更可信。

交付方式上,不要把 SBOM 当成邮件附件来回发。最佳做法是在每次产品发布时由 CI 自动生成一份新的 SBOM,存进信任门户,客户签了保密协议后自助下载。这样它永远是最新的,你也不必每次被问就手动导一遍。把 SBOM 做对,等于一次性回答掉了客户六类问题里的第一类,并为第二类(依赖治理)打好了地基。

🔐

第四步

开源依赖治理:从「能跑就行」到可审计

一个典型的中国 SaaS 产品平均依赖 1000 至 1800 个开源组件,其中 60% 到 80% 是传递依赖:你从没主动 install 过,是被你装的某个库间接拉进来的。美国客户问「新漏洞出现时你多久能定位并修复」,问的就是你对这一两千个组件有没有治理能力。治理不是「把所有库都审一遍」,那不现实,也没必要。它是建立一套可重复、可被审计师和客户验证的流程。我们用一个四级成熟度模型来定位你现在在哪、下一步该补哪一格:

开源依赖治理的 4 级成熟度 开源依赖治理的 4 级成熟度 美国客户要的是 L2 以上,并能看到证据 L0 无人管理 - 装了什么没人清楚 - 版本未锁定 - 漏洞靠新闻才知道 - 无 SBOM 客户反应: 直接判定不合格 L1 有清单 - 依赖版本已锁定 - 能生成 SBOM - 偶尔手动扫描 - 无修复 SLA 客户反应: 追问流程细节 L2 自动扫描 + SLA - CI 每次构建扫描 - 漏洞按严重度分级 - 修复 SLA 写成文 - 留有处置记录 客户反应: 通过,多数到此即可 L3 门禁 + 签名 - 高危漏洞自动 阻断构建 - 新依赖需审批 - 制品签名校验 客户反应: 成为加分项 14 家客户起点:L0 有 5 家、L1 有 7 家、L2 有 2 家。目标统一定在 L2。
图 3. 开源依赖治理的四级成熟度。美国客户的及格线是 L2,并且要看得到证据。

从 L1 升到 L2 是性价比最高的一步,技术上一两周就能搞定:在 CI 里接入一个 SCA(软件成分分析)工具,让它每次构建都扫一遍依赖。工具不必贵,开源的 Trivy 完全够用,GitHub 自带的 Dependabot 对公开和私有仓库都免费。商业工具如 Snyk 体验更顺、误报更少,按开发者数量计费,小团队一年大概 USD 3,000 到 8,000。但要记住,工具只解决 35% 到 45% 的工作:它能告诉你「这里有个高危漏洞」,但「多久必须修完」「谁来决定能不能延期」「修不了的怎么记录豁免」这些是策略,要人来定。

一份能让美国客户点头的漏洞修复 SLA,至少写清三件事:

  1. 分级标准:按 CVSS 评分把漏洞分成严重、高、中、低,写明各级的判定门槛。
  2. 修复时限:例如严重漏洞 7 天内、高危 30 天内、中危 90 天内修复。时限要现实,承诺了就要做到。
  3. 例外处置:确实无法按时修复时(例如上游还没出补丁),怎么记录风险接受、谁来批、补偿措施是什么。审计师和客户都会专门看这一条。
🛠

第五步

构建管道完整性:地缘政治放大镜下的中国 SaaS

这是中国 SaaS 比美国本土同行多出来的一道题。美国客户的安全团队,尤其是涉及政府、金融、关键基础设施行业的客户,越来越常问一类问题:你的代码在哪里写、在哪里构建、谁有权限改动构建管道、产品里有没有来自美国实体清单企业的组件。我们的建议很明确:这类问题回避只会让客户更不安,正确的做法是用技术证据把它变成一个可以坦然回答的问题

技术上的抓手叫「构建溯源」(build provenance)。它是一份由构建系统自动生成、密码学签名的记录,说明这个产物是用哪段源代码、在哪个构建环境、经过哪些步骤产出的。业界用 SLSA 框架(Supply-chain Levels for Software Artifacts)来衡量构建管道的可信程度。你不需要一上来就冲最高级,理解三个等级、先做到中间一级,就足以回答绝大多数客户的问题:

SLSA 构建等级与回答框架 构建管道完整性:从「能构建」到「可证明」 SLSA 三个构建等级,做到 L2 已能回答多数客户 SLSA 构建 L1 构建过程脚本化、有记录。能说清 产物是怎么来的,但记录可被改动。 SLSA 构建 L2 构建跑在托管平台上,自动生成 签名的来源证明。多数 SaaS 的目标。 SLSA 构建 L3 构建环境隔离、来源证明不可伪造。 面向高敏感客户时再冲这一级。 面对「代码是否在中国构建」的提问 1. 如实说明源码托管地、构建地点 与有权限的人员,不含糊。 2. 用签名的构建溯源证明产物 未被篡改、与源码一致。 3. 提供制品签名与校验方式,让 客户能自己验证。 4. 把构建管道访问名单纳入 SOC 2 证据,由第三方审计师背书。 透明 + 可验证,胜过回避 关键不是产品在哪里构建,而是你能否证明产物从源码到上线没被动过手脚。 把第三方组件来源整理成一份声明:列出关键组件的发布方与国别,主动交给客户, 比等客户来查再被动解释,可信度高得多。
图 4. SLSA 构建等级,以及面对地缘政治尽职调查问题时的回答框架。

这里要说一句实话:中国 SaaS 在这道题上确实多花功夫,但这不是劣势,反而可以是差异化。我们见过的情况是,主动把构建溯源、第三方组件来源声明、构建管道访问名单整理好的中国 SaaS,给美国客户留下的印象往往比含糊带过的美国本土小厂更专业。客户怕的从来不是「你在哪里」,而是「你说不清楚」。中国国内的 GB/T 36637《ICT 供应链安全风险管理指南》和网络安全法对供应链安全本就有要求,把国内已经做的这部分工作,翻译成美国客户能验证的语言,是这一步的核心动作。

🏆

第六步

把供应链安全变成销售材料

前五步做完,你手里已经有了一堆资产:SBOM、依赖治理流程、漏洞 SLA、构建溯源、组件来源声明。最常见的浪费是把它们散落在各处,每来一个客户问卷就重新翻找拼凑一次。正确的做法是一次性整理成一套标准交付物,放进信任门户,让供应链相关的问卷题答复时间从数小时降到数分钟。下面是六份核心交付物:

供应链安全的 6 份核心交付物 信任门户里的供应链安全交付物 一次整理,回答此后所有客户的供应链问卷 1. 供应链安全说明 两页 PDF,公开下载 讲清流程与工具, 回答六类问题的总览 2. 可下载 SBOM CycloneDX 或 SPDX 每次发布自动更新 签 NDA 后下载 3. 依赖与漏洞政策 分级标准 + 修复 SLA + 例外处置流程 英文 PDF,公开 4. 构建管道说明 构建溯源、SLSA 等级 访问控制与签名机制 如何校验制品 5. 组件来源声明 关键组件的发布方 与国别,主动披露 回答地缘政治问题 6. 漏洞响应承诺 关键漏洞修复与通知 的时限 SLA 可写进合同附录 效果数据 14 家客户里,把这六份交付物整理进信任门户的 9 家:单份供应链问卷答复时间从平均 4 小时降到 25 分钟, 且不再因为「漏答一题」被客户打回返工。一次投入,长期复用。
图 5. 软件供应链安全的六份核心交付物。整理进信任门户后,可复用于此后所有客户问卷。

把这六份交付物做出来,你就完成了一个身份转换:从「被客户的问卷追着跑」变成「主动递给客户一套完整答案」。美国采购团队对供应商的信任,很大程度来自「这家公司似乎早就准备好了」这种感觉。一份结构清晰的供应链安全说明,传递的不只是合规,而是专业度。这也是为什么我们一直说,供应链安全不是成本,是销售材料。

Atlant Security 如何帮你

中国 SaaS 的软件供应链安全落地

我们专门为 30 至 300 人的中国 SaaS 搭建美国客户认可的软件供应链安全体系。从 SBOM 自动化管道、SCA 工具接入、依赖治理策略、漏洞响应 SLA、构建管道加固,到信任门户的供应链页面,整套交付物一站式完成。中文沟通,按美国合规标准交付,可单独做,也可并入 SOC 2 项目同步推进。

  • 固定价格 USD 12,000 起(供应链安全模块,可并入 SOC 2 项目)
  • 4 至 8 周交付:SBOM 管道 + 依赖治理策略 + 构建管道加固
  • 14 家中国 SaaS 客户实战经验
  • 双语供应链安全说明 + 可下载 SBOM 信任门户页
  • 交付物上线后付款(首付 30% 启动)

预约 30 分钟咨询 →

常见问题

中国 SaaS CEO 经常问我们的问题

公开 SBOM 会不会暴露我们的技术栈,反而帮了攻击者?

这是最常见的顾虑,但实际风险被高估了。攻击者扫描你的产品本就能推断出大部分技术栈,SBOM 并没有给他们多少新情报。真正的平衡点是访问控制:把 SBOM 放在信任门户里、要求客户签保密协议后下载,而不是挂在官网首页。这样既满足了客户的尽职调查,又保留了基本的访问门槛。14 家客户里没有一家因为提供 SBOM 而遭遇针对性攻击,但有好几家因为拿不出 SBOM 而丢了单子。

我们用了一些中国的开源项目,美国客户会有顾虑吗?

看具体组件和客户行业。多数商业客户关心的是组件本身有没有漏洞、维护是否活跃,而不是发布者的国籍。但涉及美国政府、国防供应链的客户确实会做来源审查。处理办法不是隐藏,而是透明:在组件来源声明里如实列出关键组件的发布方,对每个组件说明你做过的尽职调查(社区活跃度、漏洞历史、是否有签名)。把判断材料完整交给客户,比让客户自己去查、然后怀疑你在隐瞒,结果好得多。

免费工具(Trivy、Syft、Dependabot)够用吗,还是必须买 Snyk?

对绝大多数中国 SaaS,免费工具组合完全能让你达到第四步说的 L2 成熟度:Syft 生成 SBOM、Trivy 或 Dependabot 做持续扫描,这一套足以通过美国客户的及格线。商业工具如 Snyk 的价值在于误报更少、修复建议更具体、管理界面更顺,能省工程师的时间。我们的建议是:先用免费工具把流程跑通、把 L2 做到位,等团队超过 20 个工程师、或者依赖扫描的噪音开始拖慢迭代时,再考虑付费工具。工具不是及格的前提,流程才是。

美国客户直接问「代码是不是在中国写的」,我该怎么回答?

如实回答,并且把回答建立在可验证的证据上。含糊其辞或试图绕开,只会让客户更警惕。正确的结构是三句话:第一,如实说明源码托管地、构建地点和有访问权限的人员;第二,提供签名的构建溯源,证明上线的产物和源码一致、没被篡改;第三,说明制品签名的校验方式,让客户能自己验证。客户真正担心的不是地理位置,而是「我能不能信任你交付的东西」。用技术证据回答这个问题,地理位置本身就不再是障碍。

传递依赖上千个,不可能逐个审查,客户能接受吗?

能。没有任何一家公司会逐个人工审查上千个传递依赖,美国客户也不期待你这么做。他们要的是一套系统性的处理方式:你能用 SBOM 列全所有传递依赖、用 SCA 工具持续扫描它们、对扫出来的漏洞按 SLA 处理。换句话说,你不需要保证每个组件都安全,你需要保证「当某个组件出问题时,你能在承诺的时间内发现并处理」。把这套流程讲清楚、拿出最近几次的处置记录,客户就满意了。

软件供应链安全和 SOC 2 是什么关系,要分开做吗?

两者高度重叠,建议合并推进。SOC 2 的通用准则里,变更管理(CC8.1)、风险评估(CC3)、漏洞管理本来就覆盖了供应链安全的一大半。如果你正在做 SOC 2,把供应链安全作为其中一个工作流并进去,几乎不增加额外审计成本。如果你已经有了 SOC 2,那供应链安全更多是「补一组交付物」:SBOM、组件来源声明、构建溯源说明。我们通常建议客户把它当成 SOC 2 的延伸模块,而不是另起一个独立项目,这样最省钱也最省时间。

软件供应链安全这道题,五年前还只是少数高敏感客户才问,现在已经是美国企业采购的标准动作。对中国 SaaS 来说,它比 SOC 2 多一层地缘政治的考量,但底层逻辑完全一样:你能不能说清楚产品里装了什么,能不能证明它从源码到上线没被动过手脚,能不能在组件出事时按承诺反应。这三个问题答好了,地理位置就不再是客户拒绝你的理由。

真正的好消息是,这套体系是一次性投入、长期复用的资产。第一次把 SBOM 管道、依赖治理、构建溯源、信任门户搭起来,通常需要 4 至 8 周。搭好之后,它每次产品发布自动更新,每来一个新客户的供应链问卷,你只需要把信任门户的链接发过去。把第一次的骨架搭对,后面每一笔美国合同都会因此走得更快。

想聊聊你公司的具体情况?预约 30 分钟咨询,或直接发邮件给 alexander@atlantsecurity.com。

Alexander Sverdlov

Alexander Sverdlov

Atlant Security 创始人,两本信息安全著作的作者,亚洲最大网络安全会议演讲嘉宾, 联合国会议小组成员,前微软安全咨询团队成员,前阿联酋核能公司外部网络安全顾问。