diff options
Diffstat (limited to 'chap/chap3.tex')
-rw-r--r-- | chap/chap3.tex | 46 |
1 files changed, 41 insertions, 5 deletions
diff --git a/chap/chap3.tex b/chap/chap3.tex index b0cede8..4d792a8 100644 --- a/chap/chap3.tex +++ b/chap/chap3.tex @@ -7,20 +7,56 @@ Meltdown型攻击利用了瞬时指令可以读取体系结构层次上不可访问的数据,并且用此数据做计算。因此一种防御方式是使体系结构层次上不可访问的数据,在微架构层次上仍然不可访问。 -KAISER\cite{kaiser}是一种已经部署在Linux内核上的一种防御Meltdown攻击的方案。它的作用是在用户空间中去除内核空间的地址映射,使得用户空间的执行的指令无法访问内核空间的存储区域。 +KAISER\supercite{kaiser}是一种已经部署在 Linux 内核上的一种防御 +Meltdown 攻击的方案。它的作用是在用户空间中去除内核空间的地址映射,使 +得用户空间的执行的指令无法访问内核空间的存储区域。 -防御Meltdown型攻击的第二种方法是阻止异常的产生。 +防御 Meltdown 型攻击的第二种方法是阻止异常的产生。 \section{Spectre型攻击的防御} -Spectre型攻击的防御方案可以分为三类:阻止推测式执行、防止瞬时指令访问秘密数据、切断隐蔽信道或降低隐蔽信道的精度。 +Spectre 型攻击的防御方案可以分为三类:阻止推测式执行、防止瞬时指令访问 +秘密数据、切断隐蔽信道或降低隐蔽信道的精度。 \subsection{软件防御方案} -为了防御Spectre v1,Intel和AMD建议在分支指令后插入lfence指令阻止推测式执行。由于lfence性能开销大,LLVM提出推测式装载指令加固(Speculative Load Hardening)技术, -它的作用是在指令流中添加数据相关,使得装载指令使用的地址依赖于分支结果。 +为了防御Spectre v1,Intel和AMD建议在分支指令后插入lfence指令阻止推测式 +执行。由于lfence性能开销大,LLVM提出推测式装载指令加固(Speculative + Load Hardening)\supercite{spec-load-hardening} 技术,它的作用是在指 +令流中添加数据相关,使得装载指令使用的地址依赖于分支结果。 +retpoline\supercite{retpoline} 是 Google 提出的防御 Spectre-BTB 的方法。 +它的作用是把程序中的间接转移指令修改为一个指令序列,最终使用 ret 指令 +完成跳转,从而使用 RSB 而不是 BTB 来进行间接转移的转移预测。 + +% index masking + +% poison value + +% site isolation + +% timer reduction \subsection{硬件防御方案} +\subsubsection{SafeSpec} + +\supercite{safespec} + +\subsubsection{InvisiSpec} + +\supercite{invisispec} + +\subsubsection{DAWG} + +\supercite{dawg} + +\subsubsection{Context-Sensitive Fencing} + +\supercite{context-sensitive-fencing} + +\subsubsection{Conditional Speculation} + +\supercite{conditional-speculation} + % vim:ts=4:sw=4 |