RISC-V架构硬件辅助用户态内存安全防御方案概览.pdf
《RISC-V架构硬件辅助用户态内存安全防御方案概览.pdf》由会员分享,可在线阅读,更多相关《RISC-V架构硬件辅助用户态内存安全防御方案概览.pdf(10页珍藏版)》请在咨信网上搜索。
1、RISC-V 架构硬件辅助用户态内存安全防御方案概览解达1,2,欧阳慈俨1,2,宋威1,21(中国科学院信息工程研究所信息安全国家重点实验室,北京100195)2(中国科学院大学网络空间安全学院,北京101408)通信作者:宋威,E-mail:摘要:传统的用户态内存安全防御机制基于 x86 架构和纯软件方式实现,实现内存安全保护的运行时开销很高,难以部署在生产环境中.近年来,随着主流商业处理器开始提供硬件安全扩展,以及 RISC-V 等开源处理器架构的兴起,内存安全保护方案开始面向 x86-64、ARM、RISC-V 等多种体系架构和硬件辅助实现方式.我们对 RISC-V架构上实现的内存安全防
2、御方案进行了讨论,并对 x86-64、ARM、RISC-V 等处理器架构在安全方案设计上的特点进行了比较.得益于开放的指令集架构生态,RISC-V 架构的内存安全防御方案相较于其他架构有一些优势.一些低成本的安全防御技术有望在 RISC-V 架构上实现.关键词:RISC-V;内存安全;硬件安全扩展;处理器引用格式:解达,欧阳慈俨,宋威.RISC-V 架构硬件辅助用户态内存安全防御方案概览.计算机系统应用,2023,32(11):1120.http:/www.c-s- of Hardware-assisted User-mode Memory Safety Defenses on RISC-V
3、ArchitechtureXIEDa1,2,OUYANGCi-Yan1,2,SONGWei1,21(StateKeyLaboratoryofInformationSecurity,InstituteofInformationEngineering,ChineseAcademyofSciences,Beijing100195,China)2(SchoolofCyberSecurity,UniversityofChineseAcademyofSciences,Beijing101408,China)Abstract:Traditionalx86-basedandsoftware-baseduser
4、-modememorysafetydefensescanhardlybedeployedinaproduction-readyenvironmentduetosignificantruntimeoverheads.Inrecentyears,asmainstreamcommercialprocessorsbegintoprovidehardwaresecurityextensionsandopen-sourcearchitectureslikeRISC-Vrise,hardware-assistedmemorysafetyprotectionshavebecomepopular,andthei
5、rimplementationsarebasedonvariousarchitectures,suchasx86-64,ARM,andRISC-V.Thisstudydiscussesuser-modememorysafetydefensesontheRISC-Varchitectureandcomparesthefeaturesofx86-64,ARM,andRISC-Vinthecontextofsecuritydefensedesign.RISC-Vhassomeadvantagesoverotherarchitecturesduetoitsopeningecosystem,making
6、theimplementationofsomelow-costandpromisingdefensetechniquespossible.Key words:RISC-V;memorysafety;hardwaresecurityextension;processor1引言使用 C、C+等非内存安全语言编写的用户态程序经常存在内存安全漏洞1,2,容易受到内存安全错误的影响,为程序带来严重的安全隐患.传统的内存安全计算机系统应用ISSN1003-3254,CODENCSAOBNE-mail:ComputerSystems&Applications,2023,32(11):1120doi:10.1
7、5888/ki.csa.009331http:/www.c-s-中国科学院软件研究所版权所有.Tel:+86-10-62661041基金项目:国家自然科学基金(61802402,62172406);中国科学院率先行动“百人计划”青年俊才(C 类)本文由“RISC-V技术及生态”专题特约编辑邢明杰高级工程师、宋威副研究员、张科正高级工程师以及易秋萍副教授推荐.收稿时间:2023-05-26;修改时间:2023-06-27,2023-07-03;采用时间:2023-07-21;csa 在线出版时间:2023-09-15CNKI 网络首发时间:2023-09-18SpecialIssue专论综述11
8、防御机制如栈金丝雀(stackcanary)3,SoftBound4等通过纯软件方法提供内存安全性保护.然而纯软件方法的实现要么防御简单,容易被攻击者绕过;要么性能代价过高,难以在生产环境中部署.近年来,随着主流商业处理器开始提供硬件安全扩展,以及 RISC-V 等开源处理器架构的兴起,内存安全保护方案的设计开始逐渐从单一的 x86 架构和纯软件实现方式过渡到 x86-64、ARM、RISC-V 等多种架构,软硬件相结合的实现方式.由于边界检查和元数据查找等耗时操作可以通过硬件加速实现,硬件辅助防御方案的性能开销相较于安全性相近的纯软件方案大幅降低.RISC-V 作为新兴开源处理器架构的代表,
9、和传统的处理器架构相比在内存安全防御方案的设计上存在一些优势:首先,RISC-V 采用精简指令集架构(reducedinstruc-tionsetcomputer,RISC),指令之间的耦合程度低,指令集架构的定义简单清晰.作为新兴指令集,RISC-V 架构没有历史包袱,更方便进行安全加固.其次,RISC-V 指令集架构拥有开放的生态.相较于闭源的 x86 和 ARM 指令集架构,RISC-V 架构允许设计者对处理器和指令集进行改动,从而可以更加灵活地进行软硬件工作的划分.此外,RISC-V 指令集架构采用模块化设计,除了几个必要的基本模块,其他模块都是可选的.模块化设计使得 RISC-V 指
10、令集架构具有很强的可扩展性.安全方案的设计可以快速迭代.与此相对,x86 和 ARM 架构的指令集架构生态相对封闭,不允许私有扩展的公开商业应用.这也导致上述架构的新安全特性从提出到实现需要较长时间.最后,支持 RISC-V 指令集架构的处理器普遍具有开源特性.RISC-V 指令集拥有大量的开源片上系统实现,降低了设计者修改硬件设计的难度,设计者搭建实验平台的代价较低,方便对防御方案进行验证和测试.与此相对的,在 x86 和 ARM 指令集架构上设计内存安全防御方案要么直接依赖商业处理器提供的硬件安全特性,要么需要设计者通过软件模拟的方式实现硬件设计.得益于上述优点,设计者在 RISC-V 架
11、构上进行安全方案设计时,具备了同时协调软件设计和指令集架构设计的能力.设计能力的变化也为内存安全防御方案的设计带来了新的机遇.本文将对这些软硬件协同的内存安全防御方案进行讨论.接下来的部分组织如下:第 2 节介绍内存安全问题,以及内存安全性最重要的两个方面,空间安全性和时间安全性.第 3 节介绍内存安全防御机制的分类,以及硬件支持为防御机制设计带来的变化.第 4 节介绍适用于 RISC-V 架构的内存安全防御方案.第 5 节讨论指令集架构对内存安全防御方案设计的影响,并对 x86 和 ARM 指令集架构下的方案进行讨论.第 6 节对硬件辅助内存安全防御方案设计的发展方向进行了讨论.第 7 节给
12、出结论.2内存安全的讨论范围本文讨论的防御方案主要面向使用硬件辅助实现用户态内存安全保护的场景,目的是通过硬件加速以较低开销防止用户态应用程序内存漏洞的利用.场景假设可以被利用的内存漏洞广泛存在于现有用户态软件中,内存安全问题所讨论的攻击一般在用户态地址空间对受害者进程进行,其目的是获得对部分内存地址的访问和修改的能力.由于内存安全防御方案不能对微体系架构提供保护,一般不考虑攻击使用瞬态执行攻击的情形.基于隐私计算技术的内存安全保护、针对操作系统内核的内存安全保护等防御方案使用的威胁模型和传统用户态模型不同,不在本文所讨论的范围.内存安全性指用户程序中的指针仅访问预期要访问的内容,并且访问的内
13、容是有效的5.它包含两个属性:1)预期性:内存对象指针访问的内容不超过对象的地址空间,表现为内存的空间安全性;2)有效性:内存对象指针的访问处于对象的生命周期内,表现为内存的时间安全性.违反内存安全性的行为会导致内存安全性错误,主要包括两类:1)空间安全性错误:内存对象指针访问的内容不在预期对象地址空间的范围内.典型的例子是缓冲区溢出;2)时间安全性错误:内存对象指针在对象的生命周期外访问对象.典型的例子是释放后使用错误(use-after-free,UAF)6.攻击者可以利用上述两种错误获得对部分内存地址的读写能力.具体表现为内存泄漏和内存篡改.两种能力作为基础可以构建更加复杂和高级的攻击.
14、如信息泄露7、特权级提升8、代码注入9、控制流劫持10,11等.3安全防御机制内存安全防御方案侧重于在程序运行时为程序提供内存安全保护.传统的内存安全防御方案实现完整的时间和空间安全性保护需要较高的运行时开销,因计 算 机 系 统 应 用http:/www.c-s-2023年第32卷第11期12专论综述SpecialIssue此主要针对内存安全性的特定方面,或是攻击者利用内存安全漏洞攻击路径的特定步骤进行防御.近年来由于硬件支持加入了内存安全防御方案的设计,针对特定方面或特定攻击步骤设计的安全防御方案的开销进一步降低.同时,设计者能够以较低的运行时开销实现相对完整的时间和空间安全性保护.部分方
15、案的性能开销12,13甚至能够与特定目的的保护方案相媲美.一些常见的内存安全防御方案防御类型如表 1 所示.空间安全性保护限制对象指针访问的内容在对象的地址空间范围内.一般通过对指针进行边界检查实现保护.时间安全性保护限制对象指针访问的内容在对象的生命周期内.可以通过延迟重用14、锁-秘钥机制15等方式实现.空间和时间安全性保护分别针对空间和时间安全性错误提供完整的防御;下列防御方案则将保护目标集中于内存安全性的特定侧面,针对攻击者利用时间空间安全性错误执行的特定攻击步骤展开防御:指针完整性保护通过数据隔离或机密等手段阻止攻击者读取或篡改指针的值.可以细分为代码指针完整性保护16和数据流完整性
16、保护17.指针完整性是内存安全性的重要组成部分.随机化保护通过在程序运行时随机化代码与数据的地址,阻止攻击者获得目标对象地址.权限保护通过设置页面的读写执行等权限对页面内对象提供保护.地址空间随机化18和数据执行保护19是以低运行时开销实现有效防御的经典方案.传统方法倾向于使用纯软件方式实现内存安全防御,主要面向 x86 架构,解决的主要问题是如何以相对较低的性能代价换取较高的安全性.传统方法4,15,20依赖于编译器以及二进制分析和标注实现,因此性能开销普遍较高.近几年内存安全防御方案12,2123开始倾向于使用软硬件结合的方法,依赖商业芯片提供的硬件内存安全性扩展或修改开源硬件,在 x86
17、-64、ARM、RISC-V等多个指令集架构上实现.使用硬件降低了防御方案的运行时开销,但同时防御方案对硬件特性的依赖导致了兼容性问题.此外,硬件的计算资源有限,限制了防御方案能够提供的安全性强度.新方法的主要问题是如何在实现和软件方案相近强度的安全性防护的同时,降低运行时开销,同时尽可能保证和传统代码的兼容性.表 1常见的内存安全防御类型防御类型传统软件方案硬件辅助方案空间安全性保护SoftBound4CHERI21,SHORE24时间安全性保护CETS15Shakti-MS25,HWST12826指针完整性保护代码指针完整性16STAR27,ARMPA22随机化保护地址空间随机化18Mor
18、pheus28权限保护数据执行保护19SealPK29,Donky304RISC-V 架构内存安全防御设计介绍RISC-V 指令集架构为设计者提供了同时协调软硬件设计的能力,许多新颖的硬件辅助内存安全防御方案在 RISC-V 架构上实现.这些方案主要可分为基于边界检查、对象身份的防御机制,基于信息流的防御机制以及基于页面权限的防御机制.下面依次对这些分类进行介绍.4.1 基于边界检查与对象身份的防御机制边界检查机制通过在对象创建时记录对象的基地址和大小信息,在访问对象内容时检查指针访存地址在基地址和大小构成的地址区域内,提供对内存对象空间安全性的保护.对象的边界信息一般在对象创建时生成,跟随对
19、象指针一同传递,并在对象指针访存时用于执行检查2125,31,32.基于对象身份的防御机制可以提供额外的对象身份信息,在指针访存时验证指针与被访问对象身份,实现内存时间安全性保护26,33.近年来基于 RISC-V 架构设计的基于边界检查和对象身份识别的内存安全防御方案如表 2 所示.表 2RISC-V 架构基于边界检查和身份识别的内存安全防御方案防御方案安全性保护边界存储模式边界检查形式边界传播支持运行时开销百分比(%)CHERI21,33时空安全性胖指针多种指令流水线6.8SHORE24空间安全性分离专用访存指令流水线37.69HWST12826时空安全性分离专用访存指令流水线94.89S
20、hakti-MS25时空安全性胖指针专用检查指令流水线13HeapSafe31时空安全性内嵌索引专用检查指令协处理器22.4In-FatPointer32时空安全性内嵌索引多种形式流水线122023年第32卷第11期http:/www.c-s-计 算 机 系 统 应 用SpecialIssue专论综述134.1.1边界存储模式胖指针防御方案21,25通过扩展指针长度,将边界信息保存至指针中.扩充后的指针长度一般为 128 位,对边界信息和指针地址部分进行了压缩.硬件需要对胖指针在流水线和内存中的传播提供支持.CHERI21在胖指针的基础上增加了对象类型信息,并通过增加密封位和使用标签内存实现了
21、不可修改指针,提供了对“最小权限原则”的支持.Shakti-MS25在栈、堆和只读数据段的低地址部分放置 64 比特随机值 Cookie,用于标记受保护对象地址空间的下界.胖指针方案一般用于提供内存空间安全性保护.通过与软件结合33或使用胖指针保存额外的元数据25,可以提供对内存时间安全性的保护.实现内存时间安全性的方法主要包括延迟重用和锁-秘钥机制.Shakti-MS 通过 Cookie 计算密钥信息,与边界信息一同保存至胖指针中.分离存储方案24,26将边界信息单独存储,通过对象指针的地址部分或指针的地址寻找对应的边界信息.分离存储方案需要使用额外的指令处理边界信息的创建、传播和销毁.这种
22、方案对边界信息的大小和数量没有限制,但是在通过指针检索或传递边界信息时存在运行时开销.SHORE24将指针地址部分和边界信息分开存储,在流水线中将边界信息存储至影子寄存器中,在内存中将边界信息存储至影子内存中,指针地址部分仍然按照传统指针形式存储.HWST12826在 SHORE基础上,实现了锁-秘钥机制,向影子寄存器中加入了秘钥和指向对象锁的指针.内嵌索引分离存储方案31,32同样采用分离存储方式保存边界信息,但是将边界信息的索引内嵌在指针中.这种方案免去了边界信息随指针传播的运行时开销,但是边界信息的数量有限.HeapSafe31从程序的静态列表中获取边界信息的标签;In-FatPoint
23、er32将对象分为3 个类别,为每个类别设计了单独的边界信息存储模式.4.1.2保护目标边界检查机制一般面向栈、堆以及全局数据等对象提供内存安全保护24,25,32.由于针对堆对象的攻击较为常见,部分机制31,33面向堆对象提供保护.由于硬件资源有限,多数边界检查机制并不在子对象粒度提供内存安全保护.一方面是由于实现子对象粒度保护的设计比较复杂,另一方面是部分大型程序存在使用对象内部跨子对象指针的情况21.In-FatPointer 通过引入布局表描述复合类型对象的内存布局,提供了对子对象粒度的内存安全保护.CHERI 使用特殊选项对源码重新编译后能够提供子对象粒度的内存安全保护,但部分大型程
24、序无法正常运行.4.1.3对指令集的修改边界检查方案可以通过扩展访存指令的语义32或增加专用的指令21,24,26,31执行边界检查.专用指令需要通过修改编译器替代普通访存指令或在访存指令之前插入.SHORE、HWST128、CHERI 提供了支持边界检查的访存指令;HeapSafe 增加了专门用于边界检查的指令;In-FatPointer 将边界检查操作加入普通访存指令的语义中.为了支持边界信息在流水线中传递,边界检查方案需要提供专用指令和专用寄存器实现边界信息的传递、加载和存储操作.CHERI 和 In-FatPointer提供了大量指令对能力机制或子对象粒度内存安全性提供支持.4.1.4
25、对微体系结构的修改边界检查方案一般会通过硬件实现加速边界检查操作.边界检查操作可以通过流水线内的边界检查单元实现同步检查2426,32,也可以通过 RoCC 等协处理器实现异步检查31.异步检查可以降低边界检查的运行时开销,但是存在非法访问成功执行到异步检查报错的时间窗口.对于边界信息与对象指针分离存储的方案,需要对边界信息的检索过程进行加速.加速过程可以通过地址缓冲32或缓存实现.HeapSafe 通过内容关联存储(CAM)保存边界信息,因此对于边界信息的存储数量存在限制.4.1.5运行时开销胖指针防御方案和内嵌索引分离存储方案使用硬件实现边界信息传递21,25,31,32,运行时开销较低;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RISC 架构 硬件 辅助 用户 内存 安全 防御 方案 概览
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。