summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIru Cai <mytbk920423@gmail.com>2019-05-02 22:01:18 +0800
committerIru Cai <mytbk920423@gmail.com>2019-05-02 22:01:18 +0800
commitf16f43275e60a5afc2239921cf42c0ee2435e931 (patch)
tree9a1acf666a2b8b1da6492d3ccfe0dad9ad297eed
parent0babd3f3251fc26ea2f1cebdca2b3830ee045a24 (diff)
downloaddissertation-f16f43275e60a5afc2239921cf42c0ee2435e931.tar.xz
update
-rw-r--r--chap/chap1.tex9
-rw-r--r--chap/chap3.tex3
-rw-r--r--chap/chap4.tex39
-rw-r--r--thesis.bib42
4 files changed, 89 insertions, 4 deletions
diff --git a/chap/chap1.tex b/chap/chap1.tex
index 61fc289..9ffc65d 100644
--- a/chap/chap1.tex
+++ b/chap/chap1.tex
@@ -7,6 +7,15 @@
\section{研究平台与环境}
+本文使用 gem5 模拟器\supercite{gem5}作为研究平台。gem5 提供了多种 CPU
+模型的模拟,包括简单的单周期处理器、详细的按序流水线处理器、乱序超标量
+处理器。gem5 支持 X86, ARM, Alpha, MIPS, RISC-V 等指令系统。gem5 乱序
+处理器模型基于 Alpha 21264,有取指、译码、重命名、发射、执行、回写、提
+交等流水线阶段,包含乱序超标量处理器中的分支预测器、指令队列、重排序缓
+冲、装载存储队列等常见部件。gem5 可以详细地模拟存储系统,包括高速缓存、
+DRAM、crossbar等组件,通过使用Ruby存储系统,还可以模拟自定义的缓存一致
+性协议。gem5 支持同构和异构多核系统的模拟,支持对系统功耗进行建模。
+
\section{论文组织结构}
% vim:ts=4:sw=4
diff --git a/chap/chap3.tex b/chap/chap3.tex
index 0f34701..bc4ce99 100644
--- a/chap/chap3.tex
+++ b/chap/chap3.tex
@@ -5,7 +5,8 @@
Meltdown 和 Spectre 及其多种变体被发现后,研究者提出了多种减轻这些攻击
的防御方法,它们需要对软件或硬件进行修改。也有研究者提出通过修改现有的
-指令系统,使得用这种指令系统的程序不受 Spectre 攻击的影响。
+指令系统\supercite{oisa},使得用这种指令系统的程序不受 Spectre 攻击的
+影响。
\section{Meltdown型攻击的防御}
diff --git a/chap/chap4.tex b/chap/chap4.tex
index e9f03dc..f47c8ad 100644
--- a/chap/chap4.tex
+++ b/chap/chap4.tex
@@ -1,9 +1,44 @@
\chapter{可抵抗Spectre攻击的微架构的设计与实现}
+本章讲解本文提出的一种防御 Spectre 攻击的方法,该方法使用动态信息流追
+踪的方法,检测 Spectre 组件指令流中可能泄露秘密数据的访存指令,并使用
+InvisiSpec 的方法执行这些访存指令。
+
\section{威胁模型}
-\section{InvisiSpec}
+本文对攻击者做如下假设:攻击者知道受害者程序的代码、进程中的地址分布信
+息,攻击者和受害者可以在同一进程,共享同一处理器核,或在不同处理器核上。
+
+本文设计的方法用于防御利用控制流推测式执行的 Spectre-PHT, Spectre-BTB,
+Spectre-RSB 攻击,此方法可以扩展至 Spectre-STL 攻击。攻击者在 Spectre
+攻击中使用高速缓存作为隐蔽信道,其他信道不在本文的考虑范围。本文不考虑
+其他的侧信道攻击。本文针对攻击者通过 Spectre 攻击获取内存中秘密数据的
+情形,不考虑攻击者通过攻击获取寄存器中秘密数据的情形。
+
+\section{基于动态信息流追踪的Spectre检测方法}
+
+动态信息流追踪(Dynamic Information Flow Tracking)\supercite{dift}是
+一种硬件安全策略,通过识别可疑的信息流,并限制可疑信息的使用,保护程序
+的安全。它最早用于防止攻击者利用缓冲区溢出攻击执行恶意代码,也可以用于
+检测跨站脚本攻击、SQL注入等攻击。\supercite{raksha}
+
+DIFT 可以作为 Spectre 攻击的检测手段之一。Spectre 的论文中指出处理器可
+以追踪数据是否在推测式执行中获取,进而阻止在后续可能泄露这个数据的操作
+中使用,作为阻止数据进入隐蔽信道的方法。\supercite{spectre}
+CSF\supercite{context-sensitive-fencing} 中的译码级信息流追踪框架 DIFT,
+用于追踪处理器使用的数据是否来源于用户输入,从而处理器可以根据此信息判
+断是否需要插入 fence 微码。OISA\supercite{oisa} 在指令系统的定义中即包
+含了 DIFT 技术,用于追踪一个数据是否为秘密数据。
+
+本文使用 DIFT 检测 Spectre 组件中泄露数据的 load 指令。
+
+%TODO
+
+\section{InvisiSpec的详细设计}
-\section{基于信息流追踪的Spectre检测方法}
+本文使用 InvisiSpec 执行检测为不安全的 load 指令。相对于阻止该 load 指
+令的执行,使用 InvisiSpec 执行该指令,可以使依赖于这个指令的指令可以继
+续执行,减少性能损失。以下分析 InvisiSpec 的详细设计,在下一节中分析将
+Spectre 检测技术和 InvisiSpec 结合的方法。
\section{可抵抗Spectre攻击的微架构的实现}
diff --git a/thesis.bib b/thesis.bib
index 6c5ffcb..3e38ef0 100644
--- a/thesis.bib
+++ b/thesis.bib
@@ -227,6 +227,35 @@ doi={10.1109/MICRO.2018.00083},
ISSN={},
month=Oct,}
+@inproceedings{dift,
+ title={Secure program execution via dynamic information flow tracking},
+ author={Suh, G Edward and Lee, Jae W and Zhang, David and Devadas, Srinivas},
+ booktitle={ACM Sigplan Notices},
+ volume={39},
+ number={11},
+ pages={85--96},
+ year={2004},
+ organization={ACM}
+}
+
+@inproceedings{raksha,
+ author = {Dalton, Michael and Kannan, Hari and Kozyrakis, Christos},
+ title = {Raksha: A Flexible Information Flow Architecture for Software Security},
+ booktitle = {Proceedings of the 34th Annual International Symposium on Computer Architecture},
+ series = {ISCA '07},
+ year = {2007},
+ isbn = {978-1-59593-706-3},
+ location = {San Diego, California, USA},
+ pages = {482--493},
+ numpages = {12},
+ url = {http://doi.acm.org/10.1145/1250662.1250722},
+ doi = {10.1145/1250662.1250722},
+ acmid = {1250722},
+ publisher = {ACM},
+ address = {New York, NY, USA},
+ keywords = {dynamic, semantic vulnerabilities, software security},
+}
+
@inproceedings{context-sensitive-fencing,
title={Context-Sensitive Fencing: Securing Speculative Execution via Microcode Customization},
author={Taram, Mohammadkazem and Venkat, Ashish and Tullsen, Dean},
@@ -344,7 +373,7 @@ The BOOM generator was implemented using the Chisel hardware construction langua
This thesis highlights two aspects of the BOOM design: its industry-competitive branch prediction and its configurable execution datapath. The remainder of the thesis discusses the BOOM tape-out, which was performed by two graduate students and demonstrated the ability to quickly adapt the design to the physical design issues that arose.}
}
-@misc{cryptoeprint:2018:808,
+@misc{oisa,
author = {Jiyong Yu and Lucas Hsiung and Mohamad El Hajj and Christopher W. Fletcher},
title = {Data Oblivious ISA Extensions for Side Channel-Resistant and High Performance Computing},
howpublished = {Cryptology ePrint Archive, Report 2018/808},
@@ -459,4 +488,15 @@ This thesis highlights two aspects of the BOOM design: its industry-competitive
year = 2017,
}
+@article{gem5,
+ title={The gem5 simulator},
+ author={Binkert, Nathan and Beckmann, Bradford and Black, Gabriel and Reinhardt, Steven K and Saidi, Ali and Basu, Arkaprava and Hestness, Joel and Hower, Derek R and Krishna, Tushar and Sardashti, Somayeh and others},
+ journal={ACM SIGARCH Computer Architecture News},
+ volume={39},
+ number={2},
+ pages={1--7},
+ year={2011},
+ publisher={ACM}
+}
+
% vim:ts=4:sw=4