想象一下,你有一个微型、超高效的机器人(微控制器),它正在执行一项关键任务,比如管理大坝或汽车的刹车。这些机器人无处不在,但由于它们通常被设计得既便宜又省电,因此很容易成为想要误导它们做出危险行为的黑客的目标。
这篇论文介绍了一种名为 RunPBA 的新型安全系统,旨在保护这些微型机器人。以下是它的工作原理,通过简单的类比来解释。
问题所在:“冒充者”攻击
把微控制器的软件想象成一本食谱。机器人按照顺序遵循步骤:“混合面粉”、“加入鸡蛋”、“烘焙”。
黑客想要修改食谱。他们不想重写整本书,只想偷偷塞进一条笔记,上面写着:“跳过烘焙,直接把生面团倒入引擎。”这就是所谓的控制流攻击(Control-Flow Attack)。机器人认为自己正在遵循规则,但实际上它已经被劫持了。
传统的安全检查试图阻止这种行为,但它们就像一位严厉的图书管理员,每看一页书都要停下来检查一遍。这会减慢机器人的速度并消耗其电池,对于需要快速且高效的设备来说,这非常糟糕。
解决方案:“魔法墨水”与“守护之门”
作者创建了 RunPBA,它利用了内置在现代处理器中的一项新特性,称为 PACBTI。你可以将其理解为赋予处理器的两种超能力:
PAC(指针认证)= 魔法墨水:
想象一下,每当机器人被要求跳转到食谱中的新步骤(例如从“混合”跳转到“烘焙”)时,它必须用一种独特的、隐形的魔法墨水为这次跳转签名。如果黑客试图强迫机器人跳转到一个他们自创的步骤(例如“爆炸”),那么这个步骤就不会带有魔法墨水。处理器看到缺失的墨水后,会立即停止机器人,并说:“这次跳转是伪造的!”
BTI(分支目标识别)= 守护之门:
想象一下,每个有效的步骤在入口处都有一个特殊的守护之门。机器人只有通过门才能进入新步骤。如果黑客试图跳转到代码中没有门的一个随机位置,处理器就会砰地一声关上门。
技术创新:无需新硬件
通常,要获得这种高水平的安全防护,你需要制造一个定制的、昂贵的安全芯片(就像给房子加装一个特殊的保险库)。
RunPlyBA 的重大突破在于,它利用了已经内置在这一代微型处理器(特别是 Arm Cortex-M85 和 M52)中的“魔法墨水”和“守护之门”。它不需要构建新硬件;它只是开启了那些已经存在但尚未被使用的功能。
RunPBA 在现实生活中如何运作
该系统就像一个永不眠的保安:
- 持续监控: 它监视机器人进行的每一次跳转。
- “NSPE 被破坏”状态: 如果机器人尝试进行一次伪造的跳转(没有魔法墨水或没有门),系统会立即捕捉到它。系统不会让机器人崩溃或继续运行,而是将其锁定在一个安全的房间里(一个被称为“安全处理环境”的安全环境)。
- 成绩单: 当有人询问“这个机器人安全吗?”时,系统会生成一个证明令牌(attestation token)。这份报告会显示:“是的,我们很安全,”或者“不,我们之前捕捉到了一个伪造的跳转。”这解决了一个常见问题,即黑客可以在两次检查之间掩盖行踪。
结果:快速且高效
作者测试了 RunPBA,以观察它是否会减慢机器人的速度或耗尽其电池。
- 速度: 它非常快。在标准测试中,机器人的速度仅下降了约 1% 到 4.7%。这就像一名运动员背着一个沉重的背包,但跑步速度几乎没有变化。
- 电池: 能量消耗仅略微增加,与速度下降程度相匹配。
- 体积: 软件并没有变得大多少。
核心总结
RunPBA 是一种巧妙的方法,通过使用处理器中自带的“魔法墨水”和“守护之门”,来保护微型、低功耗设备。它能在不减慢速度或耗尽电池的情况下,阻止黑客欺骗设备做出坏事。这是一种“即插即用”的安全升级,让这些日常机器人变得更难被黑客攻击。
技术摘要:RunPBA —— 基于 PACBTI 的微控制器运行时远程度量
问题陈述
嵌入式系统越来越多地被部署在关键基础设施中,但其安全性往往受到计算资源受限和严格能量预算等固有约束的影响。虽然度量机制对于建立设备信任至关重要,但传统的解决方案面临着显著挑战。基于软件的运行时度量会引入难以承受的性能开销和能耗,使其无法适用于实时操作。相反,基于硬件的解决方案通常依赖于定制的知识产权(IP)内核或专门的硬件修改,这增加了制造复杂性和成本,阻碍了广泛采用。此外,许多现有的度量方案存在“检查时使用”(TOCTOU)问题,即攻击者可以在设备状态被测量与该状态被验证之间的时间窗口内破坏设备。
方法论
作者提出了 RunPBA(Runtime PACBTI Attestation),这是一种专为 ARM Cortex-M 微控制器设计的硬件化运行时远程度量系统。RunPBA 利用了 指针认证与分支目标识别(PACBTI) 扩展,这是较新处理器(如 Cortex-M85 和 Cortex-M52)中自带的原生特性,而非需要定制硬件。
该系统架构构建在 Trusted Firmware-M (TF-M) 之上,利用 ARM TrustZone 技术创建一个可信执行环境(TEE)。其核心设计原则包括:
- 控制流完整性(CFI)强制执行: RunPBA 使用 PACBTI 来验证执行流的完整性。指针认证(PA)保护返回地址(后向边),而分支目标识别(BTI)则确保间接跳转落在有效的指令上(前向边)。
- 故障处理与可追溯性: 当非安全处理环境(NSPE)中发生 PACBTI 违规时,系统会将故障升级为安全处理环境(SPE)中的硬故障(Hard Fault)。作为应用根信任(RoT)的 RunPBA 应用会拦截此故障,将关键调试信息(如程序计数器和故障类型)记录到内部可信存储(ITS)中,并停止 NSPE 的执行,以防止进一步的利用。
- 度量集成: RunPBA 扩展了标准的 TF-M 度量服务。它修改了度量令牌,以包含一个反映当前 PACBTI 特性状态及任何检测到的运行时故障的“安全生命周期声明”。这使得远程验证器能够确定设备自上次度量以来是否已被破坏。
- 生命周期管理: 系统引入了一种新的设备生命周期状态——“NSPE 已受损”,该状态在触发 PACBTI 故障时被激活,在故障得到分析和解决之前,防止设备返回到安全状态。
核心贡献
- 攻击分析: 本文对针对 PACBTI 的潜在攻击进行了分类,包括暴力破解、恶意 PAC 生成、重用攻击以及侧信道攻击。同时分析了 BTI 对面向函数编程(FOP)攻击的脆弱性,指出虽然 FOP 在理论上是可能的,但它需要特定的 gadget 链和特权访问,而在实践中难以实现。
- 系统设计: 设计了 RunPBA,它将 PACBTI 监控与 TF-M 集成,以实现无需定制硬件即可强制执行 CFI。
- 实现: 将 RunPBA 实现为 TF-M 中的应用根信任(Application RoT),包括对 TF-M 核心的修改,以处理 PACBTI 特有的异常并生成扩展的度量令牌。
- 评估: 在 Cortex-M85 架构上使用 CoreMark-Pro 和 BEEBS 基准测试套件,对系统的性能和安全性进行了全面评估。
结果
评估表明,RunPBA 在保持强健安全性的同时,实现了低开销的目标:
- 性能开销: 该系统在 CoreMark-Pro 基准测试中产生的几何平均性能开销为 1.1%,在 BEEBS 基准测试中为 4.7%。开销主要由指针认证(PAC)所需的额外指令驱动,而 BTI 由于由硬件处理,因此产生的冲击极小。
- 能耗: 功耗增加了约 1%(CoreMark-Pro)和 4.7%(BEEBS),这与执行时间开销相对应。结果表明,尽管 PACBTI 具有密码学特性,但其硬件实现并未引入显著的额外能量需求。
- 代码规模: 固件大小的增加极小,范围在 0.05% 至 0.06% 之间,因为主要的成本在于向函数序言(prologue)和结语(epilogue)中添加 PAC 和 BTI 指令。
- 安全效能: 功能测试确认,当发生 PAC 或 BTI 违规(例如试图劫持控制流的缓冲区溢出攻击)时,RunPBA 能够成功检测并停止执行,从而防止秘密提取并强制设备重置。
意义与主张
本文声称,RunPBA 通过弥合基于软件的度量与基于定制硬件的度量之间的差距,代表了保障嵌入式系统安全的重要进步。通过利用现有的处理器扩展(PACBTI)而非要求新的 IP 核,RunPBA 提供了一种通用硬件解决方案,具有高性价比且易于采用。
作者强调,RunPBA 通过持续监控控制流并提供即时的破坏证据(通过度量令牌),有效地缓解了 TOCTOU 问题。虽然该系统继承了 PACBTI 的某些局限性(例如在特定条件下易受 FOP 攻击),但作者认为,结合其他安全措施(如 ASLR 和 NX)以及构建必要利用链的难度,使得该方案在实际部署中非常稳健。这项工作将 PACBTI 定位为一种可行的机制,旨在为低端微控制器带来低开销的控制流完整性保护,而这一领域此前在先进安全机制方面一直处于服务不足的状态。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。