8000 GitHub - lmu-plai/Kaibyo: Cats vs. Spectre: An Axiomatic Approach to Modeling Speculative Execution Attacks
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

lmu-plai/Kaibyo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kaibyo

Kaibyo is an extension of the Dat3M framework which allows to test software isolation of programs running on parametric microarchitectural models defined using the CAT language.

Requirements

  • Maven (to build the tool)
  • GCC 8.3.0 (to compile C programs to x86 assembly)

Installation

Download the z3 dependency

mvn install:install-file -Dfile=lib/z3-4.8.6.jar -DgroupId=com.microsoft -DartifactId="z3" -Dversion=4.8.6 -Dpackaging=jar

Set Dat3M's home, the path and shared libraries variables (replace the latter by DYLD_LIBRARY_PATH in MacOS)

export DAT3M_HOME=<Dat3M's root>
export PATH=$DAT3M_HOME/:$PATH
export LD_LIBRARY_PATH=$DAT3M_HOME/lib/:$LD_LIBRARY_PATH

To build the tool run

mvn clean install

Usage

The input program must be given as a .s file, i.e. x86 assembly code with Intel syntax (our examples for spectre PHT, STL and PSF can be found in DAT3M_HOME/benchmarks).

The microarchitecture must be defined as a CAT file (see DAT3M_HOME/cat for examples).

For checking software isolation run:

java -jar kaibyo/target/kaibyo-2.0.7-jar-with-dependencies.jar -input <program file> -cat <CAT file> [options]

Options include:

  • -unroll: unrolling bound for the BMC.
  • -entry: Name of the entry function (default main)
  • -sectet: Name of the variable containing the secret (default secret)
  • -branch_speculation: It enables branch speculation.
  • -branch_speculation_error: It only looks for isolation violations along a transient control flow.
  • -alias_speculation: It enables alias branch speculation.

Authors and Contact

Please feel free to contact us in case of questions or to send feedback.

About

Cats vs. Spectre: An Axiomatic Approach to Modeling Speculative Execution Attacks

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 77.4%
  • Assembly 12.2%
  • ANTLR 7.6%
  • C 2.1%
  • Shell 0.5%
  • Dockerfile 0.1%
  • Makefile 0.1%
0