
Kit de herramientas en C que implementa ataques de canal lateral microarquitectónicos en Intel x86-64, incluidos Prime+Probe, Flush+Reload, Flush+Flush, CacheBleed y Prime+Abort.
Los ataques de canal lateral microarquitectónicos explotan la contención en componentes internos del procesador para filtrar información entre procesos. Aunque en teoría dichos ataques son sencillos, las implementaciones prácticas tienden a ser quisquillosas y requieren una comprensión significativa de características del procesador mal documentadas y otros conocimientos arcanos específicos del dominio. En consecuencia, existe una barrera de entrada al trabajo sobre ataques de canal lateral microarquitectónicos, lo que obstaculiza el desarrollo del área y el análisis de la resiliencia del software existente frente a dichos ataques.
Este repositorio contiene Mastik, un kit de herramientas para experimentar con ataques de canal lateral microarquitectónicos. Mastik tiene como objetivo proporcionar implementaciones de técnicas de ataque y análisis publicadas. Actualmente, Mastik admite seis técnicas de ataque de canal lateral en la arquitectura Intel x86-64:
Mastik sigue el proceso de instalación estándar de facto de Linux.
Si el sistema tiene todo el software requerido y
desea la configuración predeterminada, use:
$ ./configure && make && sudo make install
Consulte a continuación para obtener más información.
Para el funcionamiento básico, Mastik no requiere ningún paquete.
Sin embargo, la capacidad de resolver símbolos en binarios es extremadamente útil,
y requiere los paquetes de compilación binutils y libdwarf en Linux.
En Mac OS X todavía no hay soporte para símbolos de depuración.
La interfaz gráfica de Mastik doubloon
requiere Python 3 con los siguientes paquetes:
wx, numpy, paramiko, matplotlib y tqdm.
La instalación depende de la variante del sistema operativo.
Fedora:
$ sudo dnf install binutils-devel libdwarf-devel
Ubuntu:
$ sudo apt-get install binutils-dev libdwarf-dev libelf-dev
CentOS:
Habilite el repositorio PowerTools:
$ sudo dnf config-manager --set-enabled PowerTools
Luego instale los paquetes:
$ sudo dnf install libdwarf binutils-devel elfutils-libelf-devel libdwarf-devel python3
Para configurar el entorno de compilación, use el script configure.
Para usar las opciones predeterminadas, use:
$ ./configure
El script acepta varias opciones para modificar su comportamiento.
Algunas de ellas se enumeran a continuación.
Use ./configure --help para obtener una lista completa.
| Opción | Descripción |
|---|---|
--help | Mensaje de ayuda |
--prefix=PREFIX | Instalar archivos en PREFIX [/usr/local] |
--disable-symbols | Deshabilita el manejo de tablas de símbolos en binarios. Además, elimina el requisito de binutils y libdwarf |
--disable-debug-symbols | Deshabilita el manejo de símbolos de depuración en binarios. Elimina el requisito de libdwarf |
--disable-doubloon | No instala doubloon. Elimina el requisito de Python3 |
Después de configurar el entorno de compilación, compile Mastik usando:
$ make
Para instalar Mastik, use:
$ make install
Para cambiar el directorio de instalación use:
$ make prefix=DIR install
Para ver un ejemplo de uso, consulta la carpeta de demostración.
Mastik cuenta con el apoyo de: