23.08.2013 Views

Towards Trustworthy Systems - ERTOS - NICTA

Towards Trustworthy Systems - ERTOS - NICTA

Towards Trustworthy Systems - ERTOS - NICTA

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Towards</strong> <strong>Trustworthy</strong> <strong>Systems</strong><br />

Gernot Heiser<br />

<strong>NICTA</strong> and UNSW, Sydney


© <strong>NICTA</strong> 2011 2<br />

Academia Sinica Oct'11


What’s Next?<br />

© <strong>NICTA</strong> 2011 3<br />

Academia Sinica Oct'11


Trust Without Trustworthiness<br />

© <strong>NICTA</strong> 2011<br />

Academia Sinica Oct'11<br />

4


Our Vision: <strong>Trustworthy</strong> <strong>Systems</strong><br />

We will change industry’s approach to the design and implementation<br />

of critical systems, resulting in true trustworthiness.<br />

<strong>Trustworthy</strong> means highly<br />

dependable, with hard<br />

guarantees on security,<br />

safety or reliability.<br />

© <strong>NICTA</strong> 2011 6<br />

Academia Sinica Oct'11


Dealing With Complexity<br />

• Complexity of critical devices will continue to grow<br />

– Critical systems with millions of lines of code (LOC)<br />

• We need to learn to ensure dependability despite complexity<br />

– Need to guarantee dependability<br />

• Correctness guarantees for MLOCs unfeasible<br />

• Key to solution: isolation<br />

– … with controlled<br />

communication<br />

Non-critical<br />

Complex<br />

GUIs etc<br />

Isolation<br />

Critical<br />

Simple<br />

Control<br />

Controlled communication<br />

© <strong>NICTA</strong> 2011 7<br />

Academia Sinica Oct'11


Isolation: Physical<br />

Dedicated CPUs for critical tasks<br />

© <strong>NICTA</strong> 2011 8<br />

Academia Sinica Oct'11


Isolation: Logical<br />

• Protect critical components by<br />

sandboxing complex components<br />

• Provide tightly-controlled<br />

communication channels<br />

• <strong>Trustworthy</strong> microkernel<br />

provides general mechanisms<br />

to enforce isolation<br />

• Policy layer defines access rights<br />

• Microkernel becomes core of<br />

trusted computing base<br />

– System trustworthiness<br />

only as good as microkernel<br />

– But: small enough so that real<br />

trustworthiness may actually be<br />

achievable!<br />

Untrusted<br />

Legacy<br />

Apps<br />

Legacy App.<br />

Legacy App.<br />

Linux<br />

Server<br />

Policy Layer<br />

Microkernel<br />

Hardware<br />

Trusted<br />

Sensitive<br />

App<br />

Trusted<br />

Service<br />

© <strong>NICTA</strong> 2011 9<br />

Academia Sinica Oct'11


Isolation Requirements<br />

To guarantee dependability, following must be guaranteed:<br />

• Isolation infrastructure function must be specified<br />

– To allow reason about operation of isolated critical instances<br />

• Isolation infrastructure must behave as specified<br />

– Functional correctness<br />

– Bounded and know worst-case latencies<br />

• Isolation infrastructure must provide actual isolation<br />

– Integrity guarantees<br />

– Temporal isolation<br />

© <strong>NICTA</strong> 2011 10<br />

Academia Sinica Oct'11


Dependability Requirements<br />

Unambiguous<br />

Security Safety<br />

Specification<br />

Functional<br />

Correctness<br />

Overall System<br />

Properties<br />

Confidentiality Integrity<br />

Implementation<br />

Timeliness<br />

© <strong>NICTA</strong> 2011 11<br />

Academia Sinica Oct'11


<strong>NICTA</strong> <strong>Trustworthy</strong> <strong>Systems</strong> Agenda<br />

1. Dependable microkernel (seL4) as a rock-solid base<br />

– Formal specification of functionality<br />

– Proof of functional correctness of implementation<br />

– Proof of safety/security properties<br />

– Timeliness guarantees<br />

2. Lift microkernel guarantees to whole system<br />

– Use kernel correctness and integrity to guarantee critical functionality<br />

– Ensure correctness of balance of trusted computing base<br />

– Prove dependability properties of complete system<br />

© <strong>NICTA</strong> 2011 12<br />

Academia Sinica Oct'11


Kernel Formal Verification<br />

Multicore<br />

© <strong>NICTA</strong> 2011<br />

Initial<br />

protection<br />

state<br />

Manual Spec<br />

(Isabelle/HOL)<br />

capDL Model (4,800)<br />

22,000 lop<br />

Abstract Model (4,900)<br />

117,000 lop<br />

Executable Model (13,000) Haskell (5,700)<br />

50,000 lop<br />

Confidentiality (???)<br />

Integrity (1,000)<br />

