Skip to content

Hands on with side-channels: a tutorial on covert-channels built using shared CPU resources. Three different covert-channel implementations based on Flush+Reload and Prime+Probe (L1, LLC) side-channels. Also, some tools and libraries.

Notifications You must be signed in to change notification settings

yshalabi/covert-channel-tutorial

Repository files navigation

Overview

This repo contains a variety of software useful to those researching covert-channels.

Building repo

dockerized build

git clone https://github.com/yshalabi/covert-channel-tutorial.git && cd covert-channel-tutorial
docker build -t compile .
docker run -v `pwd`/cc:/isca19/bins compile

cmake build

git clone https://github.com/yshalabi/covert-channel-tutorial.git && cd covert-channel-tutorial
mkdir build
cd build
cmake ..
make

covert-channel implementations

Flush+Reload

Running the flush+reload

./fr-send FILE
./fr-recv FILE

L1D Prime+Probe

Running the l1d prime+probe

# Y,X are sibling threads
taskset -c Y ./pp-l1d-send
taskset -c X ./pp-l1d-recv

LLC Prime+Probe

Running the LLC prime+probe (chat mode)

# X is a range of cores on the same socket
taskset -c X /pp-llc-send
taskset -c X /pp-llc-recv

To run the LLC prime+probe in benchmark mode:
Specify option -b to both reader and sender and launch reader first. OR run

./pp-llc-benchmark.py

Sources

This main pieces of this repository are three covert channel implementations. The implementations and their sources:

About

Hands on with side-channels: a tutorial on covert-channels built using shared CPU resources. Three different covert-channel implementations based on Flush+Reload and Prime+Probe (L1, LLC) side-channels. Also, some tools and libraries.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published