4. 机器人通信威胁模型
机器人系统不是一台孤立的计算机,而是由感知、决策、控制、执行与云端协同构成的分布式信息物理系统。通信链路一旦被攻破,攻击者不仅能窃取数据,还可能直接操纵机械臂、移动底盘或无人机,造成物理伤害。因此,建立系统化的威胁模型,是机器人安全通信测试与验证的起点。本节围绕攻击面识别、STRIDE威胁建模、攻击树分析和典型案例四个层面展开。
一、机器人通信的常见攻击面
攻击面是指攻击者可以尝试与系统交互、注入数据或获取信息的入口集合。机器人通信的攻击面通常分布在五个层次:
- 物理接口层:USB、调试串口、JTAG、CAN总线、以太网维护口。现场调试口若未关闭,攻击者可直连控制器注入指令。
- 短距无线层:Wi-Fi、蓝牙、ZigBee、遥控射频链路。常见风险包括弱口令、WPS暴露、未加密遥控信号重放。
- 网络协议层:ROS/ROS2 DDS、MQTT、Modbus TCP、OPC UA、TCP/UDP自定义协议。话题未鉴权、DDS域发现无保护是典型问题。
- 应用与云平台层:远程运维API、OTA升级、任务下发接口。令牌泄露、越权调用、升级包未签名是主要风险。
- 供应链与配置层:第三方SDK、默认证书、硬编码密钥、未更新的固件依赖。
识别攻击面时,应沿着“数据从哪里来、经过哪些节点、最终影响哪个执行器”的路径逐段梳理,而不是只检查单个设备。
二、STRIDE威胁建模方法
STRIDE是微软提出的威胁分类框架,将威胁分为六类:假冒(Spoofing)、篡改(Tampering)、抵赖(Repudiation)、信息泄露(Information Disclosure)、拒绝服务(Denial of Service)和权限提升(Elevation of Privilege)。在机器人通信场景中,可将其映射到具体资产与数据流。
| STRIDE类别 | 机器人通信中的典型表现 | 受影响资产 |
|---|---|---|
| 假冒 | 伪造遥控器、伪装成合法ROS节点发布控制话题 | 控制指令、身份认证 |
| 篡改 | 修改CAN报文、篡改传感器数据或任务参数 | 感知数据、执行指令 |
| 抵赖 | 操作日志缺失,无法追溯异常指令来源 | 审计日志、取证数据 |
| 信息泄露 | 窃听视频流、地图数据、密钥或生产配方 | 隐私数据、知识产权 |
| 拒绝服务 | 泛洪DDS发现流量、阻塞Wi-Fi信道、耗尽CAN总线带宽 | 通信可用性、实时控制 |
| 权限提升 | 利用调试接口获取root,进而控制运动规划节点 | 控制器、安全边界 |
建模流程建议为:绘制数据流图(DFD)→ 标注信任边界 → 对每个数据流和存储应用STRIDE → 记录威胁与缓解措施。信任边界尤其重要,例如从公网到机器人内网、从非安全域到安全控制域,都是攻击者可能跨越的位置。
三、攻击树分析
攻击树以“攻击目标”为根节点,逐层分解为子目标与具体攻击手段,适合分析多路径攻击。以“使移动机器人偏离预定路径”为目标,可构建如下攻击树:
目标:使移动机器人偏离预定路径
├── 篡改控制指令
│ ├── 伪造ROS2控制话题发布者
│ ├── 重放历史速度指令
│ └── 中间人修改DDS报文
├── 干扰感知输入
│ ├── 欺骗激光雷达回波
│ ├── 遮挡或致盲摄像头
│ └── 注入虚假定位数据
├── 破坏通信可用性
│ ├── 泛洪Wi-Fi信道
│ ├── 耗尽CAN总线带宽
│ └── 攻击DDS发现服务
└── 获取高权限
├── 利用未修复的OTA漏洞
└── 通过调试串口登录控制器
攻击树的价值在于量化与剪枝:可为每个叶子节点标注攻击成本、技术难度和检测难度,从而优先修复“低成本、高影响”的路径。例如重放攻击通常成本低,若控制指令无序列号和时间戳,就应优先加入防重放机制。
四、典型机器人攻击案例与复盘
案例一:某研究团队演示了对工业机械臂的勒索攻击。攻击者通过暴露在公网的调试接口进入控制器,篡改运动轨迹并加密关键配置,导致产线停机。复盘要点是调试接口未隔离、固件未签名、缺乏网络分段。
案例二:针对ROS1系统的攻击。由于ROS1话题默认无认证,攻击者可在同一网络内发布/cmd_vel话题,直接控制移动底盘。缓解措施包括迁移到ROS2并启用SROS2、使用DDS安全插件、对关键话题做访问控制。
案例三:无人机GPS欺骗。攻击者发射伪造GPS信号,使无人机误判位置并偏离航线。该案例说明单一信号源不可信,应融合IMU、视觉里程计和RTK,并监测定位跳变。
常见误区:只关注网络层加密,忽视物理接口和供应链;认为内网绝对安全而不做分段;把STRIDE当成一次性文档,未随系统迭代更新;攻击树只画不剪枝,导致修复优先级混乱。
实践建议:每次通信协议变更或新增远程接口后,重新评审攻击面;将STRIDE威胁条目转化为可执行的测试用例;用攻击树指导渗透测试范围,确保覆盖控制、感知和可用性三类目标。
综上,机器人通信威胁模型不是静态清单,而是从攻击面识别出发,经STRIDE分类、攻击树分解,最终落到可验证的安全测试项。只有把威胁模型与测试用例绑定,才能在真实系统中持续发现并收敛风险。