Professional Documents
Culture Documents
Recon2015 06 Sophia D Antoine Exploiting Out of Order Execution
Recon2015 06 Sophia D Antoine Exploiting Out of Order Execution
Recon2015 06 Sophia D Antoine Exploiting Out of Order Execution
Out-of-Order-Execution
Processor Side Channels to Enable
Cross VM Code Execution
Sophia DAntoine
REcon 2015
The Cloud
Dynamic allocation
=> Reduces cost
wat
Hardware
Virtual
VM1 VM2 Client Master VM
Allocations
S R S R S R
Shared
Communication Medium Hardware
sophia.re/cache.pdf
Requirements:
Shared hardware
Dynamically allocated hardware resources
Co-Location with adversarial VMs or infected VMs
Instruction order
Results from instruction sets
VM VM VM VM
SMT Pipeline
Optimizes Core01 Core02 Executing
Shared Instructions
Hardware Processor From Foreign
Applications
=>
Synched store [X], 1 store [Y], 1
=>
Asynched store [X], 1
load r1, [Y] store [Y], 1
load r2, [X]
r1 = 0 r2 = 1
=>
Out of load r1, [Y] load r2, [X]
Order
store [X], 1 store [Y], 1
r1 = r2 = 0
Execution
if (r1 == 0 && r2 == 0)
count_OoOE ++;
Mfence:
x86 instruction full memory barrier
prevents memory reordering of any kind
order of 100 cycles per operation
mov dword ptr [_spin1], 0
mfence
THE PIPELINE
Processor
Compilation (Run)
Time Time
Processor
(Run)
Time
OoOE Execution
MultiCored
(MultiExecution
Processors)
Computers
[4, 5]
P1 P2 P3 P4
CPU1 CPU1
sophia.re/sender.py
sophia.re/receiver.py