2023年4月8日~9日,由InForSec、南方科技大学斯发基斯可信自主系统研究院、清华大学网络科学与网络空间研究院、复旦大学软件学院系统软件与安全实验室、国科学院计算技术研究所处理器芯片全国重点实验室、中国科学院软件研究所可信计算与信息保障实验室、中国科学院大学国家计算机网络入侵防范中心、浙江大学NESA Lab、山东大学网络空间安全学院、百度安全、奇安信集团、蚂蚁集团、阿里安全等单位联合主办的“InForSec 2023年网络空间安全国际学术研究成果分享及青年学者论坛”在南方科技大学成功召开。来自清华大学、复旦大学、浙江大学、北京邮电大学、中国科学院大学等66所高校及科研院所的230余人现场出席会议,900余人通过视频会议系统及直播系统参与了本次论坛。
我们将对会议精彩报告进行内容回顾,本文分享的是中科院计算技术研究所助理研究员谢梦瑶的报告——《基于Intel CET的通用高效的进程内内存隔离框架》。
谢梦瑶博士首先介绍了何为进程内的内存隔离机制并对目前的实现方案进行了总结。进程内的内存隔离可以用于保护进程内的一些敏感数据,比如内存破坏防御措施所依赖的元数据,即时编译器的代码缓存等。目前的进程内内存隔离机制可以分为两类,一类是基于地址的隔离,其原理时在访存操作前检查访问的内存地址是否在敏感内存区域内。另一类是基于域的隔离机制,其核心思想是在访问敏感内存之前需要先打开对应内存区域的访问权限。
谢博士指出目前的进程内内存隔离机制不够高效,因为她们提出了一种新的更加高效的隔离机制,名为CETIS。为了帮助大家理解CETIS的应用场景,谢博士随后介绍了CETIS所应对的威胁模型。CETIS面临的攻击者能够利用内存破坏漏洞拥有任意地址读写的能力,CETIS的保护对象包括部署了内存破坏防御机制的服务器,浏览器等应用程序,以及即时编译器,这里的安全假设是所部署的内存破坏防御机制是安全的,打破内存隔离机制是进一步攻击内存破坏防御机制的先决条件。
由于CETIS的实现依赖了Intel 的CET硬件特性,谢博士也对Intel CET进行了简单介绍。IIntel CET名为控制流保证技术,是用于防御ROP攻击的一种硬件特性。CET中的SHSTK机制利用影子栈机制来保护函数的返回地址,即在函数返回时检查实际返回地址与影子栈中保存的返回地址是否相同。影子栈是一块仅可读的内存,普通的内存访问指令无法对其进行写操作,只有两个专门指令(WRSSQ和WRSSD)才可以对其进行修改。
在了解了Intel CET特性后,谢博士介绍了CETIS框架的顶层设计思想。一般的认知中影子栈只能用于保护函数返回地址的完整性,但是她们选择将进程内的隔离内存区域也置于影子栈中,保证其只能被被信任代码进行修改,从而实现进程内敏感代码和数据的保护。
随后,谢博士介绍了他们在实现CETIS框架之前对影子栈机制进行的一些性能上的实验评估。第一个实验评估了影子栈机制的性能开销,将其与MPK进行比较,发现其十分高效,仅引入了有限的运行开销。第二个实验针对的是WRSS指令的延迟,结果发现其一次执行所需时间是9.3个CPU时钟周期,比常见的MOV指令要慢一些。第三个实验对比了WRSS指令和使用MPK进行隔离时使用的隔离原语,发现在写入字节数小于24字节时,WRSS指令要更快一些。第四个分析是对影子栈的其他相关机制进行了探索,发现影子栈中的页是可以被执行的,因此可以用于保护代码。
在介绍完这些前置实验和关键结论后,谢博士指出想要把影子栈机制应用到进程内内存隔离上需要面临两个挑战。第一个挑战是在使用WRSS指令时存在数据拼接的操作,需要优化写策略。第二个挑战是WRSS指令的性能比MOV指令要差一些。为了解决这些挑战,谢博士她们提出了CETIS,能够帮助开发者更容易的实现内存隔离。
紧接着谢博士介绍了CETIS的框架结构,CETIS是实现在Linux/X86_64平台上,核心组件为CETIS内存文件抽象模块和CETIS库。CETIS将需要隔离保护的内存区域抽象为内存文件(cmfile),并提供对这些内存文件的读,写和追加接口,使得开发者不用应对复杂的WRSS指令使用。
在讲解清楚CETIS框架的核心内容后,谢博士介绍了她们将CETIS应用于保护代码指针完整性(CPI)等保护机制的案例分析,以CPI为例,CETIS将CPI所依赖的元数据保存在影子栈中,并且为了提高读写效率,谢博士针对性的设计了一种无损压缩方式,可以将24字节的元数据压缩为16字节进行保存。
最后,谢博士介绍了她们对CETIS应用实例的性能测试结果,证明了CETIS的高效性,并对该研究工作进行了总结和展望,CETIS有可能可以被用于更多的安全场景中。
演讲者简介
谢梦瑶,博士,中科院计算技术研究所助理研究员,主要研究方向是软件与系统安全,包括内存安全、进程内隔离和虚拟化等。研究成果发表在ACM CCS、IEEE TDSC、IEEE Security and Privacy、USENIX Security等国际顶级会议和期刊上。