Git Product home page Git Product logo

1004556495 / stt Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cwfletcher/stt

0.0 0.0 0.0 24.97 MB

License: BSD 3-Clause "New" or "Revised" License

Python 17.29% Shell 0.14% C 3.89% C++ 76.27% Makefile 0.17% CMake 0.23% M4 0.22% SWIG 0.01% sed 0.01% HTML 0.43% VBA 0.01% Objective-C 0.01% Scala 0.05% Assembly 1.11% Awk 0.01% Perl 0.11% Emacs Lisp 0.01% Java 0.01% Roff 0.03% Vim Script 0.01%

stt's Introduction

Speculative Taint Tracking (STT)

1. About STT

Speculative taint tracking (STT) is a hardware defense mechanism for blocking all types of speculative execution attacks in modern processors. All details can be found in our MICRO'19 paper here. Here is a sample format for citing our work:

@inproceedings{yu2019stt,
  title={Speculative Taint Tracking (STT) A Comprehensive Protection for Speculatively Accessed Data},
  author={Yu, Jiyong and Yan, Mengjia and Khyzha, Artem and Morrison, Adam and Torrellas, Josep and Fletcher, Christopher W},
  booktitle={Proceedings of the 52nd Annual IEEE/ACM International Symposium on Microarchitecture},
  pages={954--968},
  year={2019}
}

2. Implementation

We implement STT using Gem5 simulator. This is built on an early version of Gem5 (commit:38a1e23). To make the simulation close to a commodity processor, we use Gem5's o3 processor. The major changes are:

  • add taint tracking logic to track all tainted data
  • add delay logic for handling explicit channels (memory instructions)
  • add delay logic for handling implicit channels (branch prediction, memory speculation, ld-st forwarding)

3. Usage

1) Follow the steps for building Gem5 executable.

How to use Gem5 can be found here.

2) We add the following configurations for STT:

  • --threat_model [string]: different threat models

    • UnsafeBaseline: unmodified out-of-order processor without protection
    • Spectre: Spectre threat model (covering control-flow speculation)
    • Futuristic: Futuristic threat model (covering all types speculation, exceptions, interrupts)
  • --needsTSO [bool]: configure the consistency model

    • True: use Total Store Ordering (TSO) model
    • False: use Relaxed Consistency (RC) model
  • --STT [int]: configure STT

    • 0: disable STT (in this case, the defense scheme blocks all speculative transmitters)
    • 1: enable STT
  • --implicit_channel [int]: configure implicit channel protection

    • 0: ignore implicit channels
    • 1: enable protection against implicit channels

3) Sample scripts

We have a few sample scripts in './sample_scripts'.

stt's People

Contributors

jiyongyu avatar cwfletcher avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.