G.O.S.S.I.P 阅读推荐 2023-02-08 CHERI

渗透技巧 1年前 (2023) admin
395 0 0
今天的文字编辑工作是在CHERRY经典款上完成的,和主题很契合)

G.O.S.S.I.P 阅读推荐 2023-02-08 CHERI

我们的阅读推荐栏目今天要介绍的是一系列研究工作。这一系列工作始于剑桥大学研究人员在2015 ASPLOS上发表的论文 Beyond the PDP-11: Architectural support
for a memory-safe C abstract machine
 和在同年IEEE S&P上发表的论文 CHERI: A Hybrid Capability-System Architecture for Scalable Software Compartmentalization,,并在随后的时间里面得到了微软和ARM的支持;在2019年发表的研究报告 An Introduction to CHERI 中,进一步提出了 Capability Hardware Enhanced RISC Instructions 这一安全设计并形成了一整套基于CHERI的安全体系。2023年2月6日,微软网站上公布了最新的技术报告 CHERIoT: Rethinking security for low-cost embedded systems 发布(虽然现在没人关心这个,大家只知道ChatGPT)。下面我们就带大家去了解一下CHERI安全体系。

简单总结一下,CHERI是为了解决代码内存安全问题,从硬件设计层面出发的一种解决思路。和Rust这种动辄号称要改写整个上层软件的解决方法不同,CHERI首先只是扩展了已有的 Instruction-Set Architecture 也就是我们常说的ISA,从硬件层面上支持更灵活的软件隔离(compartmentalization)和内存保护。有了CHERI 支持,C/C++代码无需做太多改动就可以实现更好的内存安全。

想要了解CHERI,最好的入门资料当然是2019年公布的技术报告 An Introduction to CHERI

https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-941.pdf

G.O.S.S.I.P 阅读推荐 2023-02-08 CHERI

为了实现内存安全,CHERI对内存地址的表示进行了扩展,使用了更多的metadata来记录相关的信息,这样在运行期就可以实现较为严格的安全检查。

G.O.S.S.I.P 阅读推荐 2023-02-08 CHERI

由于传统的硬件体系结构,特别是在microarchitecture层面上并没针对内存地址的metadata(或者说tag)的考虑,因此CHERI体系首先需要对当前的CPU和内存模型进行更改:

G.O.S.S.I.P 阅读推荐 2023-02-08 CHERI

目前CHERI已经在主流的ISA上得到了初步实现:

G.O.S.S.I.P 阅读推荐 2023-02-08 CHERI

有了CHERI在底层的支持,我们过去这几年经常读到的各种关于软件模块化和隔离的工作,都可以利用CHERI提供的硬件来做(想想Intel MPK催生了多少论文,大家赶紧把CHERI用起来)

G.O.S.S.I.P 阅读推荐 2023-02-08 CHERI

当然,CHERI一个非常吸引人的特性在于项目组实现了一整套完整的软件栈(software stack),包括:

  • CHERI Clang/LLVM/LLD

  • CHERI GDB

  • CheriFreeRTOS

  • CheriOS microkernel

  • CHERI Hafnium(一个hypervisor)

  • CheriBSD kernel

等等,看上去是不是非常的fancy!此外,CHERI社区还公布了相关的开指南:

CHERI C/C++ Programming Guide: https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-947.pdf

关于CHERI体系的另一篇比较综述性质的文章 Redesigning Hardware to Support Security: CHERI 来自USENIX官方网站,这篇发表于2022年的文章更加简明扼要地总结了CHERI从硬件层面上是如何为软件安全提供帮助的:

https://www.usenix.org/publications/loginonline/redesigning-hardware-support-security-cheri

G.O.S.S.I.P 阅读推荐 2023-02-08 CHERI


除了基本的概念,大家可能也很关心CHERI在实际应用中的安全性到底如何,微软MSRC的安全研究人员在2021年Blackhat上做了一个关于的CHERI的安全性分析的报告:

https://i.blackhat.com/USA21/Wednesday-Handouts/us-21-Security-Analysis-Of-Cheri-Isa.pdf

G.O.S.S.I.P 阅读推荐 2023-02-08 CHERI

在这个报告中,研究人员指出,尽管CHERI能够比较好的检测出内存越界操作,但像更复杂的内存安全问题(例如UAF、类型混淆、堆栈未初始化等)仍可以被利用。作者针对CheriBSD(一个基于CHERI构建的FreeBSD原型)的研究表明,引入CHERI之后,由于增加了capability的限制,传统上任意内存读写漏洞的攻击能力大为下降,但是仍然有一些特定的代码可以帮助攻击者获取相关的capability,用于绕过限制实现漏洞利用:

G.O.S.S.I.P 阅读推荐 2023-02-08 CHERI

G.O.S.S.I.P 阅读推荐 2023-02-08 CHERI

有意思的是,Rust社区也很关心CHERI,大家也在讨论,如果有了这一套底层硬件的支持,是否要革掉我们Ruster的命呢?感兴趣的读者可以去看看下面的帖子:

https://lobste.rs/s/haorfd/cheriot_rethinking_security_for_low_cost
https://lobste.rs/s/knclgq/what_s_smallest_variety_cheri


CHERI这套体系一个非常吸引人的地方在于,它得到了ARM的大力支持,弄出来了很多硬件原型,其中比较有名的是叫做Morello的硬件平台原型系统,这套系统在看得见摸得着的芯片上真正实现了扩展ISA,这样开发人员就能实际测试评估到底CHERI体系能否在真实世界里面使用起来了。ARM还提供了大量相关参考资料,感兴趣的研究人员只要访问:

https://www.arm.com/architecture/cpu/morello

就可以获取海量的信息了!

G.O.S.S.I.P 阅读推荐 2023-02-08 CHERI


最后,当然是要讲一下2月6日刚刚发布的最新技术报告 CHERIoT: Rethinking security for low-cost embedded systems

https://www.microsoft.com/en-us/research/uploads/prod/2023/02/cheriot-63e11a4f1e629.pdf

在这篇技术报告中,研究人员基于CHERI ISAv8,实现了一个叫做CHERIoT的RISC-V extension,从这个名字上就看得出来,CHERIoT是为IoT系统准备的,具体地,作者搞出来了一套CHERIoT RTOS作为trusted computing base(TCB),然后定义了一系列的编程语言扩展和ABI接口,最终希望在低功耗嵌入式系统上实现高效的compartmentalization~


CHERI这个设计已经发展了接近10年的时间,社区逐渐扩大,也有软件和硬件巨头支持,我们衷心希望在未来我们都能用上更为安全的硬件ISA,让那些搞内存安全(挖漏洞)的研究人员全部失业!


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2023-02-08 CHERI

版权声明:admin 发表于 2023年2月8日 下午9:00。
转载请注明:G.O.S.S.I.P 阅读推荐 2023-02-08 CHERI | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...