2. 量产安全威胁建模

量产安全威胁建模的目标,不是产出一份“看起来很全”的风险清单,而是把攻击者可能利用的路径,映射到产线上真实存在的工位、接口、数据流和信任关系上。与研发阶段不同,量产阶段的威胁往往来自“流程被绕过”“权限被滥用”“数据在环节间被替换”这类问题,因此建模对象必须同时包含技术组件和操作流程。

一、先划定建模边界:五个环节与信任边界

建议把量产链路拆成五个可独立分析的环节:产线工位(烧录、测试、贴标)、供应链(芯片、模组、代工、物流)、固件(镜像、签名、版本)、密钥(生成、分发、使用、销毁)、身份注入(设备证书、私钥、云平台注册)。每个环节之间都存在信任边界,例如“产线测试工装 → 云端签发服务”“代工厂 → 品牌方密钥库”。威胁建模的第一步,就是把这些边界画出来,并标注跨越边界时传递的数据:设备ID、公钥、证书、固件哈希、烧录授权令牌等。

边界一旦明确,STRIDE 才有落点。以“身份注入”为例:伪造(Spoofing)对应攻击者冒充合法产线请求证书;篡改(Tampering)对应证书中的公钥被替换;否认(Repudiation)对应注入操作无审计记录;信息泄露(Information Disclosure)对应私钥在工装或日志中暴露;拒绝服务(Denial of Service)对应签发服务被刷爆导致停线;权限提升(Elevation of Privilege)对应测试工装获得超出其职责的签发权限。

量产安全威胁建模:五环节 × 信任边界 × STRIDE 落点 供应链 芯片 / 模组 / 代工 物流 / 仓储 产线工位 烧录 / 测试 / 贴标 工装 / 治具 固件 镜像 / 签名 / 版本 OTA 包 密钥 生成 / 分发 / 使用 销毁 / 轮换 身份注入 设备证书 · 私钥 · 云平台注册 · 设备ID 绑定 STRIDE 在量产环节的典型落点 S 伪造 冒充产线请求证书 T 篡改 替换公钥/固件哈希 R 否认 注入无审计记录 I 信息泄露 私钥出现在日志 D 拒绝服务 签发服务被刷爆 E 权限提升 工装越权签发 攻击树示例:获取合法设备身份 窃取产线签发令牌 篡改工装注入逻辑 复用测试证书 供应链预置密钥

二、STRIDE 与攻击树如何配合使用

STRIDE 擅长“分类”,攻击树擅长“展开路径”。实操中建议先用 STRIDE 对每个信任边界做一轮快速扫描,找出可疑点,再对高风险点用攻击树向下拆解到可验证的攻击步骤。例如,针对“产线工装向云端签发服务请求设备证书”这条边界,STRIDE 扫描会标记出伪造、信息泄露和权限提升三类风险;随后用攻击树展开“伪造合法工装”这一目标,子节点包括:窃取工装认证凭据、重放历史签发请求、篡改工装固件绕过校验、利用测试环境未隔离的签发接口。每个叶子节点都应能对应到一个可检查的控制项,例如“工装凭据是否绑定设备指纹”“签发请求是否含一次性 nonce”“测试与生产签发服务是否物理隔离”。

攻击树的另一个价值是暴露“单点失效”。如果多个叶子节点最终都指向同一个根因,例如“所有工装共用同一套 API Key”,那么修复优先级就非常明确:先做凭据隔离和按工位最小权限,再考虑其他加固。

三、把威胁映射到可执行的控制项

威胁建模的产出应当是一张“威胁—控制—验证”对照表,而不是纯描述。以下是一个可直接参考的示例片段,参数为教学假设值,实际项目需按自身产线节拍和签发服务能力调整。

环节 STRIDE 类别 攻击树叶子节点 控制项 验证方式
身份注入 S 伪造 重放历史签发请求 签发请求携带一次性 nonce + 时间窗 ≤ 30s 抓包重放,观察是否返回 409 拒绝
密钥 I 信息泄露 私钥写入工装本地日志 工装日志脱敏,私钥仅存在于安全元件 检查工装日志文件,搜索私钥前缀
产线工位 E 权限提升 测试工装调用生产签发接口 测试与生产签发服务网络隔离,凭据分域 用测试凭据请求生产接口,应返回 403
固件 T 篡改 替换烧录镜像中的公钥 镜像签名校验 + 公钥白名单固化在安全启动链 修改镜像后烧录,设备应拒绝启动
供应链 S 伪造 代工厂预置未授权密钥 密钥由品牌方生成并加密分发,代工厂不可见明文 抽检设备证书链,确认签发者与预期一致

四、实战中的两个关键判断

第一,区分“可检测”与“可阻止”。 很多产线威胁无法在单点阻止,但可以检测并告警。例如,工装凭据泄露后,攻击者可能从非产线网段发起签发请求。此时控制项不是“绝对防止泄露”,而是“签发服务对来源网段、请求频率、设备指纹一致性做联合判断”,异常时冻结该批次并触发人工复核。建模时要明确每个控制项属于阻止型还是检测型,避免把检测型控制误当成阻止型。

第二,用攻击树反推测试用例。 攻击树的每个叶子节点,天然对应一个安全测试用例。例如叶子节点“篡改工装固件绕过校验”,对应测试用例可以是:在工装固件中修改校验函数返回值,观察是否仍能完成签发;预期结果是签发服务拒绝该工装,并记录审计事件。这样威胁建模的产出就能直接进入产线安全验收清单,而不是停留在文档层面。

实操提示: 建议在产线试产阶段就完成一轮 STRIDE 扫描和攻击树展开,并把高风险叶子节点转为验收测试项。量产后再补做,修复成本会显著上升,尤其是涉及安全元件、签发服务和工装固件的改动。

最后需要强调的是,量产安全威胁建模不是一次性活动。每当产线新增工位、更换工装、调整签发服务接口或引入新的代工厂时,都应重新审视信任边界和攻击树。把建模结果与产线变更管理绑定,才能让威胁模型持续有效,而不是在量产后迅速过期。