From a2df7f968fc7c011bd67b33265bd1c722495f29a Mon Sep 17 00:00:00 2001 From: Iru Cai Date: Thu, 16 May 2019 14:31:04 +0800 Subject: upd --- chap/chap2.tex | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'chap/chap2.tex') 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} -- cgit v1.2.3