summaryrefslogtreecommitdiff
path: root/chap
diff options
context:
space:
mode:
Diffstat (limited to 'chap')
-rw-r--r--chap/abs.tex8
-rw-r--r--chap/chap2.tex13
-rw-r--r--chap/chap3.tex22
-rw-r--r--chap/chap6.tex4
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{未来工作展望}