Exploiting Speculative Execution through Port Contention
The 2018 Shock
Meltdown Leaks Kernel Memory
Spectre leaks arbitrary memory outside bounds and even sandboxes
Detour to a quick crash course on Meltdown and Spectre
Genesis
Another disadvantage with Cache side channels
Idea
SMoTher
SMoTher Differentiability
Victim: Either popcnt (port 1) or ror (port 6)
Attacker: Contending and timing port 1
Victim: Either cmovz (port 6) or popcnt (port 1)
Attacker: Contending and timing port 6 using bts
Pitfalls
SMoTherSpectre
Key Assumptions
Gadgets
BTI Gadgets
SMoTher Gadgets
Real World OpenSSH attack
This calls bzero function using a volatile pointer
Chosen BTI gadget
This ins checks if 8th bit is set in address location within (rdi) - secret
This code times the addl and checks for port contention with sub
Secret
Mitigations