2. IoT设备制造安全威胁建模

IoT设备的安全问题往往不是从用户现场开始的,而是在制造阶段就已经被“写入”了。设备在出厂前要经过产线装配、功能测试、固件烧录、校准与调试等多个环节,每个环节都涉及人员、工装、软件、网络和接口。攻击者若能在这些环节中插入一步,就可能让成千上万台设备带着后门、错误密钥或可被复用的调试凭据流向市场。因此,制造安全威胁建模的目标不是泛泛列出“可能被攻击”,而是把制造流程拆成可分析的资产、接口与信任边界,再用攻击树把“攻击者要达到什么目标、需要哪些前置条件、走哪条路径”结构化地表达出来。

一、制造阶段的四类关键攻击面

制造产线、测试环境、固件烧录和设备调试接口,是四个既相互独立又彼此衔接的攻击面。产线关注的是物理装配、工装夹具、MES/工单系统和操作终端;测试环境关注的是测试脚本、测试服务器、测试夹具和测试数据;固件烧录关注的是镜像来源、签名校验、烧录工具和密钥注入;调试接口关注的是UART、JTAG、SWD、USB调试口以及隐藏的工程模式。它们共同构成一条“从芯片到整机”的信任链,任何一环缺少校验或权限控制,都会成为攻击树的根节点。

以一条典型的智能电表产线为例:PCBA进入烧录工位后,烧录工具从内网镜像服务器拉取固件,写入MCU并注入设备证书;随后进入功能测试工位,测试脚本通过UART读取日志并写入校准参数;最后进入整机测试,通过红外或RS-485接口验证通信。若烧录服务器未做镜像签名校验,或测试工位的UART未在生产模式下关闭,攻击者就可以在制造环节植入恶意固件或读取敏感参数。

制造阶段攻击树:以“植入未授权固件”为根目标 根目标:设备出厂即携带未授权固件 影响:批量后门 / 密钥泄露 / 远程控制 分支A:产线工位篡改 工装 / MES / 操作终端 A1 替换烧录工装固件 A2 篡改MES工单参数 A3 操作终端植入脚本 分支B:测试环境滥用 测试脚本 / 服务器 / 夹具 B1 测试脚本被替换 B2 测试服务器弱口令 B3 测试数据回写未校验 分支C:固件烧录绕过 镜像 / 签名 / 密钥注入 C1 镜像服务器被投毒 C2 关闭签名校验开关 C3 密钥注入明文传输 分支D:调试接口暴露 UART / JTAG / SWD / USB D1 生产模式未关调试口 D2 调试口令硬编码 D3 工程模式可绕过鉴权 共同前置条件:物理接触 / 内网访问 / 工装权限 / 未加密调试通道 任一条件成立,攻击者即可沿对应分支向根目标收敛 攻击树对应的缓解措施(按分支收敛) A:工装固件签名 + MES操作双人复核 + 终端白名单 B:测试脚本哈希校验 + 服务器最小权限 + 测试数据签名回写 C:镜像签名验证 + 安全启动熔丝 + 密钥注入走加密通道 D:生产模式关闭调试口 + 每机唯一调试凭据 + 工程模式鉴权

二、攻击树方法:从根目标到叶子条件

攻击树(Attack Tree)是一种把攻击目标作为根节点、把达成目标的不同路径作为子节点的结构化方法。与威胁列表相比,攻击树的优势在于它显式表达了“与”和“或”的关系:攻击者可以选择任意一条“或”路径,但某些路径需要同时满足多个“与”条件。在制造场景中,这种区分非常关键,因为很多攻击并非单点突破,而是“物理接触 + 内网访问 + 工装权限”的组合。

构建攻击树时,建议按以下顺序推进:第一,确定根目标,例如“设备出厂即携带未授权固件”;第二,按制造环节展开一级分支,即产线、测试、烧录、调试;第三,在每个分支下继续追问“攻击者需要什么条件才能做到”,直到叶子节点是可以验证或可以防护的具体条件;第四,为每个叶子节点标注可行性、影响和现有控制措施;第五,把缓解措施反向映射回叶子节点,形成可执行的加固清单。

以“烧录环节镜像投毒”为例,其攻击路径可以拆解为:攻击者获得镜像服务器访问权限 → 替换或篡改固件镜像 → 烧录工具未校验签名 → 设备写入恶意镜像。这里“获得服务器访问权限”和“烧录工具未校验签名”是“与”关系,缺一不可。若烧录工具启用了签名校验,即使镜像被替换,设备也会拒绝写入。因此,攻击树不仅能描述攻击,还能直接指出哪一层控制是阻断路径的关键节点。

三、把攻击树落到制造现场:参数与判断依据

威胁建模不能停留在纸面。为了让攻击树具备可操作性,需要把叶子节点转化为现场可检查的参数和证据。例如,针对“生产模式未关闭调试口”,可以检查设备在产线末端的启动日志中是否出现“debug port disabled”或类似状态;针对“密钥注入明文传输”,可以抓取烧录工位与密钥服务器之间的通信,确认是否使用TLS或至少是加密通道;针对“测试脚本被替换”,可以比对测试工位脚本的SHA-256哈希与基线值是否一致。

下面给出一份可直接用于产线安全巡检的检查表示例,字段和判断依据均围绕本节四类攻击面设计,数值为示例阈值,实际使用时需根据产品与产线调整。

检查项 对应攻击树叶子 检查方法 示例合格判据
烧录镜像签名校验 C2 关闭签名校验 查看烧录工具配置与日志 签名校验为“强制开启”,日志含“signature verified”
调试口生产模式状态 D1 调试口未关闭 读取启动日志与寄存器状态 UART/JTAG在量产固件中处于禁用或鉴权状态
测试脚本完整性 B1 测试脚本被替换 比对SHA-256与基线 哈希值与受控基线一致,偏差为0
密钥注入通道 C3 密钥明文传输 抓包分析烧录工位通信 使用TLS 1.2及以上,无明文密钥字段
工装固件版本 A1 工装固件被替换 读取工装版本号并比对 版本号与受控发布版本一致,签名有效

四、从攻击树到防护优先级

攻击树的价值不仅在于“看清攻击”,更在于“排序防护”。在资源有限的情况下,应优先阻断那些位于多条路径交汇处的节点。例如,“烧录工具签名校验”同时影响C1和C2两条路径,属于高杠杆控制点;“生产模式关闭调试口”则直接切断D1,且实现成本低、对产线节拍影响小,通常应作为量产固件的强制要求。相反,某些叶子节点虽然风险高,但需要更换硬件或重构产线,适合作为中期改进项。

建议在每次产线换型或固件大版本发布前,重新评审一次攻击树:新增的测试工位、临时调试口、外协烧录环节都可能引入新的叶子节点。攻击树不是一次性文档,而是随制造流程演进的活模型。

最后需要强调,制造安全威胁建模的产出不应只是一张图或一份报告,而应转化为可执行的产线控制:镜像签名、调试口关闭、脚本哈希校验、密钥加密注入、工装版本受控。只有把这些控制点嵌入MES工单、烧录工具配置和测试脚本中,攻击树上的“或”路径才会真正被切断,设备出厂时的信任起点才成立。