大家读完觉得有帮助记得关注和点赞!!!
摘要
随着信息物理系统(CPS)日益普及和自主化,确保其嵌入式逻辑的韧性对于维护安全性和完整性至关重要。其中,最隐蔽且破坏性最强的威胁之一是非侵入式故障注入攻击,即硬件层面的干扰会传播到软件执行中并破坏控制逻辑。本文研究了无人机(UAV)自动驾驶仪故障安全机制对电压毛刺故障注入的脆弱性。我们引入了一种双重评估方法:使用ARMORY进行基于软件的故障模拟,以及使用电压毛刺平台(Chip-Whisperer)进行基于硬件的实验,对运行UAV自动驾驶仪故障安全逻辑的STM32微控制器施加受控且精准定时的故障。我们对特定故障安全模式的有针对性分析揭示了时间敏感型漏洞,这些漏洞可以抑制或改变安全响应,例如在关键时刻禁用紧急故障安全激活,从而可能实现无人机劫持。此外,我们根据真实硬件行为验证了基于软件的故障注入结果,展示了模拟攻击如何转化为对CPS安全性和可靠性的切实风险。
I. 引言
故障注入[16]是一种强大的评估技术,通过在软件层面[26, 33]或通过物理硬件操作暂时干扰被测设备(DUT)的运行环境,从而诱发非预期行为。硬件级故障注入方法包括时钟毛刺、电压故障注入(VFI)、电磁(EM)辐射和激光故障注入。这些技术会短暂中断设备的正常运行。其潜在后果被称为故障模型,包括位翻转[31]、跳过机器指令[35]或改变设备内部存储器中存储的数据[19]。
迄今为止,大部分故障注入研究都集中在安全关键操作上,例如加密实现(如AES、RSA)[4, 24, 40, 25]和安全启动机制[13]。这些研究表明,精心定时的故障可以绕过固件验证、提取密钥或破坏可信执行环境。另一方面,信息物理系统(CPS)安全[37, 12]这一更广泛的领域获得了显著关注,研究人员展示了网络攻击如何操纵物理结果[38, 8, 7]。然而,故障注入对信息物理系统(CPS)[10, 21](如无人机(UAV))的安全影响研究不足,尤其是在高级应用逻辑层面[11, 9, 32, 3]。在这些系统中,安全性和可靠性至关重要,控制逻辑中的故障可能导致灾难性后果(例如,无人机劫持、任务失败甚至坠毁)[1, 39]。
故障注入测试在评估无人机系统韧性方面起着至关重要的作用。最广泛使用的开源自动驾驶仪平台之一PX4-Autopilot包含了安全关键组件,例如设计用于在传感器错误或通信故障发生时防止事故的故障安全机制。这些例程是无人机在自主或半自主飞行中安全的基础。然而,故障注入对无人机构成了严重的安全风险。攻击者能够在故障安全逻辑执行时注入故障,导致不受控的行为或坠毁场景。随着现代无人机变得更加互联和复杂,它们面临远程和物理攻击的风险也在增加。尽管存在这种风险,先前尚无工作全面研究PX4或其他CPS平台上的硬件故障注入,这在CPS系统安全研究中留下了一个关键空白[6, 36]。
本文旨在通过研究广泛使用的无人机自动驾驶仪PX4-Autopilot及其安全机制对故障注入攻击的脆弱性来弥合这一空白。为此,本研究将采用双重方法:使用ARMORY进行基于软件的模拟,以及使用ChipWhisperer配合STM32微控制器进行基于硬件的故障注入。主要目标是评估这些故障注入的有效性并表征其对系统行为的影响。
本工作的贡献包括:
通过研究硬件级漏洞(与已得到充分研究的软件级威胁相比,这些漏洞常被忽视),解决了信息物理系统(CPS)安全研究中的一个关键空白。
针对PX4-Autopilot的双重方法故障注入活动,结合了使用ARMORY的基于模拟的攻击和在STM32微控制器上的物理硬件毛刺攻击。
对PX4故障安全例程进行安全评估,识别时间敏感的攻击窗口,并表征注入故障对决策逻辑的影响。
展示了模拟和硬件测试的互补优势,弥合了抽象故障模型与现实世界硬件行为之间的差距。
II. 背景与相关工作
II-A 无人机自动驾驶仪安全
无人机(UAV)越来越多地应用于从农业、物流到监视和国防等领域。许多此类系统依赖于开源自动驾驶仪框架,其中PX4由于其模块化架构和对多样化平台的支持而成为应用最广泛的之一。无人机日益增长的自主性和连接性伴随着不断升级的网络安全漏洞。
现有的无人机安全研究主要集中在软件级威胁上。像MAVLink这样被PX4广泛用于遥测和控制的通信协议已被证明容易受到注入和拒绝服务(DoS)攻击[15]。此外,软件模糊测试发现了关键漏洞,即格式错误的消息可能导致无人机行为崩溃或被劫持[41, 18, 2, 22]。导航安全是另一个得到充分研究的领域,研究重点是通过增强扩展卡尔曼滤波器(EKF)的异常检测来防御GPS欺骗[17]。
虽然这种以软件为中心的研究很有价值,但它往往忽视了硬件层面的威胁。基于PX4的无人机通常在资源受限的微控制器上运行,这些控制器缺乏强大的物理保护。这些平台仍然暴露于故障注入(FI)攻击[16]之下,这些攻击可以悄无声息地破坏控制逻辑或绕过安全机制,而不会触发软件级警报。尽管其潜在严重性很高,但在无人机自动驾驶仪韧性背景下,基于硬件的故障注入研究仍然严重不足。
请参阅图1标题: 电压故障注入攻击及其潜在影响[34]
II-B 硬件故障注入
故障注入是一种用于评估嵌入式系统鲁棒性或破坏其安全性的强大技术。它涉及在设备运行时故意向其物理环境中引入瞬态故障,以诱发非预期行为。这些攻击已被广泛应用于破坏加密硬件,例如从AES或RSA实现中提取密钥[4, 24],以及破坏微控制器和物联网设备中的安全启动机制[20, 27]。
故障可以通过各种环境操作诱发,包括时钟毛刺、电磁干扰和基于激光的注入[5]。这些干扰通常会导致故障模型,该模型描述了物理攻击的逻辑结果。常见的故障模型包括内存中的位翻转、寄存器中存储的数据损坏或关键机器指令的跳过。当针对控制流逻辑时,这些故障允许攻击者重定向程序执行,从而有效绕过安全检查或安全例程。
II-C 基于电压的故障注入
在各种故障注入方法中,电压毛刺(通常称为电源故障)由于其较低的成本和对广泛嵌入式目标的有效性而经常受到青睐[5]。它涉及向处理器电源(VCC)引入短暂、有意的干扰或"毛刺"。这种短暂的电压下降会破坏数字逻辑门的正常时序,导致指令跳过或错误分支等效果。
电源故障的成功取决于电压稳定性与数字操作精确时序之间的关键关系。如图1所示,有效的毛刺需要足够的电压降和精心控制的时序。以下参数[27, 34]对于配置成功的电压毛刺至关重要:
触发信号: 启动毛刺序列的外部事件或信号。这作为攻击的时间起点。
起始偏移: 触发信号与同步点之间的时间延迟,通常以时钟周期测量。
同步: 目标系统执行过程中的特定时间参考点,用于将故障与特定指令对齐。
相位偏移: 用于相对于时钟边沿移动毛刺的精细延迟。正偏移发生在上升沿之后,而负偏移发生在上升沿之前。
宽度: 电压下降的持续时间。这决定了毛刺对目标逻辑门的总体影响,以及故障是导致复位还是成功的毛刺。
通过精确调整这些参数的时间,使其与关键决策逻辑(如PX4故障安全例程)重合,攻击者可以从根本上颠覆无人机的预期安全状态。在图1中,绿色区域代表设备的正常工作电压范围,而红色阴影区域表示设备运行可能变得不可靠或故障的电压水平。分隔这些范围的电压水平是设备特定的,取决于微控制器架构、制造工艺和工作频率等因素。
II-D PX4-Autopilot
PX4是一个开源、专业级的飞行控制系统,设计用于广泛的无人机(UAV)[23]。如图2所示,PX4固件运行在基于STM32的飞行控制器上。该控制器与机载传感器接口,与伴侣计算机(如NVIDIA或树莓派板)通信,并通过PWM或CAN协议控制无人机的电机。故障安全机制作为固件的关键部分直接嵌入在飞行控制逻辑中。
请参阅图2标题: 基于PX4的无人机系统架构,展示了基于STM32的飞行控制器与伴侣板之间的交互。故障安全机制发生在STM32微控制器上的PX4固件层内。
II-E 故障安全机制:概述
PX4中的故障安全逻辑是在系统状态降级期间保障飞行安全的最后一道防线[30]。它监控关键输入,例如无线电连接性、GPS有效性和电池电量,并执行恢复操作以防止灾难性坠毁。默认情况下,PX4进入临时悬停模式以允许飞行员干预;如果没有发生覆盖,系统则执行最终安全操作。这些操作按严重程度分类,包括返航(RTL)、降落、解除武装或飞行终止等。
表II介绍了PX4文档中定义的可能故障安全操作,按严重程度递增排序。
表 I:故障安全操作模式
操作模式 | 操作模式代码 | 描述 |
|---|---|---|
无/禁用 | action = 0 | 不触发任何响应;忽略故障安全。 |
警告 | action = 1 | 仅发出警告消息(例如,通过QGroundControl)。 |
悬停 | action = 5 | 飞行器保持位置(多旋翼悬停;固定翼盘旋)。 |
返航(RTL) | action = 6 | 飞行器使用安全的预定路径返回起飞点。 |
降落 | action = 7 | 飞行器在当前或指定的安全位置降落。 |
解除武装 | action = 9 | 电机立即停止。 |
飞行终止 | action = 10 | 所有控制器被禁用;PWM输出设置为故障安全值(例如,用于降落伞展开)。 |
这些机制的有效性完全依赖于微控制器执行流的完整性。然而,对PX4的源代码级分析显示,管理这些状态的逻辑是复杂的,并且包含未记录的行为,例如内部回退模式和特定的ActionOptions属性。因为这些例程依赖于机器代码层面的简单条件检查,所以它们对前面描述的电源故障高度敏感。攻击者针对故障安全检查的"决策窗口"可能迫使系统忽略关键的传感器故障,导致任务失败或坠毁。
III. 威胁模型
III-A 攻击场景:黑盒假设
该威胁模型的一个核心要素是其操作隐蔽性,它利用硬件的物理外壳作为安全盲点。商业飞行控制器通常被最终用户和系统集成商视为黑盒设备。不信任的供应链(涵盖制造商、分销商和零售商)的复杂、多阶段性质为攻击者提供了多个切入点。在运输过程中,攻击者可以拦截设备,拆开其外部外壳以安装硬件植入物,并在产品到达客户手中之前无缝地重新密封外壳。
由于恶意PCB在最终交付前安装在外壳内部,汲取寄生电源,并且物理隐藏在内腔中,因此视觉上无法检测。标准的操作程序、目视检查和常规飞行前诊断检查不需要打开工厂密封的外壳。因此,物理外壳充当了有效的屏障,使得隐蔽的硬件修改能够在无人机的整个生命周期内持久且完全隐藏。
III-B 攻击者能力与假设
我们假设攻击者能够设计和制造小型化、特定应用的印刷电路板(PCB)。这个独立的恶意板在功能上等同于专门的故障注入工具(如本地化的ChipWhisperer),但明确针对尺寸、自主性和在目标物理外壳内的原位部署进行了优化,而非受控的实验室环境。
此外,我们假设攻击者获取一个相同的参考飞行控制器进行离线分析。这使他们能够通过实验映射目标的执行流,并在最终确定植入物设计之前,确定成功故障注入所需的精确触发条件、毛刺偏移和毛刺宽度。
III-C 攻击向量
主要的攻击机制是一个物理植入飞行控制器外壳内的隐蔽次级PCB。为了绕过高度受限的内部空间限制,攻击者采用集成技术,例如角落隐藏(利用结构安装支柱旁边的小空间空隙)或组件替换(用小型化的柔性PCB有效载荷替换良性的无源组件)。
为了自主执行攻击,隐蔽的恶意PCB必须直接从目标板的主电压轨获取电源。然而,由于攻击依赖于瞬间短路这个共享的主电压轨以产生毛刺所需的电压降,植入物需要一个自我保护机制。恶意PCB上实现了一个专用的滤波和电容隔离级,作为本地化的能量储存器。这确保其自身的微控制器保持稳定,并且不受其故意针对目标产生的突然电压崩溃的影响。
IV. 方法
为了系统地评估电源故障如何通过无人机系统传播,我们采用了两阶段方法:软件模拟以分析机器代码层面函数的脆弱性,随后是基于硬件的故障注入以验证物理可利用性。图3展示了集成的工作流程。
ARMORY[14]是一个基于软件的故障注入框架,它提供了广泛的故障模型覆盖、测试用例的高可重复性以及对故障功能影响的详细洞察,而无需物理硬件仪器。分析的源代码可以直接作为在STM32架构上执行的编译二进制文件进行评估。
模拟之后,使用精确的电压毛刺在STM32微控制器上进行基于硬件的故障注入。实验使用一个完好的STM32目标板(以非破坏性方式配置,未移除去耦电容)和一个ChipWhisperer板[27, 29, 28]。这种专用的自主流程允许我们迭代多个毛刺参数集以进行全面的下游分析。
请参阅图3标题: 集成模拟工作流程。
IV-A 软件模拟
ARMORY是一个开源的自动化框架,用于对ARM-M二进制文件执行故障模拟。它模拟ARM处理器的行为,允许在机器代码层面注入各种故障模型,以分析它们对程序执行的影响。由于STM32微控制器(常用于PX4飞行控制器)基于ARM Cortex-M4架构,ARMORY是此分析的理想模拟环境。
利用了ARMORY框架提供的所有瞬态故障模型来全面映射漏洞。这些模型分为指令故障和寄存器故障,每个模型都旨在表示特定的硬件诱发错误:
指令故障: 此类别包括指令跳过、指令字节置位、指令字节清除和指令位翻转。这些模型模拟在执行过程中改变指令二进制编码的中断,导致控制流、计算逻辑或数据处理被强制改变。
寄存器故障: 这些模型模拟CPU寄存器值内的损坏,这可能严重影响程序逻辑和内存操作。探索了两个特定的时间类别:瞬态故障和直到覆盖故障。瞬态寄存器故障表示仅影响使用故障值的立即指令的临时损坏,之后寄存器恢复到其原始状态。直到覆盖故障会持续存在于寄存器中,直到被后续指令显式更新。注入的具体故障类型包括寄存器清除、寄存器填充、寄存器字节置位、寄存器字节清除和寄存器位翻转。
在ARMORY模拟中,同步是通过基于感兴趣代码区域定义符号执行窗口来实现的。ARMORY不依赖实时硬件信号,而是使用从目标二进制文件反汇编输出中提取的手动分配的起始和停止符号。对于本研究中的所有模拟,起始点始终定义为与被测场景相关的目标辅助函数的起始符号。
IV-B 硬件表征
ChipWhisperer是一种专为对嵌入式系统执行故障注入攻击而设计的开源设备。它配备了一个专用的毛刺模块和一个基于MOSFET的撬棒电路,该电路直接连接到目标设备的VDD线以诱发电压降。由于实验设计为非破坏性的(即保留目标板的工厂去耦电容),与默认的ChipWhisperer设置相比,需要"更长"的毛刺宽度才能成功拉低电压。为了实现这一点,我们将ChipWhisperer配置为"仅启用"模式,该模式在整个时钟周期内激活毛刺电路,而不是子周期分数。
ChipWhisperer的频率配置为32 MHz,利用外部偏移和重复计数参数来精确控制故障时序和持续时间。
飞行控制器板直接管理基本的物理操作,使其成为安全分析的高价值目标。在PX4生态系统中,STM32微控制器(特别是STM32H7和STM32F系列)是用于主处理器和故障安全协处理器的最普遍架构。为了准确模拟此环境同时保持实验控制,选择STM32F407-Discovery板作为主要硬件平台。它比完全组装的飞行控制器提供了更低层次的抽象,为可靠的同步提供了对微控制器引脚的直接访问。为了进一步隔离目标函数并确保分析期间基础程序可预测地运行,暂时移除了PX4 API层,简化了执行环境。
IV-C 实验设置
实验设置由两个核心组件组成:ChipWhisperer-Lite故障注入工具和STM32F407-Discovery目标板。物理架构如图5所示。
图4标题: 硬件故障注入实验的物理设置。
图5: 实验硬件设置
为了保证精确、可重复的故障注入,建立了用于同步和数据传输的关键连接。此实现遵循严格的两阶段同步工作流程,详见图6。
请参阅图6标题: 说明STM32F407-Discovery和ChipWhisperer-Lite之间协调故障注入过程的工作流程。
阶段1 – 执行启动: 为了启动每个测试迭代,将ChipWhisperer-Lite上的TIO1输出引脚连接到STM32F407上配置为通用输入的PD14引脚。这允许外部系统控制代码执行的开始。
阶段2 – 毛刺触发: 在程序执行期间,STM32F407在其PD12输出引脚上生成一个上升沿触发信号,该信号被路由到ChipWhisperer-Lite的输入引脚TIO4。该触发信号作为外部偏移计数器的参考点,确保故障注入脉冲的精确时间对齐。
UART数据传输: 为了传输注入尝试的结果,将STM32F407上的PA2发送引脚(USART2)连接到ChipWhisperer-Lite上的TIO2接收引脚。这使得目标的故障响应数据能够传输回主机计算机进行下游分析。
最后,将示波器探头直接连接到STM32F407微控制器上的一个备用VDD引脚,以监控实时电压行为,并直观地验证注入的故障脉冲相对于电容网络的幅度和持续时间。
V. 评估
为了系统地评估电压毛刺的影响,我们分析了飞行控制器故障安全模块内三种不同操作场景的结果:RC信号丢失、关键电池电量低和紧急电池电量低。该评估比较了通过软件模拟(ARMORY)识别的理论漏洞与从物理硬件注入(STM32和ChipWhisperer)收集的经验数据。
V-A 实验对齐
此评估的一个关键组成部分是将模拟的时间执行与物理硬件对齐。STM32微控制器以168 MHz运行,而ChipWhisperer平台配置为32 MHz。由于ARMORY准确地模拟了STM32环境,ChipWhisperer上的一个时钟周期偏移大约对应于ARMORY模拟内的5.25个执行周期。
此外,ARMORY模拟和硬件实验中定义的起始点并不完全对齐。必须考虑STM32和ChipWhisperer之间的传输延迟。对于隔离函数测试(RC信号丢失和关键电池场景中的switch-case逻辑)和集成测试(紧急电池场景),在STM32生成触发信号与实际到达目标switch-case函数之间会执行若干条指令。
目标的VDD线需要有限的时间才能物理衰减到故障显现的关键"风险范围"。最后,为了确保非破坏性测试,毛刺宽度被人为延长,通常导致电压不稳定持续超过辅助函数的执行时间。因此,本次评估的主要目标是分析软件漏洞与硬件可利用性之间的趋势相关性,而不是寻求精确的周期到周期复制。
承认这一物理约束也证明了我们从分析隔离的辅助函数进展到测试完全集成的故障安全模块(场景1)的合理性,以观察这些延长的、不可预测的硬件故障在现实环境中的传播方式。。
V-B 场景1:RC信号丢失
此场景模拟无人机与操作员之间通信完全丢失。PX4固件使用专用的故障安全辅助函数评估此状态,通常触发返航(RTL)协议。对于此评估,如果观察到的输出参数(ActionOptions: Action, Cause, AllowUserTakeover, ClearCondition)偏离无故障执行下的预期结果,则注入的故障被分类为"成功"。
V-B1 软件模拟发现(ARMORY)
如图7所示,成功的故障在执行过程中表现出强烈的时间聚集性。显著的峰值出现在时钟周期3–4、24–25和50–52之间。这些峰值主要由寄存器级损坏驱动,特别是瞬态寄存器位翻转和覆盖前寄存器位翻转故障模型。
图7: RC信号丢失场景中成功故障的时间分布
V-B2 硬件验证
硬件实验(图5.2)验证了这些关键时间窗口的存在。偏移量为4和5个周期的硬件实验在多个毛刺宽度下 consistently 表现出较高的故障成功率。应用时钟比率,这些物理偏移与在模拟周期21–26附近观察到的漏洞集群很好地吻合。此外,偏移量为2个周期(对应于ARMORY周期11)需要更长的毛刺宽度才能产生更高的成功率(蓝色条)。数据表明,更长的毛刺更可靠地损坏关键指令执行,增加了硬故障触发复位(橙色条)和可利用故障的可能性。偏移量0被排除在主数据集之外,因为早期测试显示它导致100%的复位率,经常导致STM32意外挂起。
(a) 1.66 µs
(b) 1.69 µs
(c) 1.72 µs
图8: RC信号丢失场景中的故障注入结果
V-B3 故障效果关联
通过将模拟数据(图9)与观察到的硬件行为(图10)关联,我们可以将特定的故障结果直接映射到其对应的执行周期。我们的分析集中在模拟周期11和周期21–25,因为这些与硬件实验中成功注入故障的时间窗口紧密对应。在模拟结果中,"无操作"和"正确操作但带有其他错误字段"都很突出,"无操作"的发生频率略高。然而,在硬件实验中,操作分析表明,成功的利用几乎完全是在较早的物理偏移处完全绕过("无操作")。在物理偏移为5个周期(对应于ARMORY中的周期25)并施加较长毛刺宽度时,硬件在"无操作"结果上达到峰值,同时伴有"正确操作但带有其他错误字段"(RTL带有元数据错误)、"错误操作"和"无效状态"的实例。这直接反映了模拟数据,因为ARMORY中的周期25也观察到了完全相同的多样化结果分布。
图9: RC信号丢失场景中按行为结果分类的故障效果时间分布
(a) 1.66 µs
(b) 1.69 µs
(c) 1.72 µs
图10: 不同毛刺持续时间下,RC信号丢失场景中故障诱发操作的分布。
V-C 场景2:电池电量低(临界)
当无人机的电池容量降至预定义的阈值水平以下时,电池电量故障安全被激活。在"临界"状态下,PX4通常建议配置系统使用RTL模式以安全返回无人机。与场景1类似,如果观察到的输出行为偏离预期(ActionOptions结果),则认为故障"成功"。
V-C1 软件模拟发现(ARMORY)
如图11所示,主要的漏洞峰值出现在周期4–6、26–27和66–69之间。在周期33–58之间观察到一个次要的、连续的故障密度,其中有几个较小的峰值,但集中度显著低于前三个窗口。
图11: 电池临界场景中成功故障的时间分布
V-C2 硬件验证
硬件实验(图12)成功验证了早期和晚期的执行漏洞。物理偏移为1个周期在多个毛刺宽度下 consistently 表现出较高的故障成功率,与在模拟周期4–6附近观察到的漏洞集群紧密吻合。有趣的是,偏移量为0个周期在特定的毛刺宽度1.63 µs下产生了显著的成功率。在执行后期,物理偏移为5个周期(对应于ARMORY周期26–27)在施加较长毛刺宽度时产生了高成功率。与RC信号丢失场景一致,增加毛刺宽度提高了可利用故障和硬故障触发复位的可能性。
(a) 1.59 µs
(b) 1.63 µs
(c) 1.66 µs
(d) 1.69 µs
(e) 1.72 µs
图12: 电池临界场景中,聚合故障结果(成功、复位)与外部偏移的分布。
V-C3 故障效果关联
将模拟的故障效果(图13)映射到观察到的物理硬件效果(图14)揭示了细微的执行行为。在模拟中,在周期4–6注入的故障导致"无操作"的频率略高于其他两类,且无效状态的实例为零。在硬件实验中(偏移1),"无操作"仍然是最突出的结果,但也观察到了几个"无效状态"。这种差异证实了我们方法论的约束:由于毛刺引起的电压不稳定是持久的,实际的指令故障可能不可预测地在执行流水线的后期触发,导致这些物理无效状态。对于模拟周期26–27,数据显示"无操作"是主要结果,其次是"正确操作但带有其他错误字段"。然而,在物理实验中(偏移5),更容易诱发这种次要状态,在硬件发现中记录为"RTL(元数据错误)"。
图13: 电池临界场景中按行为结果分类的故障效果时间分布
(a) 1.59 µs (偏移 0-3)
(b) 1.63 µs (偏移 0-3)
(c) 1.66 µs (偏移 0-7)
(d) 1.69 µs (偏移 0-7)
(e) 1.72 µs (偏移 0-7)
图14: 电池临界场景中,特定观察到的故障安全操作模式和结果与外部偏移的分布。
V-D 场景3:电池电量低(紧急)
此场景评估与更广泛的故障安全模块代码协同工作的电池电量故障安全功能。在"紧急"状态下,PX4建议配置系统使用降落模式,命令无人机立即降落。如果观察到的行为偏离预期的立即降落协议,则认为故障"成功"。
V-D1 软件模拟发现(ARMORY)
与之前孤立的测试不同,此模拟(图15)从switch-case函数标签开始,包含了更广泛的执行上下文。在注入的26,976个故障中,1,363个导致了可利用的结果。最突出的故障活动发生在跟踪的早期(周期0到73),直接对应于电池辅助函数的执行。此后,跟踪进入一个处理循环,反映在大约130到370个时钟周期之间的故障活动循环模式中。
图15: 电池紧急场景中成功故障的时间分布
当仅提取辅助函数进行聚焦分析时(图16),可利用的结果 heavily 集中在初始时钟周期(3到7)和窗口的后期部分(45到64),主要由针对寄存器和指令的位翻转故障驱动。
图16: 电池紧急场景中,辅助函数执行窗口内成功故障的时间分布
V-D2 硬件验证
由于此场景在目标函数之前包含了额外的故障安全逻辑,因此需要调整时间对齐。直到偏移量为15个时钟周期才记录到成功的物理利用。如图17所示,当测试窗口缩小到物理偏移13到21个周期时,在一个4个周期的窗口内(以ChipWhisperer时序)出现了密集的物理故障集群。应用时钟比率,这对应于STM32框架内大约21个时钟周期,逻辑上与ARMORY模拟中识别的高度脆弱的45到64时钟周期窗口对齐。
(a) 1.69 µs
(b) 1.72 µs
(c) 1.75 µs
(d) 1.78 µs
图17: 电池紧急场景中,聚合故障结果(成功、复位)与外部偏移的分布。
V-D3 故障效果关联
评估利用的严重性(图18),最常观察到的物理响应是"无/禁用"和"警告"。这表明,在辅助逻辑内的几乎任何脆弱点诱发故障都能成功降低系统触发紧急降落的能力。此外,如硬件实验结果(图19)详述,最突出的故障诱发结果是"无"。在紧急电池电量期间迫使飞行控制器进入完全无行动状态,被证明是此场景中最可靠且最具破坏性的利用。
图18: 电池紧急场景中按行为结果分类的故障效果时间分布
(a) 1.69 µs
(b) 1.72 µs
(c) 1.75 µs
(d) 1.78 µs
图19: 电池紧急场景中,特定观察到的结果与外部偏移的分布。
V-E 电压毛刺对PX4系统行为的影响
表II:电压毛刺影响的模拟结果
场景 | 毛刺后行为 | 预期行为 |
|---|---|---|
RC信号丢失 | 保持 | 返航 |
电池临界 | 保持 | 返航 |
电池紧急 | 降落 | 降落 |
我们使用Gazebo Classic模拟器在软件在环仿真中评估了成功电压毛刺对PX4系统的影响。为了模拟成功电压毛刺的效果,我们手动将选定的故障安全操作强制设置为"无",从而丢弃故障安全逻辑选择的行为。在RC信号丢失和电池临界场景下,伪毛刺成功扰乱了预期的RTL行为。然而,在电池紧急场景下,毛刺并未阻止系统降落,这表明在PX4系统中,降落控制逻辑的优先级高于RTL。
结论
本文提出了一种新颖的、高度本地化的针对无人机(UAV)的物理威胁模型:一种自主、离散的电压毛刺植入物,旨在绕过关键的飞行控制器故障安全机制。为了验证此威胁的可行性,我们采用了严格的两阶段方法,将通过ARMORY软件模拟识别的机器码级别漏洞与使用ChipWhisperer设备攻击基于STM32的飞行控制器板收集的经验性故障注入数据进行关联。
我们在三个关键的PX4故障安全场景中的评估证明了此攻击向量的严重实用性。研究结果揭示了时间敏感型漏洞,在这些漏洞中,精确注入的故障可靠地损坏了故障安全辅助逻辑内的关键指令执行。最令人担忧的是,物理实验揭示了硬件完全绕过预期安全协议的强烈倾向。此外,这些物理实验暴露了系统对引发硬故障异常的扩展瞬态故障的脆弱性;这些复杂的物理行为仅通过ARMORY是无法观察到的,这强调了基于硬件的经验性分析的绝对必要性。
最终,能够使无人机的最后一道防线失效,突显了当前飞行控制器架构中的一个关键盲点,表明未来的缓解策略必须采用硬件-软件协同设计来保护底层处理器。