
Intel x86-64に対するマイクロアーキテクチャ的サイドチャネル攻撃(Prime+Probe、Flush+Reload、Flush+Flush、CacheBleed、Prime+Abortを含む)を実装したCツールキット。
マイクロアーキテクチャ・サイドチャネル攻撃は、プロセッサ内部コンポーネントの競合を利用してプロセス間で情報を漏洩させる。 理論上はこのような攻撃は単純であるが、 実際の実装は気難しく、 十分に文書化されていないプロセッサ機能や その他のドメイン固有の難解な知識についての深い理解を必要とする。 その結果、マイクロアーキテクチャ・サイドチャネル攻撃の研究には参入障壁が存在し、 この分野の発展や、既存ソフトウェアのこうした攻撃に対する耐性の分析を妨げている。
このリポジトリには、マイクロアーキテクチャ・サイドチャネル攻撃を実験するためのツールキットである Mastik が含まれている。Mastik は、公開されている攻撃および分析手法の実装を提供することを目的としている。 現在、Mastik は Intel x86-64 アーキテクチャ上で 6 つのサイドチャネル攻撃手法をサポートしている:
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をインストールするには、次を使用します:
$ make install
インストールディレクトリを変更するには、次を使用する:
$ make prefix=DIR install
使用例については、demo フォルダを参照してください。
Mastikは以下により支援されています: