Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

TEApot(Transient Execution Attack pot) is a project used to evaluate whether your system is affected by Meltdown and Spectre. My goal is to build a easy-to-use(hard to implement) and configurable transient attack test suite.

License

NotificationsYou must be signed in to change notification settings

github-3rr0r/TEApot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TEApot(Transient Execution Attack pot) is a project used to evaluate whether your system is affected by Meltdown and Spectre. My goal is to build a easy-to-use(hard to implement) and configurable transient attack test suite.

This project is mainly based on projectTransient Fail developed byIAIK. More information will be found on their paperA Systematic Evaluation of Transient Execution Attacks and Defenses.

Features

Supported Platform

Operating System

Linux with gcc and other dependent libraries.

Developed on 5.4.0-47-generic #51~18.04.1-Ubuntu.

CPU

x86 and arm64 are supported.

Supported Vulnerablities

Meltdown-like and Spectre-like vulnerabilities, more information will be also found on paperA Systematic Evaluation of Transient Execution Attacks and Defenses.

This vulnerablities are supported:

Systematic type nameCVEDescription
Meltdown_AC--
Meltdown_BR--
Meltdown_DE--
Meltdown_GPCVE-2018-3640Spectre V3a, rogue system register read
Meltdown_NMCVE-2018-3665Lazy FP
Meltdown_PCVE-2018-3615/CVE-2018-3620/CVE-2018-3646Foreshadow, L1 terminal fault
Meltdown_PK--
Meltdown_RWSpectre V1.2, write to page with read-only flag
Meltdown_SS--
Meltdown_UD--
Meltdown_USCVE-2017-5754Meltdown, rogue data cache load
Spectre_BTBCVE-2017-5715Spectre V2, branch target injection
Spectre_PHTCVE-2017-5753Spectre V1, bounds check bypass
Spectre_RSB--
Spectre_STLCVE-2018-3693/CVE-2018-3639Spectre V1.1, NG and V4, speculative store bypass

Configurable features

Select vulnerbilities

This test suite allows you to select the vulnerabilities with option "-v".

Default option is "all" for testing all vulnerabilities.

Output valid PoCs

You can enable and specify a markdown file as output of valid PoCs with option "-o"

Show simple options

You can show simple supported vulnerablities options with option "-s"

Simple result output

You can use option "-m" in test mode, simple result output will be available.

0 means vulnerable, 1 means not vulnerable, other values mean error or not tested.

Other details

You can use option "-h" to show all help messages or read the last part of this document.

Repository Structure

  • lib: Global libraries;
  • libcache: Cache operation libraries;
  • libpte:PTEditor developed by Michael Schwarz that allows manipulation of paging structures via a Linux kernel module;
  • meltdown: PoC of Meltdown-like vulnerabilities;
  • spectre: PoC of Spectre-like vulnerabilities;
  • Makefile: Makefile of this test suite;
  • run.sh: Main entry of this test suite;
  • README.md: The file you are reading!

Usage

  1. Some preparation
sudo apt-get install libelf-dev build-essential pkg-config bison flex libssl-dev libelf-dev bcsudo apt-get purge libc6-devsudo apt-get install libc6-devsudo apt-get install libc6-dev-i386sudo apt-get install build-essentialsudo apt-get install seccompsudo apt-get install libseccomp-devsudo apt-get install zsh
  1. Clone this repository
git clone https://github.com/Mashiro1995/TEApot.git
  1. Make
make
  1. Grant execution permissions and run!
chmod +x run.sh./run.sh# notice that you need input your password for kernel operation during this test
  1. Run options
Usage
Test mode                    :  run.sh [-options]Generation mode              :  run.sh [-options] -g [output-path]Test all vulnerablities      :  run.sh [-o filename] [-m]Test specific vulnerablities :  run.sh [-v "list of vulnerablities"] [-o filename] [-m]Show usage :                    run.sh -hShow supported vulnerablities:  run.sh -l [-m]
Modes
Auto mode will test all vulnerablities covered in this test suite.In manual mode, you can specify vulnerablities to be tested with options -v and followed by a list of vulnerablities.
Options
-g              generation mode, specific path to save specific PoCs-o              enable and specify a markdown file as output of valid PoCs-v              list of vulnerablities to be tested. If not specified, all vuls will be test-h              show usage-l              show supported vulnerablities-s              show simple supported vulnerablities options-t              specific timeout time, default 120s-m              used in test mode, simple result output will be available.                 0 means vulnerable, 1 means not vulnerable, other values mean error or not tested.
Valid args of -v option

You can select combination of vulnerabilities with following inputs:

OptionsVulnerabilities to be tested
allAll vulnerabilities
meltdownAll Meltdown vulnerabilities
spectreAll Spectre vulnerabilities
spectre_btbAll Spectre_BTB vulnerabilities
spectre_phtAll Spectre_PHT vulnerabilities
spectre_rsbAll Spectre_RSB vulnerabilities

You can also use multi_parameters to select specific vulnerabilities and separate them with spaces:

OptionsVulnerabilities to be testedOptionsVulnerabilities to be tested
acMeltdown_ACbtb_sa_ipSpectre_BTB_sa_ip
brMeltdown_BRbtb_sa_oopSpectre_BTB_sa_oop
deMeltdown_DEbtb_ca_ipSpectre_BTB_ca_ip
gpMeltdown_GPbtb_ca_oopSpectre_BTB_ca_oop
nmMeltdown_NMpht_sa_ipSpectre_PHT_sa_ip
pMeltdown_Ppht_sa_oopSpectre_PHT_sa_oop
pkMeltdown_PKpht_ca_ipSpectre_PHT_ca_ip
rwMeltdown_RWpht_ca_oopSpectre_PHT_ca_oop
ssMeltdown_SSrsb_sa_ipSpectre_RSB_sa_ip
udMeltdown_UDrsb_sa_oopSpectre_RSB_sa_oop
usMeltdown_USrsb_ca_ipSpectre_RSB_ca_ip
rsb_ca_oopSpectre_RSB_ca_oop
stlSpectre_STL

Examples:

# Examples:run.sh# Test all vulnerabilities.run.sh -m# Test all vulnerabilities and save simple result to result.txt.run.sh -v"meltdown spectre_btb" -o codes# Test all Meltdown and all Spectre_BTB type vulnerabilities, and save successful PoCs to path "codes".run.sh -v"meltdown spectre_btb" -o codes -m# Test all Meltdown and all Spectre_BTB type vulnerabilities, save simple result to result.txt, and successful PoCs to path "codes".run.sh -v"meltdown spectre_btb" -g codes# PoCs of Meltdown and all Spectre_BTB type vulnerabilities will be saved to path "codes" with out test.

About

TEApot(Transient Execution Attack pot) is a project used to evaluate whether your system is affected by Meltdown and Spectre. My goal is to build a easy-to-use(hard to implement) and configurable transient attack test suite.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp