
Intel x86-64에서 Prime+Probe, Flush+Reload, Flush+Flush, CacheBleed 및 Prime+Abort를 포함한 마이크로아키텍처 부채널 공격을 구현하는 C 툴킷입니다.
마이크로 아키텍처 부채널 공격은 프로세서 내부 구성 요소의 경합을 악용하여 프로세스 간에 정보를 유출합니다. 이론상 이러한 공격은 간단하지만, 실제 구현은 까다로운 경향이 있으며 제대로 문서화되지 않은 프로세서 기능과 기타 도메인 특화된 난해한 지식에 대한 상당한 이해를 요구합니다. 결과적으로 마이크로 아키텍처 부채널 공격 연구에 진입하는 데에는 장벽이 존재하며, 이는 해당 분야의 발전과 기존 소프트웨어의 이러한 공격에 대한 복원력 분석을 저해합니다.
이 저장소에는 마이크로 아키텍처 부채널 공격을 실험하기 위한 툴킷인 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 paigaldamiseks kasutage:
$ make install
설치 디렉터리를 변경하려면 다음을 사용하십시오:
$ make prefix=DIR install
사용 예시는 demo 폴더를 참고하세요.
Mastik은 다음의 지원을 받습니다: