32
CARSTEN WEINHOLD Faculty of Computer Science Institute of Systems Architecture, Operating Systems Group INFLUENTIAL OPERATING SYSTEM RESEARCH: SECURITY MECHANISMS AND HOW TO USE THEM

INFLUENTIAL OPERATING SYSTEM RESEARCH: SECURITY MECHANISMS ...os.inf.tu-dresden.de/Studium/IOS/SS2017/03-Security.pdf · INFLUENTIAL OPERATING SYSTEM RESEARCH: SECURITY MECHANISMS

Embed Size (px)

Citation preview

CARSTEN WEINHOLD

Faculty of Computer Science Institute of Systems Architecture, Operating Systems Group

INFLUENTIAL OPERATING SYSTEM RESEARCH: SECURITY MECHANISMS AND HOW TO USE THEM

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

OVERVIEW

Fundamental Concepts and Building Blocks

Problems in Practice

Security Architectures

The Way Forward?

2

TU Dresden Titel

FUNDAMENTAL CONCEPTS AND BUILDING BLOCKS

3

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

CAPABILITIES

First described by Dennis & Horn in 1966

Managed and protected by system

Attached to process, but cannot be forged by it

Can be shared, transferred, inherited4

A capability is an unforgeable (immutable) token (piece of data) of authentication for some system resource possessed by a

process. Possession itself grants access.

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

ACCESS CONTROL LISTS

Maps identifiers to access rights

Attached to objects to be access by processes

Managed by system, cannot be forged by process

Usually whitelist, but can also include blacklist semantics5

An ACL is an out-of-process entity that allows to control access to some system resource. Access is granted after

proactive checking by the enforcing system.

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

ROLE-BASED ACCESS CONTROLPrograms always work in a role

Program can drop to a lower role but not elevate to a higher role

Higher role programs start lower role programs

Roles can be selectively inheritable

Example: SELinux Every program effectively needs a policy Huge maintenance burden and/or trust in vendor/distributor

6

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

RULE-SET BASED ACCESS CONTROL

Combines all previous approaches (best of all worlds)

Rules can be combined to sets

Sets can be (selectively) inherited

7

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

PROCESSOR MODES

Invented for MULTICS to enable multiprogramming environment

Idea of rings of privilege that hold CPU instructions

Inner rings can use instructions in the outer rings, but not vice versa

Allows to implement memory protection via hardware-enforced addressing schemes

8

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

PROCESSOR MODES: X86-64Ring 3: User mode

Ring 2: Unused

Ring 1: Unused

Ring 0: Kernel mode

Ring „-1“: Hypervisor mode

Also: System management mode (SMM)

Secure enclave („SGX mode“)9

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

MEMORY PROTECTION

Paging

Segmentation

Capability-Based Addressing

10

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

PAGING

Hierarchical, per-process mapping of virtual memory to physical memory at page granularity

First implemented in the Atlas Computer (1959/62), but also in IBM System/370, Intel IA-32 (since 80386), …

2 (or 3+) protection domains: (VM) / Kernel / User-space

Page sizes of limited variability (e.g., 4 kiB normal page and 4 MiB super page)

11

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

PAGINGOS manages page tables

Physical data layout and current consumption invisible to process

Status and Permission bits in table entries specify access rights: User vs kernel mode

Read/write/execute12

Directory Index Page Index Offset

0

0

(N bits) (N bits) (M bits)

2N-1

2N-1

2M-1

0

Entri

es

Entri

es

Byte

Offs

et

Page Directory

Page Table

Status / Permission Bits

Physical Address of next level

Page

Base Register

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

SEGMENTATIONFlat (virtual) address space partitioning

First implemented in the Burroughs B5500, but also in MULTICS, IBM System/38, Intel 80286

Addresses relative to segment base register:address = segment + offset Segment limit register marks size of segment

Memory segmentation visible to the process

RAM and file-system address spaces can be merged13

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

CAPABILITY-BASED ADDRESSINGForm of object-based addressing: every access to memory referenced through a capability No unrestricted pointer operations allowed in user space Single-address space possible ⇒ no context switches

Possible implementations: Store capabilities in protected memory area, modify through privileged process Extend memory with „capability bits“ to mark protected locations (recent example: CHERI capabilities)

14

TU Dresden Titel

PROBLEMS IN PRACTICE

15

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

YOU ARE LEAVING THE SAFE

No (or only limited) protection within a process

Programs can read / write within their own address space

Use of pointers unsafe in: native code / C / C++, …

16

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

BUFFER OVERFLOW ATTACKSStack overflows smash may return addresses, jump anywhere on ret

Overflows on heap may overwrite: Function pointers VTable pointers Memory management information

Partial mitigations: Canaries (but may be guessable) Shadow stacks for return addresses

17

16 June 2014 Exploitz

Now let's add a buffer

foo: pushl %ebp movl %esp, %ebp subl $32, %esp movl $0, %eax leave ret

main: pushl %ebp movl %esp, %ebp call foo popl %ebp ret

Stack

EIPESP

EBP (main)

EBP(foo)EBP

Return Addr

16 June 2014 Exploitz

Now let's add a buffer

