summaryrefslogtreecommitdiff
path: root/chap/chap2.tex
diff options
context:
space:
mode:
Diffstat (limited to 'chap/chap2.tex')
-rw-r--r--chap/chap2.tex13
1 files changed, 4 insertions, 9 deletions
diff --git a/chap/chap2.tex b/chap/chap2.tex
index c8afa39..ff33fb0 100644
--- a/chap/chap2.tex
+++ b/chap/chap2.tex
@@ -775,11 +775,6 @@ Evict+Reload 的远程缓存攻击方式,将 Spectre 攻击用于网络场景
NetSpectre 攻击在网络上使用,需要攻击者访问受害者提供的网络接口,并且
向受害者发送大量网络数据包。这些操作不一定需要在短时间内进行。
-与本地幽灵攻击相比,我们的NetSpectre攻击并没有分为两个阶段。相反,攻击
-者不断执行操作以使处理器出错,这将使其经常遇到可利用的错误推测执行。
-NetSpectre不会跨越进程边界,而是通过将有效和无效值交替地传递给暴露的接
-口(例如,有效和无效的网络数据包)来就地进行训练。
-
在 NetSpectre 攻击中,攻击者需要利用两个 Spectre 组件:泄露组件和传输
组件,这些组件在收到网络数据包时执行。泄漏组件在攻击者控制的内存地址处
访问数据,并根据访问的数据改变一些微体系结构状态。传输组件可以进行任意操作,
@@ -803,13 +798,13 @@ if (x < bitstream_length)
为了在远程攻击中使目标系统在推测式执行中改变微体系结构状态,攻击者采用原始
Spectre 的方法。为了触发远程系统的推测式执行,攻击者进行以下操作:
-\begin{enumerate}
+\begin{itemize}
\item 攻击者发送多个网络数据包,使得攻击者选择的 x 值总是在边界内,训
练分支预测器在后续执行此边界检查的分支时,预测 x 在边界内
\item 攻击者发送一个数据包,使得 x 越界,\verb|bitstream[x]| 是目标系
统中的一个秘密数据位
\item 分支预测器预测边界检查结果为真,推测式执行存储器的访问
-\end{enumerate}
+\end{itemize}
在图\ref{fig:netspectre_leak}的代码中,虽然 flag 的值没有被修改,但是
flag 的缓存状态会发生变化。如果 \verb|bitstream[x]| 为 1,则 flag 会进
@@ -834,8 +829,8 @@ flag 的缓存状态会发生变化。如果 \verb|bitstream[x]| 为 1,则 flag
\subsection{SgxPectre}
SgxPectre \supercite{sgxpectre} 将 Spectre 攻击用于泄露 Intel SGX 环境
-中的数据。通过在 SGX enclave 之外污染 BTB,可以改变 SGX enclave 中的控
-制流,进行 Spectre-BTB 攻击。
+中的数据。通过在 SGX enclave 之外污染 enclave 的 BTB 和 RSB,改变 SGX
+enclave 中的控制流,将秘密数据泄露至 SGX 之外。
\subsection{MeltdownPrime 和 SpectrePrime}