34
{ System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum Vrije Universiteit, Amsterdam Presented By Neil Parmar

{ Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Embed Size (px)

Citation preview

Page 1: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

{

Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization

Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Vrije Universiteit, Amsterdam

Presented By

Neil Parmar

Page 2: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Kernel Level Exploitations

Exploitations:• Kernel-level exploitation gaining a vast momentum

• Many exploitations are available for Windows, Linux, BSD, Mac OS X, iOS

Causes of Exploitations:• Plenty of memory error vulnerabilities to choose from

• Improved Kernel codebase is complex, large, and in continuous evolution

• A large number of internet-connected users running the same kernel version

• Many attack opportunities for both local and remote exploits

Page 3: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Existing Countermeasures

Countermeasures:• Preserving Kernel code Integrity [SecVisor, NICKLE, hvmHarvard]

• Kernel hook protection [HookSafe, HookScout, Indexed hooks]

• Control-flow Integrity [SBCFI]

Drawbacks of the particular Countermeasures:• No comprehensive memory error protection

• Virtualization Support required, high overhead

Page 4: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Address Space Randomization (ASR)

• Well-established defense mechanism against memory error exploits

• Application-level support in all major operating systems

• The operating system itself typically not randomized at all

• Only recent Windows releases perform basic text randomization

• No strategy has been proposed for comprehensive and fine-grained OS level ASR

• GOAL: Fine-Grained ASR for operating systems

Page 5: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Contributions

• Identify the challenges and the key requirements for a comprehensive OS-Level ASR Solution.

• Fine-Grained ASR: Improve existing ASR solution in terms of both performance and security.

• Introduction to Live Rerandomization Strategy

Page 6: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Background

• Code and data locations are unpredictable in memory

• Preventing adversary for detecting precise assumption on the memory layout

• Fine-Grained ASR permute the order of individual memory objects

Page 7: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Background

• Code and data locations be unpredictable in memory.

Page 8: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Challenges in OS-Level ASR

• Instrumentation

• Run-time constraints

• Information Leakage

• Brute Force

Page 9: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

A Design for OS-Level ASR

• Make both location and layout of memory objects unpredictable

• LLVM-based link-time transformation for safe and efficient ASR

• Minimal amount of untrusted code exposed to the runtime

• Live randomization n to maximize observability of the system

• No changes in software distribution model

Page 10: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Architecture

The OS Architecture for ASR Design

Page 11: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Code Randomization

Original Function (LLVM IR)

Page 12: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Code Randomization

Randomize function location

Page 13: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Code Randomization

Adding Random size padding

Page 14: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Code Randomization

Basic Block Shifting

Page 15: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Static Data Randomization

Original variable and type (LLVM IR)

Page 16: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Static Data Randomization

Random Variable Location

Page 17: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Static Data Randomization

Add Random-sized padding

Page 18: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Static Data Randomization

Internal Layout Randomization

Page 19: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Stack Randomization

Page 20: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Dynamic Data Randomization

• Support for malloc()/mmap()-like allocator abstractions

• Memory mapped regions are fully randomized

• Heap allocations are interleaved with random-sized padding

• Full heap randomization enforced at live randomization time

• ILR (Internal Link Randomization) for all the dynamically allocated memory objects

Page 21: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Live Randomization

• First stateful live randomization technique

• Periodically rerandomize the memory address space layout

• Support arbitary memory layout changes at rerandomization time

• Support all the standard C idioms with minimal manual effort

• Sandbox the rerandomization code to recover from run-time errors

Page 22: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

ASRR Transformations

Page 23: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

ASRR Metadata

• Types

• Global Variables

• Static Variables

• String constants

• Functions

• Dynamic memory allocation

Page 24: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

The Randomization Process

Page 25: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

The Randomization Process

Page 26: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

The Randomization Process

Page 27: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

The Randomization Process

Page 28: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

The Randomization Process

Page 29: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

The Randomization Process

Page 30: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

The Randomization Process

Page 31: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

The Randomization Process

Page 32: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

ASR Performance

Page 33: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

ASR Performance

Page 34: { Enhanced Operating System Security Through Efficient and Fine-grained Address Space Randomization Cristiano Giuffrida, Anton Kuijsten & Andrew S.Tanenbaum

Summary

• A new fine-grained technique for operating systems

• Better performance and security than prior ASR solutions

• Live rerandomization and ILR to counter information leakage

• No heavyweight instrumentation exposed to the runtime

• Process-based isolation to recover from run-time ASRR error