暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
微架构瞬态执行攻击与防御方法-吴晓慧 , 贺也平 , 马恒太 , 周启明 , 林少锋.pdf
450
20页
1次
2022-05-24
免费下载
软件学报 ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cn
Journal of Software,2020,31(2):544563 [doi: 10.13328/j.cnki.jos.005979] http://www.jos.org.cn
©中国科学院软件研究所版权所有. Tel: +86-10-62562563
微架构瞬态执行攻击与防御方法
吴晓慧
1,2
,
贺也平
1,2,3
,
马恒太
1
,
周启明
1
,
林少锋
1,2
1
(基础软件国家工程研究中心(中国科学院 软件研究所),北京 100190)
2
(中国科学院大,北京 100049)
3
(计算机科学国家重点实验室(中国科学院 软件研究所),北京 100190)
通讯作者: 吴晓慧, E-mail:wuxiaohui@iscas.ac.cn; 贺也平, E-mail:yeping@iscas.ac.cn
: 现代处理器的优化技术,包括乱序执行和推测机制等,对性能至关重要. Meltdown Spectre 为代表的侧
信道攻击表明:由于异常延迟处理和推测错误而执行的指令结果虽然在架构级别上未显示,但仍可能在处理器微架
构状态中留下痕迹.通过隐蔽信道可将微架构状态的变化传输到架构层,进而恢复出秘密数据,这种攻击方式称为瞬
态执行攻击.该攻击有别于传统的缓存侧信道攻击,影响面更广,缓解难度更大.深入分析了瞬态执行攻击的机理和
实现方式,目前的研究现状与防御方法进行了总结.首先,介绍了处理器微架构采用的优化技术,并分析了其导致
瞬态执行攻击的功能特征;然后,基于触发瞬态执行的原语对瞬态执行攻击进行系统化分析,揭示攻击面上的明显差
;最后,有侧重点地针对攻击模型中的关键步骤和关键组件总结了已有的防御方法,并展望了未来的研究方向.
关键词: 处理器;微架构;优化技术;瞬态执行攻击;防御方法
中图法分类号: TP303
中文引用格式: 吴晓慧,贺也平,马恒太,周启明,林少锋.微架构瞬态执行攻击与防御方法.软件学报,2020,31(2):544563.
http://www.jos.org.cn/1000-9825/5979.htm
英文引用格式: Wu XH, He YP, Ma HT, Zhou QM, Lin SF. Microarchitectural transient execution attacks and defense methods.
Ruan Jian Xue Bao/Journal of Software, 2020,31(2):544563 (in Chinese). http://www.jos.org.cn/1000-9825/5979.htm
Microarchitectural Transient Execution Attacks and Defense Methods
WU Xiao-Hui
1,2
, HE Ye-Ping
1,2,3
, MA Heng-Tai
1
, ZHOU Qi-Ming
1
, LIN Shao-Feng
1,2
1
(National Engineering Research Center of Fundamental Software (Institute of Software, Chinese Academy of Sciences), Beijing 100190,
China)
2
(University of Chinese Academy of Sciences, Beijing 100049, China)
3
(State Key Laboratory of Computer Science (Institute of Software, Chinese Academy of Sciences), Beijing 100190, China)
Abstra ct : Modern processor optimizations including out-of-order execution and speculative mechanism are critical for performance.
Recent research such as Meltdown and Spectre exploit delayed exception handling and misprediction events to trigger transient execution,
and leak otherwise inaccessible information via the CPU’s microarchitectural state from instructions which are never committed. This
type of attacks is called transient execution attack, which is different from the traditional cache side channel attack. It is more difficult to
mitigate. This work deeply studied the mechanism and implementation of transient execution attacks, and summarized its research status
and defenses. First, the optimizations adopted by the processor are introduced, and the essential causes of the transient execution attack
are analyzed. Then, the transient execution attacks are generalized systematically based on the primitives that trigger the transient
基金项目: 核高基国家科技重大专项(2014ZX01029101-002); 中国科学院战略性先导科技专项(XDA-Y01-01)
Foundation item: CHB National Science and Technology Major Project of China (2014ZX01029101-002); Strategic Priority
Research Program of Chinese Academy of Sciences (XDA-Y01-01)
收稿时间: 2019-04-12; 修改时间: 2019-08-19; 采用时间: 2019-11-06; jos 在线出版时间: 2019-12-05
CNKI 网络优先出版: 2019-12-05 14:55:19, http://kns.cnki.net/kcms/detail/11.2560.TP.20191205.1454.009.html
吴晓慧 :微架构瞬态执行攻击与防御方法
545
execution, in order to reveal the attack surface. Finally, the defenses are summarized in the view of the key steps and components in the
attack model, and the future research directions of this field are presented.
Key words: processor; microarchitecture; optimization technique; transient execution attack; defense method
现代计算机架构基本都是基于冯·诺依曼体系结构,其程序指令代码(指令)和数据都放在内存中,运行时中
央处理器(CPU)从内存中逐条取指令并执行,指令在必要时访问内存数据.内存指令被取入 CPU , CPU 内部
还要经过复杂的指令译码等过程,才能驱动 CPU 硬件电路相应部件,按照指令具体需求进行相应动作,最终完成
指令执行.不同的 CPU 差异很大,即使指令集相同的 CPU 也有不同的电路实现,这种 CPU 内部硬件电路的结构
称为 CPU 的微架构.程序开发者只要按照 CPU 指令集,用相应的指令编写程序(如果是高级语言,则由编译器或
者解释器将高级语言语句最终转换为 CPU 指令),并将指令程序和相应数据加载到内存(现代通常由操作系统
完成)即可执行程序.程序开发者只访问到计算机体系架构这一级,至于指令在 CPU 内部是如何进一步解析并
最终执行的,则是由 CPU 微架构决定的.
CPU 微架构是设计 CPU 的核心.通过收缩加工技术和增加时钟频率,过去几十年的处理器性能不断提高,
但已到物理极限.为了提高性能,供应商将重点转移到增加内核数量和优化指令流水线.现代处理器有深度流水
线,允许在不同流水线级或执行级的不同单元中并行操作.乱序执行和推测机制是现代 CPU 为了提高
性能通常
采用的优化方式.在乱序执行中,CPU 不是严格按照程序指令顺序执行,而是对微指令进行重排序,即如果按顺
序在后面的微指令操作数已经准备好(与前面微指令没有数据依赖关系或者数据已经计算好),则可以先于次序
在前的微指令执行.推测执行
[1]
是指处理器推测性地执行指令以提高性能.无论是乱序还是推测执行,如果处理
器稍后确定指令不应该被执行,则丢弃计算结果,“回滚相应指令产生的计算结果(例如撤销已经修改的寄存器
).推测执行配合流水线和乱序执行,能够极大地提高 CPU 的运行速度.分支推测并不能保证 100%的推测成功,
乱序执行也可能会提前执行了没有权限的指令,这些已经完成的工作必须撤销”,否则就会得到错误的结果.
理论上来说,无论指令执行提交还是回滚”,都只与 CPU 微架构相关,程序员只能看到宏观指令按照程序流程
执行.最近的研究表明,攻击者可以利用这些优化技术来进行强大的侧信道攻击.处理器在流水线的后期才执行
内存管理单元(MMU)保护检查,Meltdown
[2]
就是利用乱序执行和该延迟处理机制来绕过硬件强制的内存隔离.
Spectre
[3]
欺骗处理器推测地执行指,将受害者的秘密数据加载到寄存器中,然后通过缓存侧信道泄漏数据.
了缓解这些攻击, 操作系统必须对其设计进行重大更改, 例如重新设计内核地址空间与用户空间的隔
[4]
,RISC-V 指令集正在积极探讨从指令集层面直接支持内核页表分离.硬件厂商引入微码更新以添加新的指
令来控制上述 CPU 优化技术
[5]
.本文分析了瞬态执行攻击的机理和实现方式,对目前的研究现状与防御方法进
行了梳理.通过对各种瞬态执行攻击的异同点进行总结抽象,提出了瞬态执行攻击模型.该模型对瞬态攻击进行
了全面刻画,清楚地揭示出瞬态执行攻击的攻击面.在此基础上,针对瞬态执行的机理,总结了触发瞬态执行的
原语.从攻击的角度来说,通过对攻击流程中某个(或某些)关键环节的不同实现方式进行尝试,有助于发现新的
攻击变种.从防御的角度来说,在该攻击模型的任一阶段进行阻断都可以,如果是对不同攻击变种的共同攻击
进行的阻断,则可以达到更全面的防御效果.
本文第 1 节讨论处理器微架构采用的优化技术带来的信息泄露问题. 2 节重点分析微架构瞬态执行攻击
的基本原理及关键组件. 3 节根据触发瞬态执行原语的不同,分别对基于乱序执行的 Meltdown 类型攻击和基
于推测机制的 Spectre 类型攻击进行描述. 4 节基于攻击模型中的关键步骤及组件,分别从 4 个方面总结防护
方法. 5 节进行总结,讨论现有研究中存在的问题,并对未来可能的研究方向进行展望.
1 处理器体系结构
当前,CPU 的两大架构是 CISC(复杂指令集) RISC(精简指令集),Intel x86 CISC 的代表架构,占领了
95%以上的桌面计算机和服务器市场.ARM 作为 RISC 的一种,在智能手机、可穿戴设备等移动处理器市场占
有主要地位.RISC-V 采用者瞄准了 AI、机器学习和物联网等新兴市场.每种架构都有自己的主流应用.本文重
of 20
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