作者: 杨帆,张倩颖,施智平,关永
论文链接: http://html.rhhz.net/rjxb/html/6501.htm
为保护计算设备中安全敏感程序运行环境的安全, 研究人员提出了可信执行环境(TEE)技术, 通过对硬件和软件进行隔离为安全敏感程序提供一个与通用计算环境隔离的安全运行环境.
侧信道攻击从传统的需要昂贵设备发展到现在仅基于微体系结构状态就能通过软件方式获取机密信息的访问模式, 从而进一步推测出机密信息. TEE架构仅提供隔离机制, 无法抵抗这类新出现的软件侧信道攻击.
深入调研了ARM TrustZone、Intel SGX和AMD SEV这3种TEE架构的软件侧信道攻击及相应防御措施, 并探讨其攻击和防御机制的发展趋势.
首先, 介绍了ARM TrustZone、Intel SGX和AMD SEV的基本原理, 并详细阐述了软件侧信道攻击的定义以及缓存侧信道攻击的分类、方法和步骤;
之后从处理器指令执行的角度, 提出一种TEE攻击面分类方法, 利用该方法对TEE软件侧信道攻击进行分类, 并阐述了软件侧信道攻击与其他攻击相结合的组合攻击;
然后详细讨论TEE软件侧信道攻击的威胁模型;
最后全面总结业界对TEE软件侧信道攻击的防御措施, 并从攻击和防御两方面探讨TEE软件侧信道攻击未来的研究趋势.
计算设备中常见的攻击可以分为3类, 分别是软件攻击、电路板级物理攻击和芯片级物理攻击. (1). 软件攻击指只执行纯软件的攻击, 实施这类攻击所需要的条件不高, 因此软件攻击最常见. (2). 电路板级物理攻击指采用低成本硬件(例如, 探针)而发起的攻击, 它通过在电路板上挂载攻击设备以窃听或篡改计算设备上的信息[41]. (3). 芯片级物理攻击指对芯片内部的机密信息进行攻击, 比如CPU根密钥, 这类攻击依赖的攻击设备昂贵, 并且对攻击者具有很高的要求, 攻击成本很高. 为了增强计算机系统的安全性, 学术界利用TEE技术给应用程序提供一个隔离的执行环境. TEE通常可以抵抗软件攻击和电路板级物理攻击, ARM TrustZone技术通过对系统资源进行隔离从而保证位于普通世界的恶意软件无法攻击安全世界的应用程序, 因此ARM TrustZone技术可以抵御软件攻击; Intel SGX技术和AMD SEV技术都可以抵御电路板级物理攻击, 因为Intel SGX利用内存加密技术保证飞地代码和数据加密存储在内存上, AMD SEV/SNP通过内存加密技术保护虚拟机数据在片外内存的安全性, 它们都将机密代码和数据以密文的形式存储在CPU外部, 因此可以抵御第2类攻击. 目前所有的TEE技术都没有对CPU芯片进行物理防护, 因此都不能抵抗芯片级物理攻击.虽然现在主流的TEE技术可以通过硬件层面的隔离技术来保护应用程序免受软件攻击或电路板级物理攻击, 但它们未在处理器微体系结构层面进行隔离. 现代处理器从成本和效率角度出发, 在微体系结构层面使用了许多共享和优化机制, 系统运行会在微体系结构中遗留下一些副作用信息. 软件侧信道攻击者通过构建微体系结构的侧信道攻击, 就能将微体系结构层面的副作用信息提取出来并进一步推测得到软件运行时的机密信息.软件侧信道攻击严重威胁着TEE隔离架构的安全, 但是当前学术界对TEE软件侧信道攻击面缺乏系统分析, 这不利于研究人员进一步挖掘TEE隔离架构的侧信道漏洞. 为了使TEE中软件侧信道攻击面的研究系统化, 本文提出一种基于CPU指令流水线的TEE攻击面分类方法.可信执行环境通过减少可信计算基(trusted computing base, TCB)限制安全敏感的应用程序与恶意应用程序之间的交互, 从而保证计算设备在隔离的可信执行环境中存储和处理机密信息. TEE中的TCB通常仅包含CPU或少量代码. 在ARM TrustZone中, CPU、可信操作系统和监视器Monitor是可信的组件, 除上述组件之外, 其余组件均被视为受攻击者控制而被排除在TCB之外. Intel SGX的可信计算基更小, 仅包括CPU, 除CPU之外的其他所有组件都不可信. 尽管通过减小可信执行环境的TCB可以减少TEE中的软件漏洞, 但无法抵御TEE软件侧信道攻击.当前针对TEE的软件侧信道攻击中, 包含3类不同能力的攻击者, 分别是用户级攻击者、内核级攻击者以及物理攻击者. 用户级攻击者不需要具备任何特权级权限, 仅通过用户层的恶意应用程序就能发起攻击; 内核级攻击者要求获得系统内核层的权限以执行特权攻击; 物理攻击者则需要将攻击设备物理接触目标设备.针对TEE软件侧信道攻击的防御措施可以从硬件层面和软件层面两方面考虑. TEE软件侧信道攻击大都利用了微体系结构组件的优化功能, 因此重新设计硬件结构能从根本上解决TEE软件侧信道攻击带来的问题. 然而, 硬件层面的防御措施短期内无法部署到计算设备中, 因此安全研究人员提出了一些软件层面的防御措施, 用于短期内部署到计算设备中来缓解TEE侧信道攻击.
本节按照第2节对TEE侧信道攻击面的分类, 分别介绍不同TEE软件侧信道攻击的防御措施. 表3总结了不同的TEE软件侧信道攻击对应的防御措施, 与硬件层面的对策相比, 软件层面的防御措施往往会引入较高性能开销. 下面将从硬件层面和软件层面两部分分别探讨软件侧信道攻击的防御措施.软件侧信道攻击的出现促使研究人员持续在TEE侧信道攻击和防御两方面进行研究. 结合最新的研究趋势, 本节从攻击和防御两方面对未来可能出现的研究点进行探讨, 以供相关研究人员参考.从攻击方面, 侧信道攻击从最开始需要大量昂贵设备探测物理信号以推断机密信息发展到现在以软件方式捕获微体系结构状态信息来提取机密信息, 这使得越来越多的研究人员开始深入研究计算机微体系结构可能存在的侧信道漏洞. 在TEE隔离架构中, Intel SGX极容易遭受基于微体系结构攻击的威胁, ARM TrustZone也发现了基于微体系结构的侧信道. 未来针对可信执行环境的侧信道攻击, 可以考虑以下几个研究方向.(1) 挖掘微体系结构侧信道漏洞: 根据第2节对TEE侧信道攻击面的描述, 当前针对可信执行环境的TEE软件侧信道攻击几乎都利用了处理器微体系结构组件的优化功能. 也就是说, 现代处理器中的微体系结构优化组件在提升计算效率的同时牺牲了计算设备的安全性, 利用这些组件可能会造成严重的安全问题. 因此, 未来需要继续挖掘TEE隔离架构中微体系结构优化组件的侧信道漏洞, 通过详细分析Intel SGX和ARM TrustZone等可信执行环境在硬件层面的处理流程、安全检查机制以及隔离机制, 寻找可能会影响TEE隔离机制的侧信道漏洞.(2) 探索TLB在上下文切换期间的处理逻辑: 当前, TEE隔离架构中没有出现基于TLB的侧信道攻击案例, 但是TLB理论上存在侧信道漏洞(参考第2.3节). 例如, 上下文切换期间有选择地刷新TLB条目, 攻击者通过监视TLB即可了解受害者进程的内存访问模式. 因此, 需要继续探索TEE隔离架构中的TLB漏洞, 并且构建出基于TLB的侧信道攻击实例.从防御方面, 针对TEE侧信道攻击的防御措施主要分为软件层面和硬件层面两个方向, 整体呈现“软件为主, 硬件为辅”的趋势. 硬件层面可以通过重新设计硬件结构、更新微码等方法从根本上解决TEE软件侧信道攻击问题. 由于硬件层面的对策短期内不太容易部署且成本很高, 故研究人员针对具体攻击提出了相应的软件层面的防御措施. 与硬件层面的对策相比, 软件层面的防御措施更容易实现但无法从根本上防御TEE软件侧信道攻击, 有时甚至会引入大量性能开销. 因此, 未来对于TEE软件侧信道攻击的防御措施, 可能存在以下几个研究方向:(1) 探索“硬件为主, 软件为辅”的防御措施: TEE软件侧信道攻击利用了现代CPU内部微体系结构的优化组件来提取受害者的机密信息, 因此基于软件的方法只能起到缓解作用而不能一劳永逸, 彻底解决TEE侧信道攻击问题需要朝着“硬件为主, 软件为辅”的方向探索防御措施. 这类防御措施的技术原理如下: 针对当前TEE侧信道防御措施中软件方案开销较大以及难以抵御的攻击(例如, 瞬态执行攻击或组合攻击等), 硬件层面, 硬件开发人员需要尽快重新设计DRAM和CPU结构, 消除DRAM和CPU中优化技术带来的侧信道漏洞; 软件层面, 软件开发人员应该继续探索减小性能开销的技术(例如, 静态分析技术). 针对当前TEE侧信道防御措施中软件方案开销较小或易于抵御的攻击(例如, 分支预测攻击), 软件开发人员可以通过注入噪声等方法进行缓解.(2) 寻找通用的缓解措施: 目前, 在针对基于Flush的cache侧信道攻击[104, 105]或针对基于page table的侧信道攻击的研究中, 研究人员已经找到了抵御这些攻击的通用方法. 除此之外, 大多数防御措施都只针对具体的攻击, 没有尝试将该防御措施扩展到其他类似攻击的防御中, 这不利于软件层面的防御措施的应用与发展. 因此未来针对防御措施的研究需要在原有对策的基础上找到能够抵御同类攻击的通用缓解措施.本文针对TEE隔离架构中的软件侧信道攻击, 详细调研其威胁模型、相关技术和实际的攻击案例, 重点阐述基于处理器指令流水线的TEE攻击面分类方法, 并按照上述分类方法对实际的攻击技术进行系统归类.
同时, 从硬件层面和软件层面两个角度分类归纳不同软件侧信道攻击对应的防御技术.
最后, 对可信执行环境软件侧信道攻击技术和其防御措施进行更深层次的探讨, 展望未来的发展趋势并给出一些研究方向, 以期对TEE隔离架构的安全研究提供参考.
本文参考:软件学报
脚注对应的参考文献请参见原论文
分享仅供学习参考,若有不当,请联系我们处理。