octopus/README.md
2022-01-27 15:37:10 +01:00

56 lines
1.3 KiB
Markdown

OCTOPUS
---
Samuel AUBERTIN - EURECOM - 2022
![SPECTRE Octopus Logo](logo.png "SPECTRE Octopus Logo")
**OCTOPUS** is a [Spectre](https://spectreattack.com/spectre.pdf) V1 (_Bounds Check Bypass_) + V2 (_Branch Target Injection_) compiler flag tester.
It measures the success rate of the attacks using different compilers:
- GCC
- CLANG
And compilation/linking flags such as:
- Optimisation levels (```-O```)
- Static linking
- RETPOLINE
## Dependencies
- ```clang``` and ```lld```
- ```gcc```
- ```sftp```
- ```uuid```
- The libC static symbols ```glibc-static```
## Execution
```make```
### Build only
```make build```
## Results aggregation
Results are automatically uploaded to a server with ```sftp``` using a dedicated account.
Here is an exhaustive list of the data sent:
- CPU model name and microcode version.
- Kernel version and compilation date.
- GCC and clang versions.
- The list of mitigations enabled at runtime.
- The cache timings of the processor computed by the ```calibrate_threshold()``` function.
- Each spectre execution success rate.
**NONE** of this data will be used for anyhting else except this experiment.
## Sources
- [ErikAugust gist](https://gist.github.com/ErikAugust/724d4a969fb2c6ae1bbd7b2a9e3d4bb6)
- [genua GmbH PoC](https://github.com/genua/meltdown)