2022-01-22 15:04:17 +01:00
OCTOPUS
---
2022-01-22 15:09:33 +01:00
Samuel AUBERTIN - EURECOM - 2022
2022-01-22 15:04:17 +01:00
![SPECTRE Octopus Logo ](logo.png "SPECTRE Octopus Logo" )
2022-01-22 15:09:33 +01:00
**OCTOPUS** is a [Spectre v2 ](https://spectreattack.com/spectre.pdf ) (_Branch Target Injection_) compiler flag tester for [CVE 2017-5715 ](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5715 ).
2022-01-22 15:04:17 +01:00
2022-01-23 19:37:24 +01:00
It measures the success rate of the same attack using different compilers:
- GCC
- CLANG
And compilation/linking flags such as:
2022-01-22 15:09:33 +01:00
- Optimisation levels (```-O```)
- Static linking
2022-01-23 19:37:24 +01:00
- RETPOLINE
2022-01-22 15:09:33 +01:00
## Dependencies
2022-01-22 15:04:17 +01:00
- ```clang```
2022-01-23 19:37:24 +01:00
- ```gcc```
- ```sftp```
- ```uuid```
- The libC static symbols ```glibc-static```
2022-01-22 15:04:17 +01:00
2022-01-22 15:09:33 +01:00
## Execution
2022-01-22 15:04:17 +01:00
```make```
2022-01-22 15:09:33 +01:00
## Results aggregation
2022-01-22 15:04:17 +01:00
2022-01-23 19:37:24 +01:00
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.
- The kernel compilation flag ```CONFIG_RETPOLINE```.
- 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.
2022-01-22 15:09:33 +01:00
## Sources
- [ErikAugust gist ](https://gist.github.com/ErikAugust/724d4a969fb2c6ae1bbd7b2a9e3d4bb6 )
- [genua GmbH PoC ](https://github.com/genua/meltdown )