foo: pushl %ebp movl %esp, %ebp subl $32, %esp movl $0, %eax leave ret

main: pushl %ebp movl %esp, %ebp call foo popl %ebp ret

Stack

EIP

ESP

EBP (main)

EBP(foo)

buf

EBP

Return Addr

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

ROP ATTACKS

Write XOR execute semantics makes code injection attacks useless

But return instruction still allows unrestricted jumps to arbitrary addresses:Return-oriented programming (ROP)

18

16 June 2014 Exploitz

ROP: Add 23 to EAX

(1) ret

(2) pop %edi ret

(3) pop %edx ret

ptr to 23

(1)

(3)

(2)

(4)

23

EIP

ESP

EAX: 19

EDX: 0

EDI: 0

(4) addl (%edx), %eax push %edi ret

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

MONOLITHIC KERNELAll security mechanisms are implemented / managed by operating system kernel

Capabilities, ACLs, … Memory protection, …

All other OS functionality, too

Huge codebase, large attack surface exposed to applications

19

Commodity OS Kernel

App A

USBWiFi

IP Stack

File System

Disk

Syscalls

App B App C App DApp B

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

MONOLITHIC KERNELAll security mechanisms are implemented / managed by operating system kernel

Capabilities, ACLs, … Memory protection, …

All other OS functionality, too

Huge codebase, large attack surface exposed to applications

No protection within kernel20

Commodity OS Kernel

App A

Disk

Syscalls

App B App C App D

USBWiFi

IP Stack

File System

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

MONOLITHIC KERNEL

Not only malicious applications

Operating system kernel also exposed to untrusted input

Network packets and protocols Thunderbolt, USB, other buses File-system images

One exploitable bug: kernel and all applications compromised

21

Commodity OS Kernel

App A

Disk

Syscalls

App B App C App D

USBWiFi

IP Stack

File System

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

MONOLITHIC KERNEL

Not only malicious applications

Operating system kernel also exposed to untrusted input

Network packets and protocols Thunderbolt, USB, other buses File-system images

One exploitable bug: kernel and all applications compromised

22

Commodity OS Kernel

App A

Disk

Syscalls

App B App C App D

USBWiFi

IP Stack

File System

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

Operating System Services

(Multi Server)

MICROKERNEL ARCHITECTUREMicrokernels split OS into small and isolated components

Better containment of faults and attacks (assuming safe interfaces)

But: Restricting interaction of components is still a big problem Does not help against physical attacks (access to device)

23

App A

Disk

App B App C App D

USB WiFi

IP StackFile System

Microkernel

TU Dresden Titel

SECURITY ARCHITECTURES

24

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

SECURE BOOTING

Software integrity rooted in hardware: Only load and run software that matches a pre-determined checksum or public key (of the vendor) If software does not match, refuse to load Checksum or public key „fused“ into hardware, cannot be exchanged

Popular in system-on-chip (SOC) architectures, especially smartphones and tables

Concept can be extended

25

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

HARDWARE TRUST ANCHORAuthenticated Booting: Record the chain of trust in a tamper-proof hardware register, use as identity of loaded software stack

Sealed memory: Encrypt data such that it will only be released, if expected software is running

Remote attestation: Securely report identity to remote party

26

Application

OS

Boot Loader

BIOS

PCR

OS

Boot Loader

BIOS

OS

Boot Loader

BIOS

15FE7860

Application Application

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

REMOTE ATTESTATIONChallenger sends a random nonce to the system, he/she wants to have attested

Challenged system responds with quote: identity of loaded software stack (PCR) + nonce, all signed using a private key

Challenger check PCR signature based on known public key

27

System

4490EF83

AE58B991

4490EF83

Challenger

✹4490EF83AE58B991

Quote(Key, Nonce, PCR)

Remote Attestation with Challenge/Response

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

HARDWARE-BASED ISOLATION

Apple Security Processor

ARM TrustZone

Intel SGX

28

TU Dresden Titel

THE WAY FORWARD?

29

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

STRUCTURAL TEMPLATEIsolation Substrate: Spatial and temporal isolation

Legacy Codebase: „old“ code following monolithic design

Trusted Component: Smaller, more secure, or just „my own“

Communication: secure interaction between legacy code-base and trusted component

30

Reuse

Invocation

LegacyCodebase

TrustedComponent

Isolation Substrate

Service invocation from untrusted legacy codebase, usually to protect a cryptographic secret or perform some other security-critical operation within the trusted component

Secure reuse of legacy infrastructure by trusted component, usually involving cryptographic protection of data and/or extra security checks at interface boundary

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

VERTICAL TO LATERAL„Instead of vertically stacked libraries, we envision applications to be horizontal aggregates of communicating components, individually isolated from one another and mutually distrusting“

Privileges of each component should be minimal (POLA)

31

TU Dresden Influential Operating System Research: Security Mechanisms and How to Use Them

EXAMPLE: SMART GRID

32

SGXMicrokernel

Lega

cyD

atab

ase

Anon

ymiz

er

Smar

t Met

er

Lega

cy O

S(A

ndro

id)

Atte

stat

ion

TrustZoneMicrokernel SGX

Atte

stat

ion

Smart Meter Appliance Utility Server