+ All Categories
Home > Education > DieHarder (CCS 2010, WOOT 2011)

DieHarder (CCS 2010, WOOT 2011)

Date post: 18-Dec-2014
Category:
Upload: emery-berger
View: 299 times
Download: 0 times
Share this document with a friend
Description:
Heap-based attacks depend on a combination of memory management errors and an exploitable memory allocator. Many allocators include ad hoc countermeasures against particular exploits, but their effectiveness against future exploits has been uncertain.This paper presents the first formal treatment of the impact of allocator design on security. It analyzes a range of widely-deployed memory allocators, including those used by Windows, Linux, FreeBSD, and OpenBSD, and shows that they remain vulnerable to attack. It then presents DieHarder, a new allocator whose design was guided by this analysis. DieHarder provides the highest degree of security from heap-based attacks of any practical allocator of which we are aware, while imposing modest performance overhead. In particular, the Firefox web browser runs as fast with DieHarder as with the Linux allocator.
59
Gene Novark & Emery Berger University of Massachusetts, Amherst DIEHARDER: SECURING THE HEAP [originally presented at CCS 2011]
Transcript
Page 1: DieHarder (CCS 2010, WOOT 2011)

UNIVERSITY  OF  MASSACHUSETTS,  AMHERST    •    Department  of  Computer  Science  

Gene  Novark  &  Emery  Berger  University  of  Massachusetts,  Amherst  

DIEHARDER:  SECURING  THE  HEAP    

[originally  presented  at  CCS  2011]  

Page 2: DieHarder (CCS 2010, WOOT 2011)

UNIVERSITY  OF  MASSACHUSETTS,  AMHERST    •    Department  of  Computer  Science  

DieHard:  ProbabilisFc  Memory  Safety  for  C/C++  Programs  [PLDI  2005]  

Direct  inspira4on  for  Windows  7’s  Fault-­‐Tolerant  Heap  (2009)  

Page 3: DieHarder (CCS 2010, WOOT 2011)

UNIVERSITY  OF  MASSACHUSETTS,  AMHERST    •    Department  of  Computer  Science  

DieHard:  ProbabilisFc  Memory  Safety  for  C/C++  Programs  [PLDI  2005]  

Direct  inspira4on  for  Windows  7’s  Fault-­‐Tolerant  Heap  (2009)  

Page 4: DieHarder (CCS 2010, WOOT 2011)
Page 5: DieHarder (CCS 2010, WOOT 2011)
Page 6: DieHarder (CCS 2010, WOOT 2011)
Page 7: DieHarder (CCS 2010, WOOT 2011)
Page 8: DieHarder (CCS 2010, WOOT 2011)
Page 9: DieHarder (CCS 2010, WOOT 2011)
Page 10: DieHarder (CCS 2010, WOOT 2011)
Page 11: DieHarder (CCS 2010, WOOT 2011)
Page 12: DieHarder (CCS 2010, WOOT 2011)
Page 13: DieHarder (CCS 2010, WOOT 2011)
Page 14: DieHarder (CCS 2010, WOOT 2011)

14  

Page 15: DieHarder (CCS 2010, WOOT 2011)

15  

Page 16: DieHarder (CCS 2010, WOOT 2011)

16  

Page 17: DieHarder (CCS 2010, WOOT 2011)

17  

Page 18: DieHarder (CCS 2010, WOOT 2011)
Page 19: DieHarder (CCS 2010, WOOT 2011)
Page 20: DieHarder (CCS 2010, WOOT 2011)

20  

Page 21: DieHarder (CCS 2010, WOOT 2011)
Page 22: DieHarder (CCS 2010, WOOT 2011)
Page 23: DieHarder (CCS 2010, WOOT 2011)

23  

Page 24: DieHarder (CCS 2010, WOOT 2011)

24  

Page 25: DieHarder (CCS 2010, WOOT 2011)

25  

Page 26: DieHarder (CCS 2010, WOOT 2011)

26  

Page 27: DieHarder (CCS 2010, WOOT 2011)

27  

Page 28: DieHarder (CCS 2010, WOOT 2011)

28  

Page 29: DieHarder (CCS 2010, WOOT 2011)

29  

Page 30: DieHarder (CCS 2010, WOOT 2011)

30  

Page 31: DieHarder (CCS 2010, WOOT 2011)

31  

Page 32: DieHarder (CCS 2010, WOOT 2011)

32  

sensitive  data  /  metadata  

Page 33: DieHarder (CCS 2010, WOOT 2011)

33  

All data / metadata sensitive

sensitive  data  /  metadata  

Page 34: DieHarder (CCS 2010, WOOT 2011)

34  

guard  /  unmapped  page  

Page 35: DieHarder (CCS 2010, WOOT 2011)

35  

guard  /  unmapped  page  

Page 36: DieHarder (CCS 2010, WOOT 2011)

36  

Page 37: DieHarder (CCS 2010, WOOT 2011)

37  

Page 38: DieHarder (CCS 2010, WOOT 2011)

38  

Page 39: DieHarder (CCS 2010, WOOT 2011)

39  

Address-­‐space  layout  randomization  

Page 40: DieHarder (CCS 2010, WOOT 2011)

object free space

heap metadata

Page 41: DieHarder (CCS 2010, WOOT 2011)

object free space prev. object

object size

heap  metadata  (GNU  libc,  others)  

Page 42: DieHarder (CCS 2010, WOOT 2011)

object free space

heap metadata

x

Page 43: DieHarder (CCS 2010, WOOT 2011)

object free space

heap metadata

x

Page 44: DieHarder (CCS 2010, WOOT 2011)

44  

Page 45: DieHarder (CCS 2010, WOOT 2011)

45  

Page 46: DieHarder (CCS 2010, WOOT 2011)

46  

Page 47: DieHarder (CCS 2010, WOOT 2011)

47  

Page 48: DieHarder (CCS 2010, WOOT 2011)

48  

Page 49: DieHarder (CCS 2010, WOOT 2011)

49  

Page 50: DieHarder (CCS 2010, WOOT 2011)

50  

Page 51: DieHarder (CCS 2010, WOOT 2011)

51  

≈ 4-5 bits of entropy

Page 52: DieHarder (CCS 2010, WOOT 2011)

52  

Page 53: DieHarder (CCS 2010, WOOT 2011)

53  

Maximal entropy: log N bits (e.g., ≈ 25-30)

Page 54: DieHarder (CCS 2010, WOOT 2011)

54  

Page 55: DieHarder (CCS 2010, WOOT 2011)
Page 56: DieHarder (CCS 2010, WOOT 2011)
Page 57: DieHarder (CCS 2010, WOOT 2011)

44.2 sec

Page 58: DieHarder (CCS 2010, WOOT 2011)

44.2 sec 41.6 sec

Page 59: DieHarder (CCS 2010, WOOT 2011)

UNIVERSITY  OF  MASSACHUSETTS,  AMHERST    •    Department  of  Computer  Science  

Gene  Novark  &  Emery  Berger  University  of  Massachusetts,  Amherst  

DIEHARDER:  SECURING  THE  HEAP    


Recommended