2023年4月8日~9日,由InForSec、南方科技大学斯发基斯可信自主系统研究院、清华大学网络科学与网络空间研究院、复旦大学软件学院系统软件与安全实验室、国科学院计算技术研究所处理器芯片全国重点实验室、中国科学院软件研究所可信计算与信息保障实验室、中国科学院大学国家计算机网络入侵防范中心、浙江大学NESA Lab、山东大学网络空间安全学院、百度安全、奇安信集团、蚂蚁集团、阿里安全等单位联合主办的“InForSec 2023年网络空间安全国际学术研究成果分享及青年学者论坛”在南方科技大学成功召开。来自清华大学、复旦大学、浙江大学、北京邮电大学、中国科学院大学等66所高校及科研院所的230余人现场出席会议,900余人通过视频会议系统及直播系统参与了本次论坛。
我们将对会议精彩报告进行内容回顾,本文分享的是南方科技大学张殷乾教授的报告——《打造机密计算的安全底座》。
张殷乾教授作为南方科技大学斯发基斯可信自主系统研究院信息安全研究中心主任,在体系结构安全、系统与软件安全、机密计算、云计算、区块链、物联网/移动终端等领域均进行了深入研究。张教授首先介绍了自己这些年来的主要研究方向和研究成果,而本次报告的主要内容是张教授近年来在机密计算领域的系列研究成果——“打造机密计算的安全底座”。
围绕机密计算,张教授首先向大家介绍了何为机密计算以及为何要研究机密计算。可信执行环境(TEE)是近年来提出的一种由CPU硬件支持的安全隔离机制,能够在通用CPU上通过软硬件协同的方式实现计算环境的隔离以及内存和外部储存的加密,用以防止恶意系统软件的对机密数据的读取和篡改。其安全原理包括:逻辑隔离,内存加密,远程验证和加密存储。而机密计算是一种利用TEE保护运算中的数据的计算方式,它利用TEE提供的加密和隔离的执行环境,对计算中的数据提供保护,防止恶意软件对计算中的数据进行非法访问和篡改,使得计算服务提供商能够以更安全、可信的方式管理机密数据。
在了解了机密计算的研究背景和研究意义后,张教授介绍了机密计算的常见应用,并将机密计算的安全底座总结为四层安全架构,自底向上分别为:微架构安全、体系结构安全、系统软件安全、应用协议安全。随后,张教授依次对上述四层安全底座进行了内容展开及相关研究进展介绍。
首先,在微架构安全层面,张教授介绍了瞬态执行漏洞以及针对瞬态执行漏洞进行的多项模糊测试研究。瞬态执行漏洞是一种CPU微架构设计和实现上的安全漏洞。为了增加CPU指令的并发性,现代CPU微架构进行了深度优化,实现了指令的预测执行和乱序执行,导致CPU指令的逻辑执行顺序和实际执行顺序不同。这种程序执行在CPU架构层面和微架构层面的区别造成了瞬态执行漏洞。瞬态执行漏洞允许在CPU上具有基本程序执行权限的攻击者,通过瞬态执行攻击代码,跨过操作系统的安全隔离边界读取内存,并利用缓存侧信道把内存内容编码并在瞬态执行之后读取。
在该层次,张教授介绍了其在针对瞬态执行漏洞进行模糊测试的相关研究,主要包括:
1.SpeechMiner 利用侧信道分析Intel商用处理器的微架构状态,实现瞬态执行漏洞自动检测。(面向微架构安全漏洞的黑盒模糊测试)
2.Introspectre 利用RTL模拟执行和模糊测试发现RISC-V BOOM处理器的瞬态执行漏洞。(面向微架构安全漏洞的白盒模糊测试)
3.TEESec 利用RTL模拟执行和模糊测试自动发掘基于BOOM和香山处理器的Keystone和Penglai可信执行环境的微架构漏洞。
其次,在体系结构安全层次,张教授介绍了AMD SEV可信执行环境的一系列体系结构安全问题以及张教授所提出的各种针对性解决方案。
紧接着,在系统软件安全层面,张教授分别从侧信道攻击、内存安全漏洞、并发漏洞和接口漏洞方面介绍了目前存在的安全风险。首先,侧信道攻击方面,共享的CPU微架构资源可以被用来构建侧信道,例如缓存、分支预测组件、以及各种内部buffer。资源共享导致一些特定指令的执行时间与资源冲突关联,从而允许具有在CPU上执行指令权限的攻击者能够推测TEE可信软件的内存访问、分支预测等特征,进而推测TEE可信软件的秘密信息。TEE的侧信道漏洞更为严重,攻击者通过控制系统软件,利用异常处理、中断处理、硬件错误注入等方式对TEE可信软件进行侧信道攻击,形式更加多样,更难防御。
在内存安全方面,张教授指出TEE的可信软件同样面临传统软件的内存安全威胁。攻击者可以利用恶意构造的输入,利用可信软件对输入的处理不当,劫持可信软件的控制流,达到执行任意代码的目的。攻击者可以进一步利用ROP攻击方法,执行TEE可信软件的代码,绕过DEP防御机制。更糟糕的是,TEE面对的攻击者具有系统软件的最高权限,可以利用侧信道攻击推测TEE软件的内部机密,包括ASLR的内存布局。基于内存布局随机性的防御机制(例如SGX-Shield)很难取得效果。
关于线程并发漏洞,张教授指出TEE软件的线程并发漏洞更容易被利用,传统多线程软件的并发漏洞可能会导致并发线程违反访问的原子性、违反访问的顺序性、或导致竞争条件。并发漏洞的触发需要满足特定条件,比如相对较长的并发攻击窗口。在TEE环境下,由于攻击者具有系统权限,可以控制线程调动和中断处理,TEE软件的线程并发漏洞更容易被利用。此外,在接口漏洞方面张教授也介绍了一些相关的攻击。一些TEE(例如Intel SGX)可信软件需要通过调用接口与外部软件的通信实现系统功能。例如,在SGX中,TEE向外的调用称为OCall,外部软件向TEE内部的调用称为Ecall,Iago攻击通过修改TEE OCall接口的返回值,篡改TEE可信软件的执行逻辑。COIN攻击通过调整SGX Ecall调用顺序,触发Use-after-free漏洞。调用接口漏洞的威胁程度取决于TEE软件与外部交互的需求。由于大多数TEE软件需要通过外部的操作系统来访问系统资源,大多数TEE都面临调用接口漏洞。
进一步地,张教授从侧信道防御,漏洞自动检测和可信执行环境虚拟化三个方面介绍了自己在系统软件安全层面的相关研究工作。侧信道防御方面提出了几种针对侧信道攻击的主动防御策略,利用LLVM编译器进行检测逻辑的自动插装,在运行时动态监测侧信道攻击事件。在漏洞自动化检测方面,使用程序静态分析和动态分析技术检测可信执行环境软件的侧信道漏洞、并发漏洞。在可行执行环境虚拟化方向,提出了基于SEV的SGX虚拟化方案,在AMD机器上直接运行未修改的Intel SGX二进制程序,实现AMD SEV和Intel SGX应用的兼容。
在应用协议安全层面,张教授介绍了状态延续漏洞和中心化远程验证协议的问题。TEE的状态延续漏洞是指TEE的执行状态可以被重放和复用,导致回滚攻击和分叉攻击。回滚攻击使TEE的执行状态回滚到一个过去的状态,导致TEE可信软件从同一个状态重复执行;分叉攻击使TEE从同一个状态执行多个可信软件的实例。中心化远程验证协议的远程验证过程存在对硬件厂商的过度依赖,并且机密计算的自主系统缺乏相互验证的机制。
针对这些问题,张教授分别研究了针对TEE软件的状态延续性的形式化证明;提出了分布式机密计算协议,利用分布式的信任模型来解决机密计算面临的安全问题;以及去中心化的远程验证方案。
最后,张教授向大家分享了针对机密计算安全研究的一些思考。微架构安全是机密计算的安全短板,未来TEE的硬件漏洞将成为一种常态风险。体系结构安全是机密计算的安全基础,想要设计安全的可信执行环境并不是一件简单的事情。系统软件安全是机密计算的核心,但构建安全的TEE操作系统和运行时仍面临诸多挑战。应用协议安全是机密计算的未来,分布式机密计算可能是一种可行的途径。此外,机密计算的安全底座也可以成为传统计算的安全底座,理论方法存在一定的共同性,相关安全工具也有一定的扩展性。
演讲者简介
张殷乾,南方科技大学教授,曾任美国俄亥俄州立大学终身副教授。主要研究方向是计算机系统安全、体系结构安全和区块链安全。近十年来在侧信道安全和可信执行环境安全等领域从事研究工作,在国际安全顶会 ACM CCS、IEEE S&P、Usenix Security 和 NDSS 发表论文超过40篇,相关成果获得ACM CCS颁发的时间检验奖,以及多项顶会最佳论文提名。曾获美国国家科学基金青年科学家奖,俄亥俄州立大学 Lumley 研究成就奖,北美计算机华人学者协会颁发的明日之星奖,AMiner全球最具影响力的安全和隐私学者提名,并入选全球前2%顶尖科学家榜单以及《麻省理工科技评论》中国2022隐私计算科技创新人物。