High Performance<br />

Implementation Asm Code (320) C Code (8,700)<br />

Sane initial state<br />

Hardware model<br />

Hardware<br />

Academia Sinica Oct'11<br />

13


Binary Code Verification (In Progress)<br />

C source<br />

Code<br />

simplifier<br />

Formal C<br />

semantics<br />

Abstract<br />

machine code<br />

Abstract executable<br />

of real machine<br />

Equivalence<br />

checker<br />

Abstracted<br />

C code<br />

Abstract<br />

machine code<br />

Formal<br />

ISA spec<br />

Abstract<br />

compiler<br />

Executable<br />

binary<br />

© <strong>NICTA</strong> 2011 Academia Sinica Oct'11<br />

14


Formal Verification Summary<br />

Kinds of properties proved<br />

• Behaviour of C code is fully captured by abstract model<br />

• Behaviour of C code is fully captured by executable model<br />

• Can prove many interesting properties on higher-level models<br />

• Kernel never fails, behaviour is always well-defined<br />

• assertions never fail<br />

• will never de-reference null pointer<br />

• cannot be subverted by misformed input<br />

• All syscalls terminate, reclaiming memory is safe, ...<br />

• Well typed references, aligned objects, kernel always mapped…<br />

• Access control is decidable<br />

Effort:<br />

• Average 6 people over 5.5 years<br />

• About 50–100% higher than traditional (low-assurance) projects<br />

© <strong>NICTA</strong> 2011<br />

Academia Sinica Oct'11<br />

15


Kernel Worst-Case Execution Time<br />

Issues for WCET analysis of seL4<br />

• Need knowledge of worst-case interrupt-latency<br />

– Longest non-preemptible path + IRQ delivery cost<br />

– seL4 runs with interrupts disabled<br />

• System calls in well-designed microkernel are short!<br />

• Strategic preemption points in long-running operations<br />

• Optimal average-case performance with reasonable worst-case<br />

• Applications also need to know cost of system calls<br />

– Need WCET analysis of all possible code paths<br />

© <strong>NICTA</strong> 2011 16<br />

Academia Sinica Oct'11


Kernel Worst-Case Execution Time<br />

Challenges for WCET analysis of OS kernels in general:<br />

• Kernel code notoriously unstructured<br />

• Low-level system-specific instructions<br />

• Context-switching<br />

• Assembly code<br />

seL4-specific advantages:<br />

• (Relatively) structured design (evolved from Haskell prototype)<br />

• Event-based kernel (single kernel stack)<br />

• Small (as far as operating systems go!)<br />

• No function pointers in C<br />

• Preemption points are explicit and preserve code structure<br />

• Memory allocation performed in userspace<br />

© <strong>NICTA</strong> 2011 17<br />

Academia Sinica Oct'11


WCET analysis process<br />

seL4 binary<br />

CFG extractor<br />

CFG<br />

Path Analysis, Arch.<br />

modeling<br />

Loop bounds<br />

ILP<br />

equations<br />

CPLEX<br />

WCET<br />

Upper bound<br />

Worst-case<br />

scenarios<br />

Hardware platform<br />

Observed<br />

execution time<br />

© <strong>NICTA</strong> 2011 18<br />

Academia Sinica Oct'11


Evaluation platform<br />

• OMAP3-based BeagleBoard-xM<br />

– ARM Cortex-A8 @ 800 MHz<br />

– 128 MB memory<br />

– 32KB 4-way set-associative L1 instruction cache<br />

• random replacement ⇐ pessimistic model<br />

– Disabled L2 cache<br />

• Cache analysis does not (yet) scale<br />

• Fairly accurate (but sound) model<br />

– dual-issue pipeline (simplified)<br />

– no branch prediction<br />

© <strong>NICTA</strong> 2011<br />

Academia Sinica Oct'11<br />

Image Koen Kooi CC-SA 2.0<br />

19


Early Days…<br />

© <strong>NICTA</strong> 2011 20<br />

Academia Sinica Oct'11<br />

µs<br />

µs


Improve WCET<br />

• Knowledge about seL4 can eliminate many paths<br />

– Invariants proved during verification<br />

– E.g. loop iteration counts,<br />

non-interference<br />

– Can easily prove new invariants<br />

– Presently done manually (no proof)<br />

• Cache pinning<br />

– Big reduction in WCET<br />

– Eliminate cache pessimism<br />

• Analysis helps placing preemption points<br />

– Can optimise further<br />

• Improved pipeline modelling<br />

– May have practical approach<br />

for complex pipelines<br />

• Aim: IRQ WCET < 10 µs<br />

Measure<br />

impact on<br />

estimated<br />

WCET<br />

Find an<br />

infeasible<br />

critical<br />

path<br />

Express<br />

invariants<br />

as ILP<br />

