
C-Toolkit zur Implementierung mikroarchitektonischer Seitenkanalangriffe auf Intel x86-64, einschließlich Prime+Probe, Flush+Reload, Flush+Flush, CacheBleed und Prime+Abort.
Mikroarchitektonische Seitenkanalangriffe nutzen Konkurrenz um interne Komponenten des Prozessors aus, um Informationen zwischen Prozessen zu leaken. Obwohl solche Angriffe in der Theorie unkompliziert sind, neigen praktische Implementierungen dazu, heikel zu sein und erfordern ein erhebliches Verständnis schlecht dokumentierter Prozessorfunktionen und anderem domänenspezifischen arkane Wissen. Folglich gibt es eine Einstiegshürde für die Arbeit an mikroarchitektonischen Seitenkanalangriffen, was die Entwicklung des Bereichs und die Analyse der Widerstandsfähigkeit bestehender Software gegen solche Angriffe behindert.
Dieses Repository enthält Mastik, ein Toolkit zum Experimentieren mit mikroarchitektonischen Seitenkanalangriffen. Mastik zielt darauf ab, Implementierungen veröffentlichter Angriffs- und Analysetechniken bereitzustellen. Derzeit unterstützt Mastik sechs Seitenkanalangriffstechniken auf der Intel x86-64-Architektur:
Mastik folgt dem De-facto-Standard-Linux-Installationsprozess.
Wenn das System alle erforderlichen Softwarekomponenten besitzt und
Sie die Standardkonfiguration wünschen, verwenden Sie:
$ ./configure && make && sudo make install
Weitere Informationen finden Sie unten.
Für den Kernbetrieb benötigt Mastik keine Pakete.
Allerdings ist die Fähigkeit, Symbole in Binärdateien aufzulösen, äußerst nützlich
und erfordert die Build-Pakete binutils und libdwarf unter Linux.
Unter Mac OS X gibt es noch keine Unterstützung für Debugging-Symbole.
Die Mastik-GUI-Schnittstelle doubloon
erfordert Python 3 mit den folgenden Paketen:
wx, numpy, paramiko, matplotlib und tqdm.
Die Installation hängt von der Variante des Betriebssystems ab.
Fedora:
$ sudo dnf install binutils-devel libdwarf-devel
Ubuntu:
$ sudo apt-get install binutils-dev libdwarf-dev libelf-dev
CentOS:
Aktivieren Sie das PowerTools-Repository:
$ sudo dnf config-manager --set-enabled PowerTools
Installieren Sie dann die Pakete:
$ sudo dnf install libdwarf binutils-devel elfutils-libelf-devel libdwarf-devel python3
Um die Build-Umgebung einzurichten, verwenden Sie das Skript configure.
Um die Standardoptionen zu verwenden, verwenden Sie:
$ ./configure
Das Skript akzeptiert mehrere Flags, um sein Verhalten zu ändern.
Einige davon sind unten aufgeführt.
Verwenden Sie ./configure --help für eine vollständige Liste.
| Flag | Beschreibung |
|---|---|
--help | Hilfemeldung |
--prefix=PREFIX | Dateien in PREFIX installieren [/usr/local] |
--disable-symbols | Deaktiviert die Behandlung von Symboltabellen in Binärdateien. Entfernt außerdem die Anforderung für binutils und libdwarf |
--disable-debug-symbols | Deaktiviert die Behandlung von Debug-Symbolen in Binärdateien. Entfernt die Anforderung für libdwarf |
--disable-doubloon | doubloon nicht installieren. Entfernt die Anforderung für Python3 |
Nach dem Konfigurieren der Build-Umgebung bauen Sie Mastik mit:
$ make
Um Mastik zu installieren, verwenden Sie:
$ make install
Um das Installationsverzeichnis zu ändern, verwenden Sie:
$ make prefix=DIR install
Ein Beispiel für die Verwendung finden Sie im Demo-Ordner.
Mastik wird unterstützt von: