3. 机器人安全威胁模型

在机器人系统中,安全威胁并不是抽象概念,而是会直接导致动作异常、任务失败甚至物理伤害的现实风险。SROS2 的安全机制之所以要同时覆盖身份认证、访问控制、加密与审计,正是因为机器人通信链路面临多种攻击面。理解威胁模型,是设计安全策略、配置 DDS 安全插件和排查异常事件的前提。

一、核心原理:从通信链路看六类威胁

机器人系统通常由传感器、控制器、执行器、规划节点和远程运维终端组成,它们通过 DDS 主题进行发布/订阅通信。攻击者可能位于同一局域网、被入侵的节点、伪造的 Wi-Fi 接入点,甚至供应链上游的固件或镜像中。围绕“机密性、完整性、可用性、真实性”四个安全目标,可以把威胁归纳为六类:

  • 窃听:攻击者被动监听 DDS 流量,获取激光雷达点云、摄像头图像、控制指令或密钥材料。
  • 篡改:攻击者修改传输中的消息内容,例如把目标速度从 0.5 m/s 改为 5 m/s。
  • 重放:攻击者录制合法消息后重新发送,使机器人重复执行历史动作。
  • 拒绝服务:攻击者通过泛洪、资源耗尽或恶意节点占满发现服务,使正常通信中断。
  • 身份伪造:攻击者冒充合法节点加入域,发布虚假感知数据或订阅敏感主题。
  • 供应链风险:第三方库、固件、容器镜像或证书在交付前已被植入后门或弱密钥。
威胁模型的核心不是“列出攻击名称”,而是明确:谁有能力接触哪条链路、能读到什么、能改什么、能阻断什么,以及一旦成功会造成什么物理后果。

二、威胁与安全属性对照

下表把六类威胁与受影响的通信环节、典型后果及 SROS2 对应缓解手段放在一起,便于在配置安全策略时快速定位。

威胁类型 典型攻击位置 直接后果 SROS2 缓解方向
窃听 局域网抓包、无线空口 敏感数据泄露、密钥被推断 DDS 加密插件、TLS/DTLS 传输保护
篡改 中间人、被控节点 控制指令被改、状态不一致 消息完整性校验、数字签名
重放 录制后重发 重复执行危险动作 序列号、时间戳、防重放窗口
拒绝服务 泛洪、发现服务耗尽 通信中断、任务停滞 限流、资源隔离、访问控制
身份伪造 伪造证书或节点身份 虚假数据注入、越权订阅 PKI 证书、身份认证、权限策略
供应链风险 依赖库、镜像、固件 后门、弱密钥、持久化控制 依赖审计、签名镜像、密钥轮换

三、攻击路径与防御切入点

下面这张图把机器人通信链路中的六类威胁与 SROS2 的防御切入点放在同一视图中。左侧是攻击者可能介入的位置,中间是 DDS 通信与机器人节点,右侧是对应的安全控制。可以看到,窃听和篡改主要发生在传输层,重放和身份伪造发生在身份与消息层,拒绝服务发生在资源与发现层,供应链风险则发生在部署之前。

机器人通信威胁模型与 SROS2 防御切入点 攻击者 / 风险源 窃听者 中间人 / 篡改者 重放攻击者 DoS 泛洪源 伪造身份节点 供应链后门 DDS 通信域与机器人节点 发现服务 / 主题匹配 Discovery · Topic · QoS 传感器数据流 LiDAR · Camera · IMU 控制指令流 cmd_vel · JointTrajectory 执行器与规划节点 Controller · Planner 远程运维 / 云平台 Teleop · OTA · Log SROS2 安全控制 加密与完整性保护 防重放序列与时间戳 访问控制与权限策略 身份认证与 PKI 证书 资源限流与隔离 依赖审计与镜像签名 攻击路径 防御路径

四、案例与场景:一次重放攻击的复盘

某移动机器人通过 /cmd_vel 主题接收速度指令。攻击者在同一 Wi-Fi 下抓取到一段“前进 2 秒”的合法消息,并在机器人执行避障时重放该消息。由于原始系统未启用 SROS2 安全插件,DDS 不校验消息新鲜度,机器人重复执行前进动作,撞上障碍物。

复盘时发现三个关键问题:第一,/cmd_vel 未启用加密与认证,攻击者可以轻易加入域;第二,消息没有序列号或时间戳校验,重放无法被识别;第三,控制节点没有对指令来源做权限限制。修复方案是启用 SROS2 安全插件,为控制节点签发证书,并在 QoS 与安全策略中启用完整性保护与防重放机制。

# 生成安全密钥与证书(示意)
ros2 security generate_artifacts -k keystore -n /controller_node

# 启用安全环境变量
export ROS_SECURITY_ENABLE=true
export ROS_SECURITY_STRATEGY=Enforce
export ROS_SECURITY_KEYSTORE=./keystore

# 运行节点时加载安全策略
ros2 run demo_nodes_cpp talker --ros-args \
  --enclave /controller_node
只启用加密而不启用访问控制,仍然无法阻止伪造节点订阅敏感主题。安全策略必须同时覆盖“谁能说、谁能听、能说什么、能听什么”。

五、常见误区与排查清单

  • 误区一:认为局域网可信,不需要加密。实际上机器人常接入共享 Wi-Fi 或客户网络,窃听成本极低。
  • 误区二:只做身份认证,不做消息完整性校验。攻击者仍可篡改已认证节点的消息内容。
  • 误区三:忽略供应链风险。第三方 ROS 包、Docker 镜像和固件可能携带弱密钥或后门。
  • 误区四:把 DoS 当作纯网络问题。DDS 发现服务被恶意节点占满时,机器人节点同样会失联。
排查安全事件时,建议按“链路—身份—消息—资源—依赖”五层顺序检查:先确认通信是否加密,再确认节点证书是否有效,然后检查消息完整性与重放保护,接着观察资源占用与发现服务状态,最后审计依赖来源与镜像签名。