南科大计算机系研究生在机密计算方向发表多篇国际顶会文章

发布时间:2022-10-25


近日,南方科技大学计算机系张殷乾课题组与张锋巍课题组在机密计算方向取得一系列科研进展。由本系研究生为第一作者的多篇学术论文被计算机安全领域顶级会议接收录用。其中,两篇论文被计算机安全领域顶级会议ACM Conference on Computer and Communications Security(ACM CCS 2022)接收,一篇被顶级会议Usenix Security Symposium (Usenix Security 2023)接收。


5-1.jpg


张殷乾教授、王伟力、邓森、邓韵杰、张锋巍副教授(从左到右)


一. StrongBox - 为Arm终端设备

的GPU构建TEE

由南科大计算机系2020级硕士生邓韵杰和2021级博士生王晨旭以共同第一作者的身份在计算机安全顶级会议ACM Conference on Computer and Communications Security(ACM CCS 22)发表论文StrongBox: A GPU TEE on Arm Endpoints。本文由南方科技大学计算机科学与工程系-蚂蚁集团安全可信技术联合研究平台共同完成,计算机科学与工程系副教授张锋巍为论文通讯作者,南科大是论文第一单位。


为了满足急剧增加的计算性能需求,GPU已经被广泛部署于服务器端和边缘端设备中,用于处理包括3D游戏、视频处理和压缩、VR以及神经网络训练和推理等高性能计算应用。然而,由于GPU完全受控于操作系统,其计算的安全性也被系统中已知的许多漏洞潜在地威胁着。攻击者可以利用操作系统层面的许多漏洞来获得对GPU驱动程序的控制权,进而可以直接访问GPU的内存,或者通过篡改GPU页表来打破GPU应用程序之间的隔离,导致GPU中的敏感数据的泄露。考虑到如今的GPU计算通常会包含个人身份信息,如人脸信息和语音信息等,为GPU构建可信执行环境(TEE)保证计算数据安全是十分重要的。


目前,现有的GPU可信执行环境工作主要是在拥有独立显存的GPU上进行的。这样的GPU拥有独立于系统内存之外的GPU内存,相关的工作利用了该内存隔离的特性,构建了系统内存与独立GPU内存之间数据的安全传输通道,以此来构建可信执行环境。然而,Arm边缘端的GPU并没有自身的独立GPU内存,需要与系统共享内存,这意味着需要指定更严格的保护手段。除此之外,现有的GPU可信执行环境大多都依赖于硬件修改,这导致相关工作难以被部署在现有的系统中。基于上述问题,我们提出了一种Arm终端设备上GPU可信执行环境的构建方法——StrongBox,利用Arm架构现有的硬件特性来保护计算所用的共享GPU内存,以确保Arm边缘端的GPU计算的安全性。


StrongBox保证了GPU计算任务的安全性的同时还维持了尽可能小的可信计算基(TCB)以及高兼容性。相关设计方案选择复用放在正常世界的GPU驱动来执行非敏感操作(如GPU内存资源的分配和计算任务的调度等),并选择只将轻量级的GPU守护(GPU Guard)和任务保护器(Task Protector)部署在EL3的可信环境中,以减少系统的可信计算基大小。除此之外,StrongBox不需要对现有硬件进行任何修改,通过利用现有的Arm架构硬件特性,来实现对GPU设备的控制保护和对敏感GPU内存的细粒度保护,保证了系统的高兼容性。实验结果表明,所提出的方案以较小的性能开销代价保证了GPU计算的安全性。


5-2.jpg


图1. StrongBox系统架构图


5-3.jpg


图2. 敏感GPU内存访问权限管理


论文链接:

https://fengweiz.github.io/paper/strongbox-ccs22.pdf


二. 基于可信执行环境的

拜占庭容错共识系统

南方科技大学张殷乾教授课题组(可信系统安全实验室)实现了基于可信执行环境的拜占庭容错共识系统——ENGRAFT。本论文由南方科技大学计算机系2020级硕士研究生王伟力和邓森为该论文的共同第一作者,张殷乾教授为论文通讯作者。南方科技大学牛健宇研究助理教授和杜克大学Michael Reiter教授为论文合作者。该工作相关成果以“ENGRAFT: Enclave-guarded Raft on Byzantine Faulty Nodes”为题发表在计算机安全领域顶级会议ACM CCS 2022上。


随着区块链科技的不断发展,支撑区块链应用的分布式底层技术如共识算法也越来越受到工业界和学术界的关注。共识算法通过在一组计算机节点之间复制数据和计算来提高系统可用性和保证系统状态一致性,包括安全性(safety)和活性(liveness)这两个基本特性:安全性规定这组计算节点的行为始终正确,活性则规定这组计算节点能够响应客户请求。当仅考虑机器崩溃、网络故障和网络分区这样的错误时,崩溃容错 (CFT) 协议用于确保这种一致性;而拜占庭容错 (BFT) 协议可以容许部分节点的任意类型错误,包括执行错误代码,发送不正确的消息包等。因此,BFT协议通常具有更复杂的通信模式和更差的性能。例如,为了容忍f台故障机器,BFT 协议需要3f+1台机器;而大多数CFT协议只需要2f+1台机器。


