dedup est machina memory deduplication as an advanced ... · erik bosman, kaveh razavi, herbert bos...

68
Dedup Est Machina Memory Deduplication as an Advanced Exploitation Vector Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida

Upload: others

Post on 23-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

Dedup Est Machina

Memory Deduplicationas an Advanced Exploitation Vector

Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giuffrida

Page 2: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

Deduplication(software side-channel)

+Rowhammer

(hardware bug)

1

Page 3: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

Deduplication(software side-channel)

+Rowhammer

(hardware bug)

Exploit MS Edge without software bugs(from JavaScript)

1

Page 4: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

Deduplication

- leak heap & code pointer addresses

2

Page 5: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

Deduplication

- leak heap & code pointer addresses

+3.141592

+0.0

42.

1

NaN

JavaScript Array

2

Page 6: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

Deduplication

- leak heap & code pointer addresses

+3.141592

+0.0

42.

1

NaN

JavaScript Array chakra.dll

2

Page 7: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

Deduplication

- leak heap & code pointer addresses- create a fake object

3

Page 8: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

Deduplication

Rowhammer

- leak heap & code pointer addresses- create a fake object

- create reference to our fake object

3

Page 9: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

Deduplication

Rowhammer

- leak heap & code pointer addresses- create a fake object

- create reference to our fake object

3

Page 10: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

deduplication side-channel attack

physical memory attacker process

victim process

4

Page 11: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

deduplication side-channel attack

physical memory attacker process

victim process

4

Page 12: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

deduplication side-channel attack

physical memory attacker process

victim process

4

Page 13: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

deduplication side-channel attack

physical memory attacker process

victim process

4

Page 14: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

deduplication side-channel attack

physical memory attacker process

victim process

** * * *

* ***

* * * * * * ** *

* * * * * * ***

4

Page 15: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

deduplication side-channel attack

normal write

5

Page 16: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

deduplication side-channel attack

normal write

write

5

Page 17: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

deduplication side-channel attack

normal write

copy on write (due to deduplication)

write

*5

Page 18: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

deduplication side-channel attack

normal write

copy on write (due to deduplication)

write

copypage contents write

*5

Page 19: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

Can we generalize this to leaking arbitrary data, like an ASLR pointer or a password?

6

Page 20: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

Challenge 1:

The secret we want to leak does not span an entire page.

7

Page 21: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

turning a secret into a page

secret

8

Page 22: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

turning a secret into a page

known data

secret

secret page8

Page 23: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

Challenge 2:

The secret we want to leak has too much entropy to leak all at once.

9

Page 24: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #1: alignment probing

known data

secret

secret page10

Page 25: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #1: alignment probing

known data

secret

secret page10

Page 26: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #2: partial reuse

known data

secret

secret page11

Page 27: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #2: partial reuse

known data

secret

secret page11

Page 28: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

JIT function epilogue (MS Edge)

mov RCX,0x1c20 mov RAX, [code address] jmp RAX trap

trap trap trap trap trap trap ...trap trap trap trap trap trap

trap trap

12

Page 29: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

JIT function epilogue (MS Edge)

mov RCX,0x1c20 mov RAX, [code address] jmp RAX trap

trap trap trap trap trap trap

trap

trap trap trap trap trap trap

trap trap trap trap trap trap

trap trap trap trap trap

trap trap

12

Page 30: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

JIT function epilogue (MS Edge)

mov RCX,0x1c20 mov RAX, [code address] jmp RAX trap

trap trap trap trap trap trap

trap

trap trap trap trap trap trap

trap trap trap trap trap trap

trap trap trap trap trap

trap

12

Page 31: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

JIT function epilogue (MS Edge)

mov RCX,0x1c20 mov RAX, [code address] jmp RAX trap

trap trap trap trap trap trap

trap

trap trap trap trap trap trap

trap trap trap trap trap trap

trap trap trap trap trap

12

Page 32: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

But what if we can't leak part of the secret?

13

Page 33: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

birthday problem

14

Page 34: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

birthday problem

14

Page 35: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

birthday problem

14

Page 36: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

birthday problem

14

Page 37: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

birthday problem

14

Page 38: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

birthday problem

14

Page 39: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

birthday problem

14

Page 40: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

birthday problem

14

Page 41: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

birthday problem

14

Page 42: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

birthday problem

14

Page 43: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

birthday problem

14

Page 44: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

birthday problem

14

Page 45: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

birthday problem

14

Page 46: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #3: birthday heapspray

physical memory attacker memory

victim memory

15

Page 47: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #3: birthday heapspray

physical memory attacker memory

victim memory

15

Page 48: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #3: birthday heapspray

physical memory attacker memory

victim memory

15

Page 49: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #3: birthday heapspray

physical memory attacker memory

victim memory

15

Page 50: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #3: birthday heapspray

physical memory attacker memory

victim memory

15

Page 51: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #3: birthday heapspray

physical memory attacker memory

victim memory

15

Page 52: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #3: birthday heapspray

physical memory attacker memory

victim memory

15

Page 53: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #3: birthday heapspray

physical memory attacker memory

victim memory

15

Page 54: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #3: birthday heapspray

physical memory attacker memory

victim memory

15

Page 55: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #3: birthday heapspray

physical memory attacker memory

victim memory

15

Page 56: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

primitive #3: birthday heapspray

physical memory attacker memory

*victim memory

*

15

Page 57: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

pointer pivotting

arraydata

16

Page 58: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

pointer pivotting

arraydata

arrayheader

JavaScript Array

16

Page 59: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

pointer pivotting

arraydata

arrayheader

arrayheader

arraydata

JavaScript Array JavaScript Array

16

Page 60: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

pointer pivotting

arraydata

arrayheader

arrayheader

arraydata

JavaScript Array JavaScript Array

16

Page 61: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

pointer pivotting

arraydata

arrayheader

arrayheader

arraydata

JavaScript Array JavaScript Array

16

Page 62: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

rowhammer attack

DDR memory

rows

17

Page 63: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

rowhammer attack

DDR memory

rowactivation

17

Page 64: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

rowhammer attack

DDR memory

rowactivation

17

Page 65: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

rowhammer attack

DDR memory

rowactivation

17

Page 66: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

pointer pivotting

arraydata

arrayheader

arrayheader

arraydata

JavaScript Array JavaScript Array

18

Page 67: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

pointer pivotting

arraydata

arrayheader

arrayheader

arraydata

JavaScript Array JavaScript Array

18

Page 68: Dedup Est Machina Memory Deduplication as an Advanced ... · Erik Bosman, Kaveh Razavi, Herbert Bos and Cristiano Giurida. Deduplication (software side-channel) + Rowhammer (hardware

in short:

- Memory deduplication is a more powerfulside-channel than previously thought.

- Reliable browser exploitation usingrowhammer in JavaScript is possible.

(on Windows 10, MS Edge, without using any bugs)

> Disable-MMAgent -PageCombining

19