微架构侧信道攻击利用处理器内部组件的争用来在进程之间泄露信息。 虽然理论上此类攻击很直接, 但实际实现往往很棘手, 并且需要对文档匮乏的处理器特性 以及其他领域特定的冷门知识有深入理解。 因此,进入微架构侧信道攻击研究领域存在门槛, 这阻碍了该领域的发展,也阻碍了对现有软件抵御此类攻击的 韧性进行分析。
本仓库包含 Mastik,一个用于实验微架构侧信道攻击的工具包。Mastik 旨在提供已发表的攻击与分析技术的实现。 目前,Mastik 在 Intel x86-64 架构上支持六种侧信道攻击技术:
Mastik 遵循事实上的标准 Linux 安装流程。
如果系统具备所有必需的软件,
并且你想要默认配置,请使用:
$ ./configure && make && sudo make install
更多信息见下文。
对于核心功能,Mastik 不需要任何软件包。
然而,解析二进制文件中的符号的能力非常有用,
并且在 Linux 上需要构建软件包 binutils 和 libdwarf。
在 Mac OS X 上尚不支持调试符号。
Mastik 的 GUI 界面 doubloon
需要 Python 3 以及以下软件包:
wx、numpy、paramiko、matplotlib 和 tqdm。
安装方式取决于操作系统的类型。
Fedora:
$ sudo dnf install binutils-devel libdwarf-devel
Ubuntu:
$ sudo apt-get install binutils-dev libdwarf-dev libelf-dev
CentOS:
启用 PowerTools 仓库:
$ sudo dnf config-manager --set-enabled PowerTools
然后安装软件包:
$ sudo dnf install libdwarf binutils-devel elfutils-libelf-devel libdwarf-devel python3
要设置构建环境,请使用 configure 脚本。
要使用默认选项,请使用:
$ ./configure
该脚本接受多个标志来修改其行为。
下面列出了其中一些。
使用 ./configure --help 获取完整列表。
| 标志 | 描述 |
|---|---|
--help | 帮助信息 |
--prefix=PREFIX | 将文件安装到 PREFIX [/usr/local] |
--disable-symbols | 禁用对二进制文件中符号表的处理。同时移除对 binutils 和 libdwarf 的要求 |
--disable-debug-symbols | 禁用对二进制文件中调试符号的处理。移除对 libdwarf 的要求 |
--disable-doubloon | 不安装 doubloon。移除对 Python3 的要求 |
配置好构建环境后,使用以下命令构建 Mastik:
$ make
Mastik'i installimiseks kasutage:
$ make install
要更改安装目录,请使用:
$ make prefix=DIR install
有关用法示例,请查看 demo 文件夹。
Mastik 获得以下支持: