论文浅读(第三期)|摘自《UAV Resilience Against Stealthy Attacks》(第一节)

论文标题:《UAV Resilience Against Stealthy Attacks》

作者:Arthur Amorim,University of Central Florida;

Max Taylor,Idaho National Laboratory; Research Acceleration Department;

Trevor Kann,Carnegie Mellon University;

Gary T. Leavens,University of Central Florida;

William L. Harrison,Idaho National Laboratory; Research Acceleration Department ;

Lance Joneckis,Idaho National Laboratory; Research Acceleration Department;

发表期刊:arXiv:2503.17298v2 [cs.CR] 14 Apr 2025


摘要

无人机依赖不可信软件组件执行高危或关键任务,极易成为攻击目标。现有研究虽可防范攻击者攻陷地面控制站或入侵无人机部分软件后实施破坏,但无法同时抵御这两类攻击。本文提出一种集成运行时监控与基于 seL4 软件隔离的无人机软件架构,可同时防御针对软件漏洞的利用与隐身攻击。该架构能够兼容改造传统无人机,并对主流 MAVLink 协议进行安全加固,具备广泛部署与应用的潜力。

背景和相关介绍

一.INTRODUCTION

1.研究背景与安全隐患。无人机依赖与地面控制站(GCS)的通信传输指令、回传数据,核心依赖复杂的飞行控制软件(FCS)及Linux等支撑软件。复杂软件栈带来巨大攻击面,攻击者可通过攻击导致无人机坠毁、篡改任务执行。机站间通信协议存在缺陷:未考虑协议滥用风险,且常存在实现漏洞,为攻击者提供更多入侵途径。

2.现有相关研究及局限

A.HACMS项目(软件隔离技术)

  • 核心作用:通过无人机软件隔离,防止未验证软件的漏洞影响飞控(FCS)等关键组件,抵御攻击者利用软件漏洞劫持无人机。

  • 关键局限:未考虑隐身攻击,无法防御攻击者利用协议允许的"合法指令",恶意诱导无人机出现异常行为(例:无人机上升时指令开伞,因未校验前置条件导致危险)。

B.DATUM技术(运行时监控)

  • 核心作用:通过运行时监控,校验地面控制站向无人机发送的指令,确保指令合规,可有效防御隐身攻击。

  • 关键局限:无法抵御攻击者利用未验证软件(如网络驱动、视觉软件)的漏洞,绕过其运行时监控进行攻击。

3.核心痛点--现有两项关键技术单独使用,均无法同时抵御"软件漏洞利用"和"隐身攻击",亟需更全面的防护架构解决该问题。

二.BACKGROUND

从图中可以清晰看到,HACMS 架构基于 seL4 微内核实现了软件强隔离,能有效防止攻击者利用未验证的网络驱动等软件漏洞来控制无人机,但它无法防御隐身攻击 ------ 攻击者从地面站发送的、完全符合协议规范的恶意指令(如无人机上升时指令开伞)会被直接传递给飞控核心,从而导致危险。而 DATUM 架构通过在驱动与飞控之间插入运行时监控模块,能有效拦截这类隐身攻击,却无法抵御绕过攻击:一旦攻击者攻陷了驱动或底层系统,就可以绕过监控,直接向飞控发送恶意指令。这意味着,一个同时具备这两种能力的强大攻击者,就能轻易突破任何单一的防御体系。

因此,我们提出了融合两者优势的新架构:在 seL4 强隔离的基础上,将 DATUM 监控模块置于受保护的飞控分区内,确保所有指令必须先经过安全校验才能到达飞控核心,从而同时抵御 "软件漏洞利用" 和 "隐身攻击",为无人机提供更全面、更可靠的安全防护。

本文核心是融合 HACMS 与 DATUM 技术优势,构建统一无人机安全架构,抵御更强大的攻击者:借鉴 HACMS 的软件分区隔离技术,保护飞控核心(FCS)免受不可信软件漏洞影响,同时保留分区间可控通信;借鉴 DATUM 的指令监控功能,防范隐身攻击,且该架构适配多种主流无人机、兼容 MAVLink 协议。

