3、威胁模型:物理攻击、侧信道攻击、调试接口滥用、固件提取与逆向的典型场景
TinyML设备通常部署在物理可达、无人值守或边缘计算环境中,其安全假设与云端服务器完全不同。攻击者一旦获得设备物理访问权,便可能绕过所有软件层防护,直接对芯片、存储器和调试接口发起攻击。理解威胁模型是设计防拆方案的第一步——只有清楚攻击者能做什么、会怎么做,才能有针对性地选择调试口关闭策略、固件读保护等级和硬件抗篡改措施。本章将系统梳理四类典型攻击场景,并给出对应的防御思路与工程判断方法。
上图展示了TinyML设备面临的四类主要攻击路径与对应的防御层次。物理攻击直接作用于芯片封装和电路走线;侧信道攻击通过测量功耗、电磁辐射等物理量间接获取密钥或固件内容;调试接口滥用利用芯片出厂自带的调试功能(JTAG/SWD/串口)读取或修改内存;固件提取与逆向则是将闪存芯片拆下或通过编程器直接读取二进制内容,再使用反汇编工具分析算法和密钥。下面逐一展开分析。
3.1 物理攻击:从探针到FIB的逐级威胁
核心原理:物理攻击是指攻击者直接接触芯片或电路板,通过机械、光学、化学或聚焦离子束(FIB)等手段,绕过封装和钝化层,直接探测或修改内部信号。对于TinyML设备,物理攻击的主要目标是读取闪存中的模型参数、密钥或直接修改指令流。攻击等级从低到高可分为:简单拆解(螺丝刀/热风枪)、微探针台测试(接触芯片内部金属走线)、FIB电路修改(切割或重连内部连线)。
判断方法:评估物理攻击风险时,需要回答三个问题:
- 设备是否容易拆解?——螺丝固定、卡扣设计、无灌胶的设备,攻击者几分钟内即可打开外壳。
- 芯片是否裸露?——QFP/TSSOP封装引脚外露,容易直接飞线;BGA/CSP封装虽然难度高,但配合热风枪和FIB仍可攻破。
- PCB走线是否可探测?——如果SPI Flash的数据线、地址线在PCB表层走线,攻击者可以直接焊接细线读取通信内容。
防御思路:物理攻击的防御需要分层设计。首先是封装选择——优先使用BGA或WLCSP封装,增加探针接触难度;其次是PCB布局——将敏感信号线布在内层,表层用地线或电源线覆盖;最后是主动检测——在PCB上布置细线网格或光敏传感器,一旦检测到开盖或钻孔立即擦除密钥。
3.2 侧信道攻击:从功耗曲线中还原密钥
核心原理:侧信道攻击不直接破坏芯片,而是通过测量设备运行时的物理泄漏信息来推断内部状态。对于TinyML设备,最常见的侧信道是功耗分析(SPA/DPA)和电磁辐射分析(EMA)。当MCU执行AES加密或模型推理时,不同指令和操作数会导致不同的功耗消耗,攻击者采集大量功耗曲线,通过统计相关性分析即可恢复密钥或模型权重。
典型场景:假设设备使用AES-128加密固件更新包,攻击者用示波器以100MS/s采样率采集MCU的VCC引脚电压降,同时触发加密操作。采集1000条功耗曲线后,使用差分功耗分析(DPA)即可在数小时内恢复128位密钥。对于TinyML设备,模型推理过程中的乘加运算也会泄漏中间值信息,攻击者甚至可以直接重建神经网络权重。
| 侧信道类型 | 测量对象 | 攻击难度 | TinyML典型风险 |
|---|---|---|---|
| 简单功耗分析 (SPA) | 单条功耗轨迹 | 低 | 识别AES轮次、模型层结构 |
| 差分功耗分析 (DPA) | 多条功耗轨迹统计 | 中 | 恢复AES密钥、模型权重 |
| 电磁辐射分析 (EMA) | 近场电磁探头信号 | 中高 | 无需物理接触,可远程采集 |
| 时序分析 | 执行时间变化 | 低 | 推断分支条件、密钥位数 |
防御措施:针对侧信道攻击,TinyML设备需要在硬件和软件两个层面同时加固。硬件上,使用内部LDO稳压器隔离外部电源波动,增加去耦电容降低功耗变化幅度;软件上,采用恒定时间算法(如蒙哥马利模乘)、随机延时插入、掩码技术(将密钥与随机数异或后再参与运算)。对于模型保护,可以在推理过程中加入随机噪声或使用同态加密(虽然计算开销大,但适用于部分场景)。
3.3 调试接口滥用:JTAG/SWD/串口的攻击路径
核心原理:几乎所有MCU都内置调试接口(JTAG、SWD、串口),用于开发阶段的程序下载和调试。但在生产环境中,这些接口如果未关闭,攻击者只需连接调试器(如ST-Link、J-Link)即可读取全部Flash内容、修改寄存器、甚至绕过安全启动。调试接口滥用是TinyML设备最常见、最容易利用的攻击入口。
操作流程:攻击者利用调试接口的典型步骤如下:
- 识别调试引脚:通过PCB走线追踪或芯片数据手册,找到SWDIO/SWCLK或TMS/TCK引脚位置。
- 连接调试器:使用J-Link或OpenOCD连接目标芯片,尝试读取IDCODE确认芯片型号。
- 尝试读取Flash:如果芯片未设置读保护(RDP=0),直接执行
read_memory 0x08000000 0x10000即可导出全部固件。 - 若RDP=1:尝试通过漏洞绕过(如CVE-2019-13104),或使用电压毛刺攻击(Glitch Attack)在RDP检查指令执行瞬间注入故障,跳过保护判断。
- 获取固件后:使用Ghidra或IDA Pro进行逆向分析,提取模型参数、密钥或通信协议。
防御要点:调试接口关闭必须作为TinyML设备出厂前的强制检查项。具体措施包括:
- 设置RDP级别为1(禁止调试访问,但可通过全擦除恢复)或级别2(永久锁定,不可回退)。
- 将调试引脚复用为GPIO,并在软件中配置为普通输入/输出模式。
- 在PCB上使用0欧电阻或跳线连接调试口,生产测试后移除电阻。
- 对于高安全场景,选择支持安全调试认证(如ARM TrustZone + Secure Debug)的芯片。
3.4 固件提取与逆向:离线分析的技术栈
核心原理:即使调试口已关闭,攻击者仍可拆下Flash芯片(如W25Q64)或MCU本体,使用编程器(如RT-Thread Flash Loader、CH341A)直接读取存储内容。对于内置Flash的MCU,攻击者可以使用化学腐蚀法去除封装,再用FIB或微探针读取存储单元状态。固件提取后,逆向工程的目标包括:恢复神经网络模型结构(层数、权重、激活函数)、提取加密密钥、分析通信协议、寻找软件漏洞。
判断方法:评估固件提取风险时,需要关注以下指标:
| 提取难度等级 | 攻击方法 | 所需设备 | 成功概率 |
|---|---|---|---|
| 低 | 拆下SPI Flash,编程器读取 | 热风枪、编程器(约200元) | 极高(>95%) |
| 中 | MCU内置Flash,RDP=1绕过 | 电压毛刺发生器、逻辑分析仪 | 中等(30-60%) |
| 高 | FIB直接读取存储单元 | FIB-SEM(数百万级设备) | 低(但高价值目标仍会尝试) |
逆向分析流程:攻击者获得固件二进制后,通常按以下路径分析:
- 固件识别:使用
binwalk扫描文件系统、压缩包、证书等嵌入式结构。 - 架构识别:通过
readelf或objdump确认CPU架构(ARM Cortex-M4、RISC-V等)。 - 符号恢复:如果固件未剥离符号表,直接获得函数名和全局变量名;否则通过字符串交叉引用定位关键函数。
- 模型提取:在二进制中搜索浮点数组模式(如0x3F800000表示1.0f),定位权重存储区域;结合反汇编中的卷积/全连接调用序列,重建模型结构。
- 密钥提取:搜索AES S盒常量(0x63,0x7C...)或RSA公钥指数(0x10001),定位密码算法实现。
防御策略:固件提取的防御需要结合硬件和软件:
- 加密存储:将模型和密钥使用设备唯一密钥(从OTP或eFuse中派生)加密后存入Flash,MCU启动时在安全环境中解密。
- 完整性校验:使用SHA-256对固件签名,启动时验证签名,防止固件被篡改或替换。
- 反逆向混淆:对关键算法进行控制流平坦化、字符串加密、反调试检测。
- 主动擦除:检测到物理入侵(如光敏传感器触发)时,立即擦除Flash中的密钥和模型。
3.5 综合威胁建模与防护优先级
核心原理:实际攻击中,攻击者往往组合使用多种手段。例如,先通过物理拆解获取PCB,再使用侧信道采集功耗曲线,最后结合调试接口漏洞完成固件提取。因此,威胁模型需要从攻击者的角度出发,评估每种攻击路径的成本、成功概率和收益,从而确定防护资源的分配优先级。
威胁建模方法:推荐使用STRIDE模型(Spoofing欺骗、Tampering篡改、Repudiation抵赖、Information Disclosure信息泄露、Denial of Service拒绝服务、Elevation of Privilege权限提升)对TinyML设备进行系统分析。以智能传感器节点为例:
| 威胁类别 | 具体场景 | 影响 | 防护优先级 |
|---|---|---|---|
| 信息泄露 | 调试口读取Flash,获取模型和密钥 | 高(核心资产丢失) | P0(立即修复) |
| 篡改 | 修改固件中的模型阈值,使设备失效 | 高(功能破坏) | P0 |
| 欺骗 | 伪造传感器数据,向云端发送虚假信息 | 中(数据污染) | P1(短期修复) |
| 拒绝服务 | 通过物理破坏或电压毛刺使设备死机 | 中(可用性损失) | P1 |
| 权限提升 | 利用调试接口进入系统管理模式 | 高(完全控制) | P0 |
防护优先级建议:
- 第一优先级:关闭调试口并设置RDP≥1。这是成本最低、效果最明显的防护措施,能阻断90%以上的攻击路径。
- 第二优先级:固件加密存储和签名验证。即使Flash被读取,攻击者也无法直接获得明文模型和密钥。
- 第三优先级:侧信道防护。对于高价值设备,增加功耗平衡电路和软件掩码。
- 第四优先级:物理防拆。使用灌胶、屏蔽罩、防拆传感器,增加攻击者的时间成本。
总结复盘:威胁模型不是一次性的静态文档,而是需要随产品迭代持续更新的动态过程。每次硬件改版、固件升级或部署环境变化时,都应重新评估攻击面。建议在开发流程中建立安全评审节点,使用威胁建模工具(如Microsoft Threat Modeling Tool)辅助分析,并定期进行渗透测试验证防护有效性。对于TinyML设备,安全设计的目标不是不可攻破(这在物理可达场景下不现实),而是将攻击成本提升到超过设备本身价值,从而让攻击者失去兴趣。