2. IoT设备制造安全威胁建模
IoT设备的安全问题往往不是从用户现场开始的,而是在制造阶段就已经被“写入”了。设备在出厂前要经过产线装配、功能测试、固件烧录、校准与调试等多个环节,每个环节都涉及人员、工装、软件、网络和接口。攻击者若能在这些环节中插入一步,就可能让成千上万台设备带着后门、错误密钥或可被复用的调试凭据流向市场。因此,制造安全威胁建模的目标不是泛泛列出“可能被攻击”,而是把制造流程拆成可分析的资产、接口与信任边界,再用攻击树把“攻击者要达到什么目标、需要哪些前置条件、走哪条路径”结构化地表达出来。
一、制造阶段的四类关键攻击面
制造产线、测试环境、固件烧录和设备调试接口,是四个既相互独立又彼此衔接的攻击面。产线关注的是物理装配、工装夹具、MES/工单系统和操作终端;测试环境关注的是测试脚本、测试服务器、测试夹具和测试数据;固件烧录关注的是镜像来源、签名校验、烧录工具和密钥注入;调试接口关注的是UART、JTAG、SWD、USB调试口以及隐藏的工程模式。它们共同构成一条“从芯片到整机”的信任链,任何一环缺少校验或权限控制,都会成为攻击树的根节点。
以一条典型的智能电表产线为例:PCBA进入烧录工位后,烧录工具从内网镜像服务器拉取固件,写入MCU并注入设备证书;随后进入功能测试工位,测试脚本通过UART读取日志并写入校准参数;最后进入整机测试,通过红外或RS-485接口验证通信。若烧录服务器未做镜像签名校验,或测试工位的UART未在生产模式下关闭,攻击者就可以在制造环节植入恶意固件或读取敏感参数。
二、攻击树方法:从根目标到叶子条件
攻击树(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工单、烧录工具配置和测试脚本中,攻击树上的“或”路径才会真正被切断,设备出厂时的信任起点才成立。