三类隐身攻击案例总结

1.案例一:参数边界不准确(Inaccurate Bounds)

  • 背景:这类攻击利用指令载荷边界定义或实现错误。以 PX4 飞控为例,其俯仰控制参数(如MC_PITCH_PMC_PITCHRATE_FF)的安全范围相互依赖,但协议仅提供了独立的参数上限,未考虑组合效应。

  • 影响:攻击者可通过合法的PARAM_SET指令,将MC_PITCHRATE_MAX(最大俯仰速率)设置到极高值(如 1800 deg/s),或组合调整其他参数,使无人机在遇到阵风等微小外部变化时失控甚至坠毁。

从表中可以看到:

  • MC_PITCH_P 的最大值为 12,默认值为 6.5

  • MC_PITCHRATE_P 的最大值为 0.6,默认值为 0.15

  • MC_PITCHRATE_FF 没有明确上限(n/a),默认值为 0.0

  • MC_PITCHRATE_MAX(最大俯仰速率限制)的协议上限高达 1800.0 deg/s,而默认值仅为 220.0 deg/s

研究表明,当 MC_PITCH_PMC_PITCHRATE_FF 被设置到较高值时,即使俯仰速率仅为 221 deg/s(略高于默认限制),也会导致无人机失控坠毁。这说明:

  • 协议给出的单个参数上限(如 12、0.6、1800.0)是孤立且不安全的。

  • 真正的安全范围,是这些参数之间的动态组合关系,而协议本身并未对此进行约束。

攻击者可以通过一系列完全合法的 PARAM_SET 指令:

  1. MC_PITCH_PMC_PITCHRATE_FF 调整到较高值。

  2. 再将 MC_PITCHRATE_MAX 从 220.0 deg/s 提高到 1800.0 deg/s。

这样一来,无人机的俯仰控制系统会变得极度敏感,在遇到阵风等微小外部变化时,就会产生远超安全范围的俯仰速率,最终导致失控甚至坠毁。

2.案例二:前置条件违反(Precondition Violation)

  • 背景:MAVLink 协议允许执行一些本应在特定条件下才安全的指令。例如,ArduPilot 的开伞指令MAV_CMD_DO_PARACHUTE(2),文档规定了电机已解锁、非特技模式、不在上升阶段、高于最低高度等前置条件。

  • 影响:这些前置条件在运行时并未被强制检查。攻击者可在无人机上升时直接发送开伞指令,导致结构损坏或坠毁,而 MAVLink 本身缺乏强制执行机制。

3.案例三:资源滥用(Resource Misusage)

  • 背景:这类攻击通过篡改任务指令来影响无人机行为。在 MAVLink 的任务管理实现中,MISSION_COUNT(N)指令用于告知无人机将接收 N 个航点。部分实现期望接收恰好 N 个航点,否则会出现未定义行为。

  • 影响:攻击者可利用此漏洞,通过发送超出预期数量的航点,使旧的任务指令被错误地缓存并在后续触发。这会导致无人机突然切换回之前的任务,进入未授权空域或引发碰撞,造成严重的任务中断。

融合架构的设计思路

一.核心动机--现有技术的互补性与局限性

HACMS 与 DATUM 是两种互补的无人机安全技术,但各自存在明显短板:

  • HACMS:通过 seL4 微内核实现强隔离,可防止未验证软件(如网络驱动)的漏洞影响飞控核心(FCS),但假设只有畸形消息才会导致异常,无法防御利用协议允许的 "合法指令" 发动的隐身攻击。

  • DATUM:通过运行时监控校验指令,可有效拦截隐身攻击,但假设所有指令都会先经过其检查,若攻击者获得系统 root 权限,可绕过监控直接向 FCS 发送恶意指令。

因此,本文提出将两者融合,构建统一架构,以抵御同时具备 "软件漏洞利用" 和 "隐身攻击" 能力的强大攻击者。

二.核心架构设计

**组件隔离:**利用 seL4 微内核将系统划分为 "飞控栈(FCS Stack)与网络栈(Network Stack)" 两个受保护分区,确保网络栈的漏洞无法影响飞控栈的完整性。(见Fig 2)

