为什么需要Morello 平台?
Arm认为,随着攻击方法的不断发展,要为数十万亿个互联设备的世界实现真正强大的安全性,就必须彻底改变技术公司应对网络威胁的方式。
反过来,这就需要对构建固有的更具网络弹性的芯片平台的新方法进行研究。这正是英国政府发起的一项名为“设计中的数字安全”的计划。
该项目将Arm与包括谷歌和微软在内的其他全球技术领先者聚集在一起,以合作确保从物联网(IoT)产品到智能手机和自动驾驶汽车的企业和公众的下一代设备的安全。
2019年初,Arm与剑桥大学开展了合作。它将大学CHERI项目中的概念带入了新的Arm原型架构。2019年1月,该项目获得了英国政府7,000万英镑新资金的大力推动。7月,该项目在设计合作伙伴Digital Security的推动下进一步发展,使投资总额超过1.17亿英镑。
标志着“设计数字安全”计划的关键一步,Arm将开发原型硬件Morello。该设备将使行业合作伙伴能够评估现实场景中一系列原型架构功能的安全性收益。
创建Morello原型板将使Arm承担超过5000万英镑的工程和研究价值。最终目标是设计一个新的基于Arm的平台,这将使不良行为者更加难以完全控制计算系统,即使他们设法破解了该系统。
重新定义下一代安全性
Microsoft的Matt Miller最近进行的研究表明,每年通过安全更新解决的漏洞70%仍然是内存安全问题。CHERI和Arm原型体系结构中使用的硬件功能技术结合了以下内容:
- 对内存位置(即指针)的引用,以及如何使用这些引用的限制;
- 可以用来访问的地址范围;
- 以及他们可以使用哪些功能。
这种组合信息被称为“功能”,因此无法通过软件伪造。通过用程序中的功能替换指针,可以显着提高内存安全性,这是增强安全性的关键步骤。
除了内存安全性之外,还可以使用构件块的功能来进行更细粒度的划分,从而创建出本质上更强大的抵御攻击软件。用简单的语言,分隔可以将关键代码的不同部分隔离在各个“隔离”区域中,而不能访问任何其他区域。这样的想法是,即使攻击者获得了一段代码或数据,他们也将无法访问任何其他代码或数据,从而有效地“困在”了一个小区域。
然而在当今的计算硬件中,当前的架构方法不允许以高效的方式构造细粒度的隔离专区。因此,除了硬件更改之外,提出的新安全方法还需要以全新的方式编写和编译软件代码。
对于程序员来说,要支持这种转变,诸如Morello板之类的商业级硬件平台至关重要,因此他们可以为当今高度复杂的软件工作负载进行实验和原型设计。
这就是为什么Microsoft和Google对“数字安全性设计”项目做出承诺的原因,因为他们的世界一流的编程团队可以创建能够充分利用正在开发的新体系结构功能的新软件。
什么是Morello平台?
“设计数字安全”正式宣布一年之后,2020年10月底,Arm发布了第一个Morello平台版本。
CHERI基础的原型体系结构规范
包含新的C64 ISA和寄存器模型定义。
Morello平台模型
在推出Morello电路板(目标是2022年第一季度)之前,我们已经创建了一个固定的虚拟平台(FVP),称为Morello平台模型。平台模型使用Arm技术创建系统硬件的虚拟模型,可在开发环境中使用。该模拟器包括工具链,软件和文档,将使Morello研究人员和基于DSbD技术的提供商可以在原型评估板实现之前开始编写代码并运行软件。可从Arm的Ecosystem平台模型开发人员页面下载Morello平台模型。
Morello开源软件和工具
使软件堆栈,工具链和开发工具的开发人员能够使用该技术进行实验和原型是必不可少的,我们一直在生态系统合作伙伴中密切合作:
- Arm正在与Linaro和剑桥大学合作,向社区提供对支持Morello平台模型的开源软件堆栈和工具链的访问。
- Arm对剑桥大学实验性CHERI LLVM工具链的改编包括C / C ++编译器,链接器,调试器,各种实用程序和运行时库。
- 除平台模型和LLVM编译器外,Arm还提供了其他免费工具来帮助Morello进行原型设计,包括Arm Development Studio的Morello版本。
- 剑桥大学发布了Morello改编自其开源内存安全的CHERI扩展的FreeBSD操作系统CheriBSD,CheriBSD是CHERI的紧密OS集成的参考设计。
Morello 源代码
Morello 开发者文档
Morello社区
什么是 CHERI?
CHERI 是Capability Hardware Enhanced RISC Instructions的简称。
CHERI(功能硬件增强的RISC指令)利用新的体系结构功能扩展了常规的硬件指令集体系结构(ISA),从而实现了细粒度的内存保护和高度可扩展的软件分区。CHERI内存保护功能允许将历史上内存不安全的编程语言(例如C和C ++)进行修改,以针对许多当前被广泛利用的漏洞提供强大,兼容和有效的保护。CHERI可扩展的分隔功能可对操作系统(OS)和应用程序代码进行细粒度分解,从而以当前体系结构不支持的方式限制安全漏洞的影响。CHERI是一种混合功能架构,因为它能够融合架构能力与常规的基于MMU的架构和微架构,并且基于虚拟内存和C / C ++传统的软件栈。这种方法允许在现有生态系统中进行增量部署,我们已经通过硬件和软件原型验证了这一点。CHERI与完整的硬件-软件堆栈的设计进行交互。
剑桥大学开发了:
- ISA进行了更改,以引入体系结构功能,硬件支持的权限描述,可以用它们代替整数虚拟地址来以受保护的方式引用数据,代码和对象;
- 新的微体系结构表明功能可以在硬件中有效实现,包括标记内存以保护内存中的功能;
- 这些ISA扩展的正式模型可实现机械化的语句及其安全属性的证明,自动测试生成以及可执行ISA级别模拟器的自动构造。
这些功能使新的软件结构可以在现有软件生态系统内增量部署。通过广泛的原型设计和共同设计,剑桥大学证明并评估了:
- 使用功能提供细粒度内存保护和可扩展软件分区的新软件构造模型;
- 语言和编译器扩展,以使用功能来实现内存安全的C和C ++,更高级别的托管语言和外部功能接口(FFI);
- 操作系统扩展,以使用细粒度的内存保护,并支持使用CHERI的应用程序,包括通过空间,引用和时间内存安全性;
- 操作系统扩展,提供了新的基于CHERI的抽象,包括内核内和进程内分区,以及新的高效进程间通信(IPC);
- 应用程序级别的适配,可在CHERI内存保护下正常运行;和
- 应用程序级别的调整以引入新的和更经济的软件分区。
CHERI是一个硬件/软件/语义协同设计项目,它结合了硬件实现,主流软件堆栈的改编以及形式语义和证明。CHERI思想最初是作为对64位MIPS的修改而开发的,现在也已针对32/64位RISC-V和64位ARMv8-A提出。通过改编广泛使用的开源软件(例如Clang / LLVM,FreeBSD,FreeRTOS)和应用程序(例如WebKit,OpenSSH和PostgreSQL),剑桥大学为CHERI设计了完整的软件堆栈。已经对架构进行了正式建模,并构建了有关其安全性的大量证明,并在其原型中将这些模型用于微架构验证。这些模型还具有支持进一步活动的潜力,例如有关软件和微体系结构的正式证明。
2020年10月,剑桥大学发布了CHERI ISAv8新版本。该ISA版本与Arm的Morello体系结构同步,并提供了其CHERI-RISC-V ISA的成熟版本。