diff options
Diffstat (limited to 'chap')
-rw-r--r-- | chap/abs.tex | 8 | ||||
-rw-r--r-- | chap/chap2.tex | 13 | ||||
-rw-r--r-- | chap/chap3.tex | 22 | ||||
-rw-r--r-- | chap/chap6.tex | 4 |
4 files changed, 24 insertions, 23 deletions
diff --git a/chap/abs.tex b/chap/abs.tex index 6ce4199..8131207 100644 --- a/chap/abs.tex +++ b/chap/abs.tex @@ -12,7 +12,7 @@ 本文基于 gem5 模拟平台,设计了一种用于防御 Spectre 攻击的微体系结构,并 对其进行评估。主要工作内容如下: - \begin{enumerate} + \begin{itemize} \item 调研现有的侧信道攻击、Meltdown 和 Spectre 攻击技术,深入分析这 些攻击技术的原理。 \item 调研现有的 Meltdown 和 Spectre 防御方案,分析这些方案的设计思 @@ -26,7 +26,7 @@ 的验证程序进行测试,表明设计的微体系结构满足本文的安全特性。用 SPEC CPU2006 进行性能评测,平均性能开销为 8.5\%,优于只使用动态信息流追 踪检测技术或只使用 InvisiSpec 的模型的性能。 - \end{enumerate} + \end{itemize} \end{cabstract} \begin{eabstract} @@ -46,7 +46,7 @@ This thesis designs a microarchitecture to defend against Spectre attack, based on the gem5 simulation platform, and evaluates the design. The contribution of this thesis is as follows: - \begin{enumerate} + \begin{itemize} \item Investigate on current side-channel attack, Meltdown and Spectre attack, and analyze how these attacks work \item Investigate on current defenses of Meltdown and Spectre @@ -64,7 +64,7 @@ feature. Evaluated with SPEC CPU2006, this microarchitecture has an average performance overhead of 8.5\%, better than using DIFT or InvisiSpec only. - \end{enumerate} + \end{itemize} \end{eabstract} % vim:ts=4:sw=4 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} diff --git a/chap/chap3.tex b/chap/chap3.tex index 90e8133..d888b48 100644 --- a/chap/chap3.tex +++ b/chap/chap3.tex @@ -90,7 +90,7 @@ Webkit 在数组访问中使用索引掩码(index masking)\supercite{webkit} 在数组大小范围内。 % poison value -Webkit 还使用了指针投毒(pointer poisoning)\supercite{webkit}的方式, +Webkit 还使用了指针投毒(pointer poisoning)\supercite{webkit}的方法, 它考虑分支用于做类型检查的情形。对于不同类型的数据,Webkit 将这种类型的 指针和一个类型对应的值异或,要使用的时候再异或这个值得到指向数据的指针, 如果类型不匹配,则得到的指针会指向一个程序无法访问的内存区域。通过这种 @@ -408,11 +408,11 @@ Meltdown 和 Spectre 提供了新了构造数据通道的方式。通过利用 预测错误,使处理器沿着攻击者选择的路径推测式执行,这在受害者中形成了数 据通道。因此,构建数据通道有三种方法: -\begin{enumerate} +\begin{itemize} \item 数据通道在受害者的代码中已经存在,例如对 RSA 的攻击 \item 攻击者编写了这个数据通道,如 Meltdown \item 攻击者从受害者已有的代码中合成数据通道 -\end{enumerate} +\end{itemize} 这个框架可以用于除缓存状态之外的侧通道,描述通过分支预测器或 TLB 状态造 成的数据泄露。在未来,可能有更多种类的构造数据通道的方法。 @@ -447,7 +447,7 @@ DAWG 的目标是阻止任何攻击者和受害者安全域之间的基于缓存 域对应的安全策略。 在 zsim 模拟器中使用 SPEC CPU2006, PARSEC, GAPBS 进行模拟,相对于 -Intel CAT,在不同的评测程序和划分方式下,大多数程序性能下降为 4\%\~7\%. +Intel CAT,在不同的评测程序和划分方式下,大多数程序性能下降为 4\% 至 7\%. \subsubsection{Context-Sensitive Fencing} @@ -485,6 +485,12 @@ Decoding (CSD)\supercite{context-sensitive-decoding},一种微码翻译机制 的扩展,用于动态按需自定义微操作指令流。CSF 利用 CSD,在微指令流中注入 fence 等微码,阻止不安全指令的推测式执行。 +CSD 是一种根据执行上下文,把指令翻译为不同的自定义的微码的技术。操作系 +统、运行时系统等软件可以通过配置 MSR,设定不同的微码翻译模式。它可以在 +不重新编译的情况下,使不安全的程序变为安全的程序,把优化性能的代码变为 +功耗优化的代码。系统软件可以利用已有的微码更新功能将自定义的微码更新至 +寄存器。CSD 可以通过多种事件触发自定义微码翻译模式。 + CSF 由以下几个关键部件组成: \begin{itemize} \item 微码自定义机制 CSD:使处理器精确地在指令流中插入 fence,减轻推测 @@ -645,7 +651,7 @@ X 对应的一列将会重置,意味着待发射指令和 X 的之间的安全 险过滤器,检测这些指令中安全的指令。在这些攻击中,Spectre 组件的执行中 包含两个特殊的访存指令,记为 A 和 B,它们有如下的行为: -\begin{enumerate} +\begin{itemize} \item A 推测式地访问敏感数据,B 推测式地访问攻击者和受害者共享的内存区 域,用于构造受害者和攻击者之间的侧信道。通常秘密数据的内存区域和用于 构造侧信道的共享内存区域在不同的内存页,因此它们访问不同的页。 @@ -655,17 +661,17 @@ X 对应的一列将会重置,意味着待发射指令和 X 的之间的安全 要 B 在缓存中不命中。 \item 指令 B 依赖于指令 A,A的结果用于计算共享内存区域的索引。这种设计 也是攻击者推断处秘密数据要点。 -\end{enumerate} +\end{itemize} 在 TPBuf 过滤器中,以上行为模式称为 S-pattern. 如果观察到推测式执行的 指令序列具有以下特征,则认为它具有 S-pattern: -\begin{enumerate} +\begin{itemize} \item 至少有两个指令 A 和 B 访问不同的内存页 \item 指令 B 导致一级缓存缺失 \item B 依赖于 A \item A 和 B 之间可能有多个指令 -\end{enumerate} +\end{itemize} TPBuf 它记录了所有推测式的存储器访问请求,当一个新的请求在一级缓存中缺 失时,其页地址将会和 TPBuf 中其他访问的页地址比较,如果有至少一个访问访 diff --git a/chap/chap6.tex b/chap/chap6.tex index cedcc8b..2b40f0d 100644 --- a/chap/chap6.tex +++ b/chap/chap6.tex @@ -10,7 +10,7 @@ 升,是一个值得研究的问题。只通过软件的修改难以防御多种类型的 Spectre 攻击,因此需要通过改进微架构的设计,以解决 Spectre 攻击的问题。本文主 要工作如下: -\begin{enumerate} +\begin{itemize} \item 首先调研已有的 Meltdown 和 Spectre 的攻击变体,包括 对 Meltdown 和 Spectre 的分类,各类攻击的原理,和它们的利用方式。 \item 调研已有的 Meltdown 和 Spectre 的防御方法,包括软件防御、硬件防御 @@ -25,7 +25,7 @@ 的性能开销,使用 SPEC CPU2006 评测了这种微架构的性能,和原有的不安全 的处理器相比,性能开销为 8.5\%,优于只用 InvisiSpec 执行推测式执行的 指令或阻止检测出的不安全指令的方法。 -\end{enumerate} +\end{itemize} \section{未来工作展望} |