安全通信:通过共享内存实现两分区间的受控通信,网络栈解码 MAVLink 消息后写入共享内存,飞控栈进程读取并转发给 FCS,同时由 DATUM 进行安全校验。(见Fig 2)

系统集成:通过交叉编译和 QEMU 虚拟环境,实现对 ArduPilot 和 PX4 等主流飞控的兼容,无需修改 SITL 框架,支持快速测试与验证。(见Fig 3)

  1. 架构分区与隔离

整个系统基于 seL4 微内核,被划分为两个受严格保护的分区:

  • 网络栈分区(Network Stack):包含网络驱动(Drivers)和运行在 Linux 虚拟机(Linux VM)上的网络协议栈。这部分是不可信的,容易被攻击者利用漏洞攻陷(图中用小恶魔图标表示)。

  • 飞控栈分区(FCS Stack):包含 DATUM 监控模块、飞控核心(Flight Control)和运行在 Linux 虚拟机(Linux VM)上的飞控软件。这部分是可信的关键组件,需要被重点保护。

seL4 的形式化验证保证了这两个分区之间的强隔离,即使网络栈被攻陷,其漏洞也无法直接影响飞控栈的完整性和控制流。

  1. 安全通信机制

两个分区之间通过 ** 共享内存(Shared Memory)** 进行受控通信:

  1. 网络栈分区解码从地面站(GCS)收到的 MAVLink 消息,并将其写入共享内存缓冲区。

  2. 飞控栈分区的进程从共享内存中读取消息,然后交由 DATUM 进行安全校验。

  3. 只有通过校验的安全指令,才会被转发给飞控核心(Flight Control)执行。

这种设计确保了:

  • 网络栈无法直接访问飞控栈的内存或线程控制机制。

  • 所有指令都必须经过 DATUM 的检查,攻击者无法绕过监控直接向飞控发送恶意指令。

  1. 核心优势
  • 防绕过:seL4 的强隔离确保了 DATUM 的不可绕过性,即使攻击者攻陷了网络驱动,也无法绕过监控。

  • 防隐身攻击:DATUM 的运行时校验,能有效拦截利用合法协议指令的隐身攻击。

  • 高兼容性:通过共享内存和 Linux 虚拟机,无需修改飞控核心,即可对现有无人机系统进行安全升级。

简单来说,这张图的核心结论是:通过将 DATUM 置于受 seL4 保护的飞控栈分区内,我们同时获得了 HACMS 的强隔离能力和 DATUM 的隐身攻击防御能力,构建了一个更全面、更可靠的安全防护体系。


cpp 复制代码
【系统构建与验证流程示意图】

┌─────────────────────────────────────────────────────────┐
│  1. DATUM 监控模块构建                                   │
│     • Datum Specification (F* 协议规范)                  │
│       - 用F*语言编写协议安全规则和约束条件               │
│     → Extract to OCaml (提取为 OCaml 代码)              │
│       - 将形式化规范转换为可执行代码                     │
│     → QEMU-aarch64 (编译为目标平台二进制)               │
│       - 在aarch64架构虚拟机中编译,适配无人机硬件        │
└─────────────────────────────────────────────────────────┘
                        ↓
┌─────────────────────────────────────────────────────────┐
│  2. 飞控软件与组件构建                                   │
│     • Flight Control Software (ArduPilot/PX4)           │
│       - 复用现有主流飞控软件,无需重写核心逻辑           │
│     → Cross Compile (交叉编译为 FCS Binary)            │
│       - 编译为目标平台可执行文件                         │
│     → 同时生成 Attestor / fcs-ingress / net-ingress 二进制 │
│       - Attestor:系统完整性验证                         │
│       - fcs-ingress:共享内存 → 飞控通信                 │
│       - net-ingress:网络接口 → 共享内存通信             │
└─────────────────────────────────────────────────────────┘
                        ↓
