
Набор инструментов на C, реализующий микроархитектурные атаки по побочным каналам на Intel x86-64, включая Prime+Probe, Flush+Reload, Flush+Flush, CacheBleed и Prime+Abort.
Микроархитектурные атаки по побочным каналам используют конкуренцию за внутренние компоненты процессора для утечки информации между процессами. Хотя в теории такие атаки просты, практические реализации, как правило, капризны и требуют значительного понимания плохо документированных возможностей процессора и других узкоспециализированных эзотерических знаний. Следовательно, существует барьер для входа в работу над микроархитектурными атаками по побочным каналам, что препятствует развитию этой области и анализу устойчивости существующего программного обеспечения к таким атакам.
Этот репозиторий содержит Mastik — инструментарий для экспериментов с микроархитектурными атаками по побочным каналам. Mastik стремится предоставить реализации опубликованных техник атак и анализа. В настоящее время Mastik поддерживает шесть техник атак по побочным каналам на архитектуре Intel x86-64:
Mastik следует де-факто стандартному процессу установки в Linux.
Если в системе есть всё необходимое программное обеспечение и
вы хотите использовать конфигурацию по умолчанию, используйте:
$ ./configure && make && sudo make install
Дополнительную информацию см. ниже.
Для основной работы Mastik не требует никаких пакетов.
Однако возможность разрешения символов в бинарных файлах чрезвычайно полезна
и требует наличия пакетов для сборки binutils и libdwarf в Linux.
В Mac OS X поддержки отладочных символов пока нет.
Графический интерфейс Mastik 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 поддерживается: