from imagination impactcs9242/08/lectures/10-sel4.pdf · • l4.verified project:l4.verified...

25
From imagination to impact

Upload: others

Post on 14-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

From imagination to impact

Page 2: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Dhammika Elkaduwe

Philip Derrin

Kevin Elphinstone

Kernel Design for Isolation and Assurance of Physical Memory

Kevin Elphinstone

Page 3: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Embedded Systems

• Increasing functionality

• Increasing software complexity

– Millions of lines of code

– Mutually untrusted SW vendors

• Consolidate functionality• Consolidate functionality

Connectivity

– Attacks from outside

• No longer close systems

– Download SW

IIES08/seL4 1

Page 4: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Embedded Systems

• Diverse applications

– Real-time Vs. best effort

• Tight resource budgets

• Mission/life- critical applications

• Sensitive information

Reliability is paramount Reliability is paramount Reliability is paramount Reliability is paramount

IIES08/seL4 2

Page 5: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Small Kernel Approach

LegacyApp.LegacyApp.LegacyApp.LegacyApp.

SensitiveApp.SensitiveApp.SensitiveApp.SensitiveApp.

Untrusted Trusted

• Smaller, more trustworthy foundation

– Hypervisor, microkernelmicrokernelmicrokernelmicrokernel, isolation

kernel, …..

• Facilitate controlled integration and

isolation

– Isolate: fault isolation, diversity

– Integrate: performance

Supervisor OS

LinuxServer

DeviceDriver

TrustedService Device

Driver

TrustedServiceTrustedServiceTrustedService

DeviceDriver

Hardware

Small kernel (e.g. Microkernel)

– Integrate: performance

IIES08/seL4 3A

Page 6: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Small Kernel Approach

• Smaller, more trustworthy foundation

– Hypervisor, microkernelmicrokernelmicrokernelmicrokernel, isolation

kernel, …..

• Facilitate controlled integration and

isolation

– Isolate: fault isolation, diversity

– Integrate: performance

LegacyApp.LegacyApp.LegacyApp.LegacyApp.

SensitiveApp.SensitiveApp.SensitiveApp.SensitiveApp.

Untrusted Trusted

– Integrate: performance

IIES08/seL4 3B

• Microkernel should:• Provide sufficient API• Correct realisation of API• Adhere to isolation/integration requirements of the system

Supervisor OS

LinuxServer

DeviceDriver

TrustedService Device

Driver

TrustedServiceTrustedServiceTrustedService

DeviceDriver

Hardware

Small kernel (e.g. Microkernel)

Page 7: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Issue

• Kernel consumes resources

– Machine cycles

– Physical memory (kernel metadata)

Example:

– threads – thread control block,

– address space – page-tables

LegacyApp.LegacyApp.LegacyApp.LegacyApp.

SensitiveApp.SensitiveApp.SensitiveApp.SensitiveApp.

Untrusted Trusted

– bookkeeping to reclaim memory

Supervisor OS

LinuxServer

DeviceDriver

TrustedService Device

Driver

TrustedServiceTrustedServiceTrustedService

DeviceDriver

Microkernel

TCB

TCB

PT

PT

IIES08/seL4 4

Page 8: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Possible Approaches

How do we manage kernel

metadata?

• Cache like behaviour [EROS,Cache kernel, HiStart..]

– No predictability, limited RT applicability

• Static allocations

– Works for static systems

LegacyApp.LegacyApp.LegacyApp.LegacyApp.

SensitiveApp.SensitiveApp.SensitiveApp.SensitiveApp.

Untrusted Trusted

– Works for static systems

– Dynamic systems: overcommit or fail

under heavy load

• Domain specific kernel

modifications? Supervisor OS

LinuxServer

DeviceDriver

TrustedService Device

Driver

TrustedServiceTrustedServiceTrustedService

DeviceDriver

Microkernel

TCB

TCB

PT

PT

IIES08/seL4 5

Page 9: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Modified ≠ Verified

• L4.Verified project:L4.Verified project:L4.Verified project:L4.Verified project:

Formally verify the implementation correctness

of the kernel

� Properties:

–Isolation, information flow ...

• Formal refinement Abstract Model

Mathematically proven

properties

• Formal refinement

–Formally connect the properties with the

kernel implementation

C Code HW

Property preserving refinement

IIES08/seL4 6A

Page 10: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Modified ≠ Verified

• L4.Verified project:L4.Verified project:L4.Verified project:L4.Verified project:

Formally verify the implementation correctness

of the kernel

� Properties:

–Isolation, information flow ...

• Formal refinement Abstract Model

Mathematically proven

properties

• Formal refinement

–Formally connect the properties with the

kernel implementation

C Code HW

Property preserving refinement

IIES08/seL4 6B

Page 11: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Modified ≠ Verified

• L4.Verified project:L4.Verified project:L4.Verified project:L4.Verified project:

Formally verify the implementation correctness

of the kernel

� Properties:

–Isolation, information flow ...

• Formal refinement Abstract Model

Mathematically proven

properties

• Formal refinement

–Formally connect the properties with the

kernel implementation

–Modifications invalidate refinement

–Verification is labour intensive

• 10K C-lines = 100K proof lines (1st refinement)

• Memory management is core functionality

C Code HW

Property preserving refinement

IIES08/seL4 6C

Page 12: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Approach in a nutshell

• No implicit allocations within

the kernel

– No heap, no slab allocation etc..

• All abstractions are provided

by first-class kernel objects

– Threads – TCB object

supervisory OS

seL4 Microkernel

Trusted OS

server

Legacy OS

server ....

– Threads – TCB object

– Address space – Page table

objects

• All objects are created upon

explicit user request

IIES08/seL4 7

seL4 Microkernel

Kernel heap

Page 13: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Memory Management Model

supervisory OS

seL4 Microkernel

Trusted OS

server

Legacy OS

server ....

� No implicit allocations within the kernel

� Physical memory is divided into untyped

objects

� Authority conferred via capabilities

� Untyped capability is sufficient

authority to allocate kernel objects

All abstractions are provided via first seL4 Microkernel

Kernel Code

untypedobject1

untyped

object2

untyped

object n

..

� All abstractions are provided via first

class kernel objects

� Allocate on explicit user request

� Creator gets the full authority

� Distribute capabilities to allow other

access the service

IIES08/seL4 8A

Page 14: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Memory Management Model

supervisory OS

seL4 Microkernel

Trusted OS

server

Legacy OS

server ....

� No implicit allocations within the kernel

� Physical memory is divided into untyped

objects

� Authority conferred via capabilities

� Untyped capability is sufficient

authority to allocate kernel objects

All abstractions are provided via first seL4 Microkernel

Kernel Code

TCB

untyped

object2

untyped

object n

..TCB

� Kernel objects

� Untyped � TCB (Thread Control Blocks) � Capability tables (CT) � Comm. ports ....

IIES08/seL4 8B

� All abstractions are provided via first

class kernel objects

� Allocate on explicit user request

� Creator gets the full authority

� Distribute capabilities to allow other

access the service

Page 15: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Memory Management Model

supervisory OS

seL4 Microkernel

Trusted OS

server

Legacy OS

server ....

� No implicit allocations within the kernel

� Physical memory is divided into untyped

objects

� Authority conferred via capabilities

� Untyped capability is sufficient

authority to allocate kernel objects

All abstractions are provided via first seL4 Microkernel

Kernel Code

TCB

untyped

object n

..TCB

� Kernel objects

� Untyped � TCB (Thread Control Blocks) � Capability tables (CT) � Comm. ports ....

� Objects are managed by user-level

IIES08/seL4 8C

� All abstractions are provided via first

class kernel objects

� Allocate on explicit user request

� Creator gets the full authority

� Distribute capabilities to allow other

access the service

PT PT

Page 16: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Memory Management Model ...

� Delegate authority

� Allow others to obtain services

� Delegate resource management

� Memory management policy is completely

in user-space

supervisory OS

Microkernel

Trusted OS

server

Legacy OS

server ....

� Isolation of physical memory = Isolation of physical memory = Isolation of physical memory = Isolation of physical memory =

Isolation of authority (capabilities)Isolation of authority (capabilities)Isolation of authority (capabilities)Isolation of authority (capabilities)

� Capability dissemination is controlled by

a “Take-Grant” like protection model

Microkernel

Kernel Code

TCB

untyped

object2

untyped

object n

..TCB

IIES08/seL4 8D

Page 17: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Memory Management Model ...

� De-allocation upon explicit user

request

� Call revoke on the Untyped capability

� Memory can be reused

� Kernel tracks capability derivations

� Recorded in capability derivation tree

supervisory OS

seL4 Microkernel

Trusted OS

server

Legacy OS

server ....

� Recorded in capability derivation tree

(CDT)

� Need bookkeeping

� Doubly-linked list through capabilities

� Space allocated with capability tables

seL4 Microkernel

Kernel Code

TCB

untyped

object2

untyped

object n

..TCB

untypedcap 1

TCB

TCBT

CB

copy

CDT

IIES08/seL4 9

Page 18: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Capability Derivation Tree

� For allocation:For allocation:For allocation:For allocation:

� The untyped capability should not

have any CDT children

� Guarantees that there are no

previously allocated objects

� Size of the object(s) must be small

or equal to untyped object

supervisory OS

seL4 Microkernel

Trusted OS

server

Legacy OS

server ....

or equal to untyped objectseL4 Microkernel

Kernel Code

TCB

untyped

object2

untpedobject n

..TCB

untypedcap 1

TCB

TCBT

CB

copy

CDT

IIES08/seL4 10

Page 19: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Evaluation

� Formal properties:Formal properties:Formal properties:Formal properties:

� Formalised the protection model in Isabelle/HOL

� Machine checked, abstract model of the kernel

� Formal, machine checked proof that mechanisms are sufficient for

enforcing spatial partitioning

� Proof also identify the invariants the “supervisory OS” needs to enforce � Proof also identify the invariants the “supervisory OS” needs to enforce

for isolation to hold

supervisory OS

....

seL4 Microkernel

IIES08/seL4 11A

Page 20: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Evaluation

� Formal properties:Formal properties:Formal properties:Formal properties:

� Formalised the protection model in Isabelle/HOL

� Machine checked, abstract model of the kernel

� Formal, machine checked proof that mechanisms are sufficient for

enforcing spatial partitioning

� Proof also identify the invariants the “supervisory OS” needs to enforce � Proof also identify the invariants the “supervisory OS” needs to enforce

for isolation to hold

supervisory OS

....

seL4 Microkernel

IIES08/seL4 11B

• Can not share modifiable page/capability tables

• Can not share thread control blocks• Can not have communication channels that allow capability propagation

Page 21: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Evaluation ...

� Performance Performance Performance Performance

� Used paravirtualised Linux as an

example

� Compared with L4/Wombat (Linux) for

running LMBench supervisory OS

Linux

....

seL4 Microkernel

Drivers

Iguana

Linux(Wombat) ....

L4 Microkernel

Drivers

Bench mark Gain(%)

fork 4570 3083 32.5exec 5022 3440 31.5

shell 29729 19999 32.7

page faults 34 18.7 45.4

3.4 2.9 11

10.7 9.3 7.6

L4 (s) seL4(+s)

Null Syscall

ctxProxy via Iguana

IIES08/seL4 12

Page 22: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Status

• Empirical workEmpirical workEmpirical workEmpirical work

– Runs on ARM11

– Investigate performance as a

virtualisation platform

• Formal work Formal work Formal work Formal work

– Information flow properties Abstract Model

Mathematically proven

properties

– Information flow properties

(example: Clark-Wilson)

– Formal refinement work in

progress

Abstract Model

C Code HW

Property preserving refinement

IIES08/seL4 13

Performance

Page 23: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Conclusion

• No implicit allocations within the kernel

– Users explicitly allocate kernel objects

– No heap, slab .. (no hidden bookkeeping)

– Authority confinement guarantees control of kernel memory

• All kernel memory management policy is outside the kernel• All kernel memory management policy is outside the kernel

– Different isolation/integration configurations

– Support diverse, co-existing policies

– No modification to the kernel (remains verified)

• Hard guarantees on kernel memory consumption

– Facilitate formal reasoning of physical memory consumption

• Improve performance by controlled delegation

– Similar performance in other caseIIES08/seL4 14

Page 24: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

Questions?Questions?

Page 25: From imagination impactcs9242/08/lectures/10-seL4.pdf · • L4.Verified project:L4.Verified project: ... Need bookkeeping Doubly-linked list through capabilities Space allocated

From imagination to impact