┌─────────────────────────────────────────────────────────┐
│  3. 系统镜像生成                                         │
│     • Buildroot: fcs-vm → 生成 fcs Image (飞控栈镜像)   │
│       - 包含DATUM、飞控核心和可信Linux环境               │
│     • Buildroot: net-ingress-vm → 生成 net-ingress Image (网络栈镜像) │
│       - 包含网络驱动和不可信Linux环境,与飞控栈强隔离    │
└─────────────────────────────────────────────────────────┘
                        ↓
┌─────────────────────────────────────────────────────────┐
│  4. 测试与验证 (Runtime)                                 │
│     • QEMU-aarch64 (运行镜像,模拟无人机硬件)          │
│       - 提供安全、可重复的测试环境                       │
│     • SITL (Software-in-the-Loop,利用现有框架测试)     │
│       - 无需修改SITL,直接兼容现有测试基础设施           │
└─────────────────────────────────────────────────────────┘

评估与结论

1. 实验设置
  • 评估对象:ArduPilot 4.5.7 和 PX4 1.15.3 两款主流飞控。
  • 测试环境:在 QEMU 虚拟机中运行,宿主机为 Ubuntu 24.04,配备 64GB 内存与 16 核 Intel 处理器。
  • 三种配置:
    • QEMU-Linux:飞控软件直接运行在 Linux 环境中(基线)。
    • QEMU-HACMS:基于 seL4 微内核,将网络栈与飞控栈隔离。
    • QEMU-HACMS-DATUM:在隔离架构基础上,加入 DATUM 运行时监控。
  • 测试任务:执行包含 25 个航点的标准飞行任务,处理 5,000--10,000 条 MAVLink 消息。
  • 评估指标:消息延迟(ms)与内存占用(KB),以及对三类隐身攻击的检测能力。
2. 性能结果(Table II)
  • 趋势:从 QEMU-Linux → QEMU-HACMS → QEMU-HACMS-DATUM,内存占用和延迟均有小幅增加,这是安全隔离和监控带来的合理开销。
  • 可行性:即使在 QEMU-HACMS-DATUM 配置下,延迟仍在可接受范围内,无人机仍能被地面站可靠控制,且延迟可通过优化数据交换实现进一步降低。
3.攻击检测能力(Table III)

结论:DATUM 生成的验证器(Attestor)能够成功检测出所有三类隐身攻击,证明了架构在安全防护上的有效性。

4.核心结论

本文提出了一种融合 HACMS 与 DATUM 的无人机安全架构,利用 HACMS 基于 seL4 微内核的强隔离能力,将不可信的网络栈与可信的飞控栈严格隔离,防止攻击者通过软件漏洞绕过安全机制;同时结合 DATUM 的运行时监控能力,对所有指令进行安全规则校验,有效拦截利用合法协议的隐身攻击,并支持工程师快速修补协议漏洞。该架构通过重构通信基础设施与适配商用飞控软件,在保持无人机正常操控的前提下,以可接受的性能开销实现了对 "软件漏洞利用" 和 "隐身攻击" 的双重防御,并通过三类典型案例验证了其有效性。


该论文主要贡献包括:改造主流飞控无人机,引入 "运行时监控 + 不可信组件隔离" 架构,保障 FCS 完整性并防御隐身攻击;通过三个案例验证架构对隐身攻击的缓解效果;实验证明架构性能开销可接受,具备实际部署价值。

我们这一节的分享到此结束,我们下节再见🙏

相关推荐
青衫码上行2 小时前
高频 SQL 50题(基础版)| 查询 + 连接
数据库·sql·学习·mysql
闲人编程2 小时前
任务监控与错误重试
linux·服务器·网络·celery·任务队列·任务监控·错误重试
宇木灵2 小时前
C语言基础学习-X0前置
c语言·开发语言·学习
tianyagukechat2 小时前
rockylinux9.5 配置IP
java·网络·tcp/ip
希望之晨2 小时前
c++ 11 学习 override
开发语言·c++·学习
学编程的闹钟2 小时前
E语言组件开发全攻略
学习
黄金龙PLUS2 小时前
高级加密标准算法AES
网络安全·密码学·哈希算法·同态加密
winfreedoms2 小时前
Puppypi——树莓派5主板学习笔记
笔记·学习
gjf05_052 小时前
人该怎样活着呢?版本69.2
学习