constraints<br />

Find an<br />

invariant to<br />

invalidate<br />

the path<br />

© <strong>NICTA</strong> 2011 Academia Sinica Oct'11<br />

21


Phase Two: Full-System Guarantees<br />

• Achieved: Verification of<br />

microkernel (8,700 LOC)<br />

• Next step: Guarantees for<br />

real-world systems<br />

(1,000,000 LOC)<br />

© <strong>NICTA</strong> 2011 22<br />

Academia Sinica Oct'11


Overview of Approach<br />

Build system with minimal TCB<br />

Formalize and prove security properties about architecture<br />

Prove correctness of trusted components<br />

Prove correctness of setup<br />

Prove temporal properties (isolation, WCET, …)<br />

Maintain performance<br />

© <strong>NICTA</strong> 2011 23<br />

Academia Sinica Oct'11


Proof of Concept:<br />

Secure Access Controller<br />

US NATO AUS SIN www<br />

SAC<br />

© <strong>NICTA</strong> 2011 24<br />

Academia Sinica Oct'11


SAC Aim<br />

Providers A & B should not be<br />

able to leak info between each<br />

other even if they actively<br />

cooperate<br />

Information Provider A Information Provider B<br />

Network A Network B<br />

Network Interface A<br />

SAC<br />

Terminal Network Interface<br />

Terminal<br />

User<br />

Network Interface B<br />

Terminal Network<br />

© <strong>NICTA</strong> 2011 25<br />

Academia Sinica Oct'11


Solution Overview<br />

Terminal Network<br />

Windows Linux<br />

Network A Network B<br />

Network Interface A<br />

Terminal Network Interface<br />

Terminal<br />

User<br />

Network Interface B<br />

Web Server<br />

(Linux)<br />

Control Interface<br />

Control Network<br />

Web-based<br />

control<br />

interface<br />

© <strong>NICTA</strong> 2011 26<br />

Academia Sinica Oct'11


Solution Overview<br />

Linux-based<br />

Router<br />

minimal<br />

device<br />

access<br />

Terminal Network<br />

Windows Linux<br />

Network A Network B<br />

Network Interface A<br />

Router<br />

(Linux)<br />

Terminal Network Interface<br />

Terminal<br />

User<br />

Network Interface B<br />

Web Server<br />

(Linux)<br />

Control Interface<br />

Control Network<br />

Not<br />

Connected<br />

© <strong>NICTA</strong> 2011 27<br />

Academia Sinica Oct'11


Specifying Security Architecture<br />

Untrusted<br />

Components<br />

Trusted Components<br />

System Architecture<br />

seL4 proofs<br />

1<br />

Trusted Component<br />

Behaviour Spec<br />

CapDL Spec<br />

Security Policy<br />

5<br />

System Security<br />

Proof<br />

4<br />

2<br />

3<br />

System Image<br />

Components and<br />

Glue Code<br />

Bootstrapper<br />

© <strong>NICTA</strong> 2011 28<br />

Academia Sinica Oct'11


Trusted Synthesized Drivers<br />

• Correct driver synthesis Formal<br />

– given model of driver OS interface<br />

interface, basic behaviour,<br />

and hardware<br />

spec<br />

– driver is automatically generated<br />

– performance as good as hand-knitted<br />

• Challenge: device spec<br />

• Vision:<br />

– automatically extract hardware model<br />

from HDL description<br />

– potential impact beyond our immediate<br />

agenda<br />

HDL<br />

Formal<br />

device spec<br />

© <strong>NICTA</strong> 2011 Academia Sinica Oct'11<br />

Device class<br />

behavioural<br />

spec<br />

driver.c<br />

29


<strong>Trustworthy</strong> <strong>Systems</strong> Are Possible!<br />

• Achieved to date:<br />

– First general-purpose OS kernel with<br />

• proof of functional correctness<br />

• proof of integrity enforcement<br />

• complete and sound timing model<br />

– … and high performance!<br />

– Secure system prototype<br />

– Demonstration of driver synthesis feasibility<br />

– Framework for reasoning about system-wide access rights<br />

• In progress:<br />

– Confidentiality proof<br />

– General real-time capabilities<br />

– Eliminating holes in verification<br />

• Compiler, asm code, multicore…<br />

© <strong>NICTA</strong> 2011 30<br />

Academia Sinica Oct'11


<strong>Trustworthy</strong> <strong>Systems</strong> Are Possible!<br />

• Further away<br />

– Whole-of-system security/safety proofs<br />

– Truly safe languages for higher-level code<br />

• Haskell, RT Java with verified runtime system<br />

– General component synthesis…<br />

mailto:gernot@nicta.com.au<br />

Google: “ertos”<br />

© <strong>NICTA</strong> 2011 31<br />

Academia Sinica Oct'11

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!