可信执行环境(TEE)的出现与兴起为改善BFT系统的性能提供了一种可能:目前工业界和学术界有大量工作尝试在可信执行环境内运行CFT协议,从而以CFT的计算、通信复杂度去实现BFT协议容忍任意错误的特性,即“CFT+TEE=BFT”。然而,这个看上去正确的等式,尚未经过严格的推敲。针对于此,该工作使用模型检验(model checking)这一形式化验证方法来检查“CFT+TEE=BFT”这一等式的正确性。


5-4.jpg


图3. 模型检验示意图


具体来讲,该工作使用TLC模型检验器(model checker)对一个广泛应用的CFT协议——Raft,在可信执行环境内的行为进行了建模,并且发现了其中存在的安全性(safety)和活性(liveness)两种漏洞。工作流程如图3所示,这是模型检验在Raft协议上的首次成功应用。


基于模型检验结果,我们在ENGRAFT系统内设计了TIKS(Trustworthy distributed In-memory Key-value Storage)和MLD(Malicious Leader Detector)两套子系统,对Raft协议在可信执行环境中的安全性和活性漏洞进行了修复。其中TIKS子系统的设计采用了基于两轮消息通信的分布式协议(图4)来维持系统内的状态连续性。相较于之间维持状态连续性的系统设计,TIKS在保证状态连续性的同时也提供了可恢复性;MLD子系统的设计则借鉴了经典BFT协议——PBFT中的客户端警告机制来保证系统的活性。


5-5.jpg


图4. TIKS消息交互示意图


ENGRAFT系统的提出为安全的“CFT+TEE”设计范式提供了参考,可作为联盟链的底层共识算法使用,支撑实际应用。


论文链接:https://github.com/teecertlab/papers/tree/main/engraft


三. 针对密文侧信道的

自动化漏洞检测框架

由南科大2020级硕士研究生邓森为第一作者,南方科技大学张殷乾教授和香港科技大学助理教授王帅为共同通信作者,南科大硕士研究生汤怡宁,俄亥俄州立大学博士生李梦源,蚂蚁集团研究员闫守孟为论文合作者。该工作得到了南科大计算机系-蚂蚁集团安全可信计算联合研究平台的支持。


近年来,随着人们对数据隐私的重视,隐私计算技术成为学术界与工业界所共同关注的热点问题。作为隐私计算技术的重要组成部分,机密计算采用可信执行环境来实现程序执行的机密性与完整性。然而,可信执行环境依旧面临许多安全挑战,其中比较有代表性的一个是近期提出的密文侧信道攻击。作为一种新型的侧信道攻击手段,密文侧信道通过利用可信执行环境的确定性内存加密方式,对可信执行环境的安全性带来严重威胁。已经有研究表明,密文侧信道攻击在包括AMD SEV-SNP在内的几乎所有采用确定性内存加密模式的可信执行环境都上都能实现。


针对此,团队在计算机安全领域顶级会议USENIX Security 2023上的工作以“CIPHERH: Automated Detection of Ciphertext Side-channel Vulnerabilities in Cryptographic Implementations”为题, 提出了针对密文侧信道漏洞的自动检测框架。


在可信执行环境中,内存加密是保护内存数据不受软件级或物理级访问攻击的主要方法。内存加密引擎是位于CPU芯片和DRAM模块之间的硬件模块,它自动地对内存总线上的数据进行加密或解密。在内存加密中使用的操作模式受到两个因素的限制:首先,为了有效地支持随机内存访问,内存块必须独立加密。其次,为了支持大块的加密内存,需要随机源的加密模式也不适用。因此,所有支持大块加密内存的可信执行环境架构都采用基于块的,确定性的内存加密模式。然而,确定性的内存加密使得攻击者能够通过对密文的连续观察,推断出相应的明文信息。这种攻击方法被称为密文侧信道。


5-6.jpg


 图5. 密文侧信道攻击实现


针对密文侧信道威胁,考虑到性能影响,代替使用硬件层面的防御方案,芯片制造厂商AMD推荐使用软件层面的防御方案,并发布了相应的白皮书,指导软件开发者修补容易遭受密文侧信道攻击的程序。然而,如何定位漏洞程序点具有挑战。因此,张殷乾团队提出了针对密文侧信道的自动化检测框架,帮助开发者定位软件中可能存在的密文侧信道漏洞。


5-7.jpg


图6. 针对密文侧信道的自动化检测框架


该框架首先针对密文侧信道进行了定性的建模。定性建模采用符号约束,从攻击者的视角判断连续的内存写入操作是否会导致密文侧信道的发生。同时,基于定性模型,其设计并实现了自动化检测工具。该工具采用动态分析与静态分析相结合的方法。具体来说,首先基于动态污点跟踪分析私密信息在程序中可能的传播路径,得到被“污染”的函数。之后,对这些函数进行过程内与过程间的符号执行,定位可能的漏洞程序点。实验表明,与现有的分析工具相比,该工作提出的方法更加全面,且易于扩展。


该工作对三个主流的加密算法库进行了分析,发现了236个漏洞程序点,攻击者通过这些漏洞程序点能够成功发起密文侧信道攻击。这些发现已经报告给相应的开发社区,得到积极回复与确认,并收到署名致谢。同时,开发社区也采用了其所提出的软件防御方案来抵御密文侧信道威胁。


论文链接:https://github.com/teecertlab/papers/tree/main/CipherH


南方科技大学计算机科学与工程系

图文丨张殷乾、张锋巍课题组