当前位置:首页 > 学习资源 > 讲师博文 > 基于CHERI架构的嵌入式系统内存安全机制防护研究

基于CHERI架构的嵌入式系统内存安全机制防护研究 时间:2025-04-03      来源:华清远见

一、引言

1.1、研究背景及意义

在万物互联时代,嵌入式系统广泛存在于智能家居、工业控制、医疗设备等关键领域。然而,随着系统复杂性的提升,内存安全问题(如缓冲区溢出、悬垂指针、越界访问)已成为嵌入式设备面临的主要威胁之一。

内存安全问题不仅影响系统的正常运行,还可能导致数据泄露、系统崩溃等严重后果。例如,2014年的Heartbleed漏洞就是因为内存管理不当导致的,影响了全球数百万台服务器的安全。此外,嵌入式系统通常资源有限,处理能力和内存空间相对不足,这使得传统的内存保护机制在嵌入式环境中难以有效实施。因此,探索适合嵌入式系统的内存安全解决方案显得尤为迫切。

传统的软件防护方案(如ASLR、DEP)和编译时检查存在性能开销高、覆盖率不足等问题。CHERI(Capability Hardware Enhanced RISC Instructions)架构通过硬件级能力(Capability)模型,为嵌入式系统提供了一种全新的内存安全防护思路。

1.2、CHERI架构简介

CHERI(Capability Hardware Enhanced RISC Instructions)架构是一种新兴的安全架构,由英国剑桥大学和美国SRI International合作研发。CHERI架构通过引入能力指针(Capability Pointer)的概念,从硬件层面提供 fine-grained 的内存保护能力。能力指针不仅包含传统的地址信息,还包含了访问权限和内存边界信息,从而有效防止缓冲区溢出、内存泄漏等常见内存安全漏洞。这种架构的设计目标是显著提升计算机系统的安全性和可靠性,尤其适用于对安全性要求极高的嵌入式系统领域。

CHERI架构的核心思想在于通过硬件支持的能力指针,确保每个内存访问操作都在预定义的权限和范围内进行。这种机制从根本上杜绝了非法内存访问的可能性,从而大大提高了系统的安全性。与传统的内存保护机制相比,CHERI架构不仅在安全性上有显著提升,还在性能和灵活性方面表现出色,使其成为嵌入式系统内存安全研究的理想选择。

二、CHERI架构的核心思想

CHERI由剑桥大学和ARM等机构联合研发,其核心理念是通过硬件扩展实现细粒度内存保护,具体包括以下特性:

l 能力(Capability)模型

每个指针不仅是内存地址,还包含访问权限(如可读、可写、可执行)、边界范围(起始地址和长度)等元数据。

例如,一个指向数组的指针只能访问该数组的合法区间,越界操作会被硬件直接拦截。

l 硬件强制隔离

能力元数据由硬件直接验证,软件无法绕过。即使存在漏洞,攻击者也无法通过内存破坏篡改能力信息。

l 向后兼容性

CHERI支持混合模式运行,传统代码(无能力模型)与增强代码可共存,降低迁移成本。

1. CHERI架构的核心:能力指针

1.1 能力指针的硬件实现

(注:示意图示例,实际可参考CHERI官方文档)

其实能力这个概念在计算领域并不算新鲜事物,以往已经有不少大型机系统就采取过类似的机制。

Grisenthwaite解释道,“这些独立的128位单元被保存在一起,同时进一步为寄存器文件和内存系统添加元数据标签,用以将能力与数据区分开来。”这里的元数据标签非常重要,能够“帮助我们保证能力具备不可伪造的特性。”

这意味着元数据标签只能由内核或其他高权限进程所设置,攻击者只要尝试把能力当成数据来操作并更改其属性,都会导致该能力失去状态。而失去状态,也就意味着能力失效。

Grisenthwaite解释称,“最主要的变化,就是我们建立起一套完整的加载和存储体系,它们会从能力寄存器中获取自身基础地址并检查所生成的地址。这些地址通常可能会在能力范围内添加一个整数偏移量。”

对能力权限的检查会与常规内存管理检查一同进行,任何与能力检查相冲突的行为都将导致内存中止,其中止方式与转译后备缓冲器(TLB)中的内存管理故障相同。

根据Grisenthwaite的描述,Morello架构同样支持普通的加载和存储指令,这些指令会从传统的通用寄存器中获取地址。但Arm还添加了所谓默认数据能力的机制,能够为此类访问添加边界和权限,相当于为不具备能力感知的遗留代码创建起相应的沙箱。

与此同时,对能力的操作自然也需要新的数据处理指令。这些新的数据处理指令包含某些规则,允许用户在能力边界定义的范围之内执行地址调整。

Grisenthwaite还提到,“重要的是,一般来说无法在能力内添加边界。这些指令允许大家减少能力的边界或权限,通过原始对象创建子对象。但用户无法在能力不提供相应权限的前提下,扩大权限边界。”

该项目的目标之一就是调整程序计数器,将其转化为程序计数器能力,从而建立一组与之相关的边界。直接分支可以在边界之内实现分支,而间接分支则可以改变能力边界,从而在不同代码块之间实现调用。

能力指针与传统指针的对比:

注:关键差异:能力指针在硬件层面存储了内存范围(Base+Length)、权限(R/W/X)和标签(Tag),任何越界访问直接由硬件拦截。

2. 内存安全挑战的硬件级解决方案

2.1 缓冲区溢出防护

传统系统:攻击者通过溢出覆盖返回地址

CHERI系统:能力指针的边界限制使溢出访问触发硬件异常

2.2 使用释放后内存(Use-After-Free)

注:防护机制,内存释放时硬件自动清除能力指针的标签(Tag),使后续访问失效。

3. 嵌入式系统的CHERI适配实践

3.1 安全编译器的代码转换

编译器(如Clang-CHERI)将源码中的指针自动升级为能力指针:

3.2 实时性保障:硬件加速检查

4. 应用案例:工业控制系统的CHERI改造

4.1 系统架构图

安全隔离:不同功能模块(通信/控制/日志)使用独立能力域

攻击拦截:恶意代码尝试跨模块访问时触发硬件隔离

4.2 关键代码片段

5. 未来研究方向(技术路线图)

关键技术节点:2025年实现物联网级CHERI-Micro控制器.

结语

CHERI架构为嵌入式系统提供了一种“治本”的内存安全方案,其硬件强制的防护机制显著提升了设备的安全性。尽管在硬件生态和工具链上仍需完善,但随着RISC-V的普及和物联网安全需求的升级,CHERI有望成为嵌入式开发的下一代黄金标准。

通过硬件能力指针的革新设计,CHERI架构为嵌入式系统构建了“钢铁般”的内存安全防线。在智能汽车、工业物联网等关键领域,CHERI正在开启硬件安全的新纪元。读者可访问CHERI Playground在线实验能力指针的魔力。

上一篇:联邦学习在边缘设备中的隐私保护与通信效率平衡策略

下一篇:模型量化技术对比:INT8与二进制网络(BNN) 的精度与效率权衡

戳我查看嵌入式每月就业风云榜

点我了解华清远见高校学霸学习秘籍

猜你关心企业是如何评价华清学员的

干货分享
相关新闻
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2024 北京华清远见科技发展有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部