聚宝盆:CHERI堆的暂时安全

N. Filardo, B. F. Gutstein, Jonathan Woodruff, S. Ainsworth, Lucian Paul-Trifu, Brooks Davis, Hongyan Xia, E. Napierala, Alexander Richardson, John Baldwin, D. Chisnall, Jessica Clarke, Khilan Gudka, Alexandre Joannou, A. T. Markettos, Alfredo Mazzinghi, Robert M. Norton, M. Roe, Peter Sewell, Stacey D. Son, Timothy M. Jones, S. Moore, P. Neumann, R. Watson
{"title":"聚宝盆:CHERI堆的暂时安全","authors":"N. Filardo, B. F. Gutstein, Jonathan Woodruff, S. Ainsworth, Lucian Paul-Trifu, Brooks Davis, Hongyan Xia, E. Napierala, Alexander Richardson, John Baldwin, D. Chisnall, Jessica Clarke, Khilan Gudka, Alexandre Joannou, A. T. Markettos, Alfredo Mazzinghi, Robert M. Norton, M. Roe, Peter Sewell, Stacey D. Son, Timothy M. Jones, S. Moore, P. Neumann, R. Watson","doi":"10.1109/SP40000.2020.00098","DOIUrl":null,"url":null,"abstract":"Use-after-free violations of temporal memory safety continue to plague software systems, underpinning many high-impact exploits. The CHERI capability system shows great promise in achieving C and C++ language spatial memory safety, preventing out-of-bounds accesses. Enforcing language-level temporal safety on CHERI requires capability revocation, traditionally achieved either via table lookups (avoided for performance in the CHERI design) or by identifying capabilities in memory to revoke them (similar to a garbage-collector sweep). CHERIvoke, a prior feasibility study, suggested that CHERI’s tagged capabilities could make this latter strategy viable, but modeled only architectural limits and did not consider the full implementation or evaluation of the approach.Cornucopia is a lightweight capability revocation system for CHERI that implements non-probabilistic C/C++ temporal memory safety for standard heap allocations. It extends the CheriBSD virtual-memory subsystem to track capability flow through memory and provides a concurrent kernel-resident revocation service that is amenable to multi-processor and hardware acceleration. We demonstrate an average overhead of less than 2% and a worst-case of 8.9% for concurrent revocation on compatible SPEC CPU2006 benchmarks on a multi-core CHERI CPU on FPGA, and we validate Cornucopia against the Juliet test suite’s corpus of temporally unsafe programs. We test its compatibility with a large corpus of C programs by using a revoking allocator as the system allocator while booting multi-user CheriBSD. Cornucopia is a viable strategy for always-on temporal heap memory safety, suitable for production environments.","PeriodicalId":6849,"journal":{"name":"2020 IEEE Symposium on Security and Privacy (SP)","volume":"30 1","pages":"608-625"},"PeriodicalIF":0.0000,"publicationDate":"2020-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"35","resultStr":"{\"title\":\"Cornucopia: Temporal Safety for CHERI Heaps\",\"authors\":\"N. Filardo, B. F. Gutstein, Jonathan Woodruff, S. Ainsworth, Lucian Paul-Trifu, Brooks Davis, Hongyan Xia, E. Napierala, Alexander Richardson, John Baldwin, D. Chisnall, Jessica Clarke, Khilan Gudka, Alexandre Joannou, A. T. Markettos, Alfredo Mazzinghi, Robert M. Norton, M. Roe, Peter Sewell, Stacey D. Son, Timothy M. Jones, S. Moore, P. Neumann, R. Watson\",\"doi\":\"10.1109/SP40000.2020.00098\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Use-after-free violations of temporal memory safety continue to plague software systems, underpinning many high-impact exploits. The CHERI capability system shows great promise in achieving C and C++ language spatial memory safety, preventing out-of-bounds accesses. Enforcing language-level temporal safety on CHERI requires capability revocation, traditionally achieved either via table lookups (avoided for performance in the CHERI design) or by identifying capabilities in memory to revoke them (similar to a garbage-collector sweep). CHERIvoke, a prior feasibility study, suggested that CHERI’s tagged capabilities could make this latter strategy viable, but modeled only architectural limits and did not consider the full implementation or evaluation of the approach.Cornucopia is a lightweight capability revocation system for CHERI that implements non-probabilistic C/C++ temporal memory safety for standard heap allocations. It extends the CheriBSD virtual-memory subsystem to track capability flow through memory and provides a concurrent kernel-resident revocation service that is amenable to multi-processor and hardware acceleration. We demonstrate an average overhead of less than 2% and a worst-case of 8.9% for concurrent revocation on compatible SPEC CPU2006 benchmarks on a multi-core CHERI CPU on FPGA, and we validate Cornucopia against the Juliet test suite’s corpus of temporally unsafe programs. We test its compatibility with a large corpus of C programs by using a revoking allocator as the system allocator while booting multi-user CheriBSD. Cornucopia is a viable strategy for always-on temporal heap memory safety, suitable for production environments.\",\"PeriodicalId\":6849,\"journal\":{\"name\":\"2020 IEEE Symposium on Security and Privacy (SP)\",\"volume\":\"30 1\",\"pages\":\"608-625\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2020-05-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"35\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2020 IEEE Symposium on Security and Privacy (SP)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/SP40000.2020.00098\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 IEEE Symposium on Security and Privacy (SP)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/SP40000.2020.00098","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 35

摘要

对暂时内存安全的“先使用后使用”的违反继续困扰着软件系统,成为许多高影响漏洞的基础。CHERI能力系统在实现C和c++语言空间内存安全,防止越界访问方面显示出很大的希望。在CHERI上强制执行语言级时态安全需要撤销功能,传统上通过表查找(在CHERI设计中为了性能而避免)或通过识别内存中的功能来撤销它们(类似于垃圾收集器清理)来实现。CHERIvoke先前的可行性研究表明,CHERI的标记功能可以使后一种策略可行,但只模拟了架构限制,而没有考虑该方法的全面实施或评估。Cornucopia是一个用于CHERI的轻量级功能撤销系统,它为标准堆分配实现了非概率C/ c++临时内存安全。它扩展了CheriBSD虚拟内存子系统,以跟踪通过内存的功能流,并提供一个并发的内核驻留撤销服务,该服务适用于多处理器和硬件加速。我们在FPGA上的多核CHERI CPU上的兼容SPEC CPU2006基准测试上演示了并发撤销的平均开销小于2%,最坏情况下为8.9%,并且我们针对Juliet测试套件的临时不安全程序语料验证了Cornucopia。我们通过在引导多用户CheriBSD时使用一个撤销分配器作为系统分配器来测试它与大量C程序的兼容性。Cornucopia是一种可行的策略,用于实现永远在线的临时堆内存安全,适用于生产环境。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Cornucopia: Temporal Safety for CHERI Heaps
Use-after-free violations of temporal memory safety continue to plague software systems, underpinning many high-impact exploits. The CHERI capability system shows great promise in achieving C and C++ language spatial memory safety, preventing out-of-bounds accesses. Enforcing language-level temporal safety on CHERI requires capability revocation, traditionally achieved either via table lookups (avoided for performance in the CHERI design) or by identifying capabilities in memory to revoke them (similar to a garbage-collector sweep). CHERIvoke, a prior feasibility study, suggested that CHERI’s tagged capabilities could make this latter strategy viable, but modeled only architectural limits and did not consider the full implementation or evaluation of the approach.Cornucopia is a lightweight capability revocation system for CHERI that implements non-probabilistic C/C++ temporal memory safety for standard heap allocations. It extends the CheriBSD virtual-memory subsystem to track capability flow through memory and provides a concurrent kernel-resident revocation service that is amenable to multi-processor and hardware acceleration. We demonstrate an average overhead of less than 2% and a worst-case of 8.9% for concurrent revocation on compatible SPEC CPU2006 benchmarks on a multi-core CHERI CPU on FPGA, and we validate Cornucopia against the Juliet test suite’s corpus of temporally unsafe programs. We test its compatibility with a large corpus of C programs by using a revoking allocator as the system allocator while booting multi-user CheriBSD. Cornucopia is a viable strategy for always-on temporal heap memory safety, suitable for production environments.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信