Skip to main content
QUICK REVIEW

[论文解读] Good Motive but Bad Design: Why ARM MPU Has Become an Outcast in Embedded Systems

Wei Zhou, Le Guan|arXiv (Cornell University)|Aug 9, 2019
Security and Verification in Computing参考文献 4被引用 7
一句话总结

本文研究了为何ARM的内存保护单元(MPU)尽管具备安全潜力,却在实际嵌入式系统中极少被使用。研究发现ARMv7-M MPU存在根本性设计缺陷,如区域数量有限、对齐方式不灵活,以及特权级切换带来的性能开销,这些缺陷削弱了其安全优势,同时增加了复杂性。研究证明,由于这些架构缺陷,启用MPU的FreeRTOS所提供的安全增益微乎其微,并提出了实用改进方案,如子区域屏蔽和软件加固技术,以提升其可用性和有效性。

ABSTRACT

As more and more embedded devices are connected to the Internet, leading to the emergence of Internet-of-Things (IoT), previously less tested (and insecure) devices are exposed to miscreants. To prevent them from being compromised, the memory protection unit (MPU), which is readily available on many devices, has the potential to become a free lunch for the defenders. To our surprise, the MPU is seldom used by real-world products. The reasons are multi-fold. While there are non-technical reasons such as compatibility issues, more importantly, we found that MPU brings virtually no security enhancement at the expense of decreased performance and responsiveness. In this work, we investigate the MPU adoption in major real-time operating systems (RTOSs), in particular, the FreeRTOS, and try to pinpoint the fundamental reasons to explain why MPU is not favored. We hope our findings can inspire new remedial solutions to change the situation. We also review the latest MPU design and provide technical suggestions to build more secure embedded systems.

研究动机与目标

  • 调查为何ARM MPU这一低成本硬件安全特性,尽管已面世二十多年,却在实际嵌入式系统中极少被采用。
  • 分析ARMv7-M MPU的根本设计限制,这些限制阻碍了实时操作系统(RTOS)中的有效安全加固。
  • 评估在FreeRTOS——一种广泛部署于物联网设备的RTOS中——使用MPU的实际安全收益与性能开销。
  • 提出实用且向后兼容的改进方案,以提升传统嵌入式系统中MPU的可用性与有效性。
  • 为未来硬件与软件设计提供指导,推动在资源受限环境中实现更安全、轻量且高效的内存保护机制。

提出的方法

  • 对主流RTOS(包括FreeRTOS、Mbed、Nucleus等)中的MPU支持进行了全面分析,以评估其在实际中的采用情况。
  • 评估ARMv7-M MPU的编程模型,重点关注区域配置、对齐约束、子区域禁用功能以及特权级切换机制。
  • 通过任务切换和中断处理测量MPU引入的性能开销,识别出特权级提升是主要性能瓶颈。
  • 提出并评估了子区域禁用字段(SRD)的使用,以优化内存区域复用并减少内存碎片。
  • 审查基于软件的缓解策略,如静态分析(例如MINION),用于聚类内存段以最小化MPU区域数量。
  • 探索硬件改造方案,如TrustLite和ARMv8-M增强功能,以前瞻性方式解决现有架构限制。

实验结果

研究问题

  • RQ1为何ARM MPU尽管可用且成本低廉,却在生产级嵌入式系统和RTOS中被普遍忽视?
  • RQ2ARMv7-M MPU在实际RTOS环境(如FreeRTOS)中实际提升了多少安全性?
  • RQ3ARMv7-M MPU中存在哪些关键的架构与实现缺陷,导致其有效性与采用率低下?
  • RQ4如何通过软件技术改进现有MPU设计,以减少区域数量并消除性能开销?
  • RQ5长期来看,哪些软硬件解决方案能够有效解决当前MPU设计的根本性僵化与不安全性?

主要发现

  • 由于区域配置受限且性能开销过高,ARMv7-M MCU中的MPU在实践中提供的安全增益微乎其微。
  • 尽管FreeRTOS提供了启用MPU的端口,但其几乎全部部署在非MPU版本中,且AWS仅将物联网库集成到非MPU版本中。
  • 在MPU启用系统中,每次任务切换和硬件中断均需特权级提升,导致显著的性能下降和响应能力损失。
  • 对2的幂次对齐的内存区域要求导致内存使用效率低下,尤其在分配任意大小区域时更为明显。
  • 通过创造性使用子区域禁用字段(SRD),当多个任务共享同一8KB区域但访问范围不重叠时,可将内存浪费减少高达50%。
  • ARMv8-M虽提升了区域数量与灵活性,但仍未解决特权级切换开销和细粒度访问控制缺失等核心问题。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。