Gerwin Klein Kevin Elphinstone Gernot Heiser June Andronick David Cock Philip Derrin Dhammika Elkaduwe Kai Engelhardt Rafal Kolanski Michael Norrish

Size: px
Start display at page:

Download "Gerwin Klein Kevin Elphinstone Gernot Heiser June Andronick David Cock Philip Derrin Dhammika Elkaduwe Kai Engelhardt Rafal Kolanski Michael Norrish"

Transcription

1 Gerwin Klein Kevin Elphinstone Gernot Heiser June Andronick David Cock Philip Derrin Dhammika Elkaduwe Kai Engelhardt Rafal Kolanski Michael Norrish Thomas Sewell Harvey Tuch Simon Winwood

2

3 1 microkernel 8,700 l ines of C 0 bugs * qed *conditions apply

4 The Goal 2

5 The Problem 3

6 Small Kernels Small trustworthy foundation hypervisor, microkernel, nano-kernel, virtual machine, separation kernel, exokernel... High assurance components in presence of other components sel4 API: - IPC - Threads - VM - IRQ - Capabilities Untrusted Legacy Apps Legacy App. Legacy App. Linux Server Hardware Trusted Sensitive App Trusted Service NICTA

7 Small Kernels Small trustworthy foundation hypervisor, microkernel, nano-kernel, virtual machine, separation kernel, exokernel... High assurance components in presence of other components sel4 API: - IPC - Threads - VM - IRQ - Capabilities Untrusted Legacy Apps Legacy App. Legacy App. Linux Server sel4 Hardware Trusted Sensitive App Trusted Service NICTA

8

9

10 Functional Correctness Specification Proof Code NICTA

11 Functional Correctness What Specification definition schedule :: unit s_monad where schedule do threads allactivetcbs; thread select threads; switch_to_thread thread od OR switch_to_idle_thread Proof Code NICTA

12 Functional Correctness What Specification definition schedule :: unit s_monad where schedule do threads allactivetcbs; thread select threads; switch_to_thread thread od OR switch_to_idle_thread Proof How Code NICTA

13 *conditions apply Specification Proof Code NICTA

14 *conditions apply Specification Proof Code Assumptions NICTA

15 *conditions apply Expectation Specification Proof Code Assumptions NICTA

16 *conditions apply Proof Specification Assume correct: Expectation - compiler + linker (wrt. C op-sem) - assembly code (600 loc) - hardware (ARMv6) - cache and TLB management - boot code (1,200 loc) Code Assumptions NICTA

17 Implications Execution always defined: no null pointer de-reference no buffer overflows no code injection no memory leaks/out of kernel memory no div by zero, no undefined shift no undefined execution no infinite loops/recursion Specification C Code Not implied: secure (define secure) zero bugs from expectation to physical world covert channel analysis NICTA

18 Proof Architecture Specification Proof C Code NICTA

19 Proof Architecture Specification Design C Code NICTA

20 Proof Architecture Specification Design C Code NICTA

21 Proof Architecture Access Control Spec Confinement Specification Design C Code NICTA

22 Proof Architecture Access Control Spec Confinement Specification Design Haskell Prototype C Code NICTA

23 Proof Architecture Access Control Spec Confinement Specification definition schedule :: unit s_monad where schedule do threads allactivetcbs; thread select threads; switch_to_thread thread od OR switch_to_idle_thread Design Haskell Prototype C Code NICTA

24 Proof Architecture Access Control Spec Confinement Specification Design Haskell Prototype C Code NICTA

25 Proof Architecture Access Control Spec Confinement Specification Design Haskell Prototype C Code NICTA

26 System Model States: User, Kernel, Idle Events: Syscall, Exception, IRQ, VM Fault idle event I idle U kernel exit event K kernel mode NICTA

27 System Model States: User, Kernel, Idle Events: Syscall, Exception, IRQ, VM Fault idle event I idle U kernel exit event K kernel mode NICTA

28

29 sel4

30

31

32 Two Teams Formal Methods Practitioners Kernel Developers NICTA

33 Two Teams Formal Methods Practitioners Kernel Developers The Power of Abstraction (Liskov 09) Exterminate All OS Abstractions! (Engler 95) NICTA

34 Iterative Design and Formalisation Whiteboard Haskell Prototype Formal Design Formal Specification C Code NICTA

35 Iterative Design and Formalisation Whiteboard Haskell Prototype Formal Design Formal Specification C Code NICTA

36 Iterative Design and Formalisation Whiteboard Haskell Prototype Formal Design Formal Specification C Code NICTA

37 Iterative Design and Formalisation Whiteboard Haskell Prototype Formal Design Formal Specification C Code NICTA

38 Design for Verification Reducing Complexity Hardware drivers outside kernel Concurrency event based kernel limit preemption Code derive from functional representation NICTA

39 C subset Everything from C standard including: - pointers, casts, pointer arithmetic - data types - structs, padding - pointers into structs - precise finite integer arithmetic minus: - goto, switch fall-through - reference to local variable - side-effects in expressions - function pointers (restricted) - unions plus compiler assumptions on: - data layout, encoding, endianess NICTA

40 Did you find any Bugs? Bugs found Effort during testing: 16 Haskell design First C impl. Debugging/Testing Kernel verification Formal frameworks 2 py 2 weeks 2 months 12 py 10 py during verification: in C: 160 in design: ~150 in spec: ~ bugs Total Cost Common Criteria EAL6: L4.verified: 25 py $87M $6M NICTA

41 Did you find any Bugs? Bugs found Effort during testing: 16 Haskell design First C impl. Debugging/Testing Kernel verification Formal frameworks 2 py 2 weeks 2 months 12 py 10 py during verification: in C: 160 in design: ~150 in spec: ~ bugs Total Cost Common Criteria EAL6: L4.verified: 25 py $87M $6M NICTA

42 Summary Formal proof all the way from spec to C. 200kloc handwritten, machine-checked proof ~460 bugs (160 in C) Verification on code, design, and spec Hard in the proof Hard in the implementation Formal Code Verification up to 10kloc: It works. It s feasible. It s cheaper. (It s fun, too. And we re hiring..) NICTA

43

44

Towards a Practical, Verified Kernel

Towards a Practical, Verified Kernel Towards a Practical, Verified Kernel Kevin Elphinstone and Gerwin Klein, National ICT Australia and the University of New South Wales Philip Derrin, National ICT Australia Timothy Roscoe, ETH Zürich Gernot

More information

The Evolution of Secure Operating Systems

The Evolution of Secure Operating Systems The Evolution of Secure Operating Systems Trent Jaeger Systems and Internet Infrastructure Security (SIIS) Lab Computer Science and Engineering Department Pennsylvania State University 1 Operating Systems

More information

sel4: Formal Verification of an Operating-System Kernel

sel4: Formal Verification of an Operating-System Kernel sel4: Formal Verification of an Operating-System Kernel Gerwin Klein 1,2, June Andronick 1,2, Kevin Elphinstone 1,2, Gernot Heiser 1,2,3 David Cock 1, Philip Derrin 1, Dhammika Elkaduwe 1,2, Kai Engelhardt

More information

Translation Validation for a Verified OS Kernel

Translation Validation for a Verified OS Kernel To appear in PLDI 13 Translation Validation for a Verified OS Kernel Thomas Sewell 1, Magnus Myreen 2, Gerwin Klein 1 1 NICTA, Australia 2 University of Cambridge, UK L4.verified sel4 = a formally verified

More information

sel4: Formal Verification of an OS Kernel

sel4: Formal Verification of an OS Kernel sel4: Formal Verification of an OS Kernel Gerwin Klein 1,2, Kevin Elphinstone 1,2, Gernot Heiser 1,2,3 June Andronick 1,2, David Cock 1, Philip Derrin 1, Dhammika Elkaduwe 1,2, Kai Engelhardt 1,2 Rafal

More information

Introduction. COMP /S2 Week Gernot Heiser UNSW/NICTA/OKL. Distributed under Creative Commons Attribution License 1

Introduction. COMP /S2 Week Gernot Heiser UNSW/NICTA/OKL. Distributed under Creative Commons Attribution License 1 Introduction COMP9242 2008/S2 Week 1 2008 Gernot Heiser UNSW/NICTA/OKL. Distributed under Creative Commons Attribution License 1 Copyright Notice These slides are distributed under the Creative Commons

More information

From imagination to impact

From imagination to impact From imagination to impact Kernel Design for Isolation an Assurance of Physical Memory Dhammika Elkauwe Philip Derrin Kevin Elphinstone Embee Systems Increasing functionality Increasing software complexity

More information

Introduction. COMP9242 Advanced Operating Systems 2010/S2 Week 1

Introduction. COMP9242 Advanced Operating Systems 2010/S2 Week 1 Introduction COMP9242 Advanced Operating Systems 2010/S2 Week 1 2010 Gernot Heiser UNSW/NICTA/OK Labs. Distributed under Creative Commons Attribution License 1 Copyright Notice These slides are distributed

More information

Comprehensive Formal Verification of an OS Microkernel

Comprehensive Formal Verification of an OS Microkernel Comprehensive Formal Verification of an OS Microkernel GERWIN KLEIN, JUNE ANDRONICK, KEVIN ELPHINSTONE, TOBY MURRAY, THOMAS SEWELL, RAFAL KOLANSKI, and GERNOT HEISER, NICTA and UNSW, Sydney, Australia

More information

Microkernel Design A walk through selected aspects of

Microkernel Design A walk through selected aspects of Microkernel Design A walk through selected aspects of kernel design and sel4 These slides are made distributed under the Creative Commons Attribution 3.0 License, unless otherwise noted on individual slides.

More information

Komodo: Using Verification to Disentangle Secure-Enclave Hardware from Software

Komodo: Using Verification to Disentangle Secure-Enclave Hardware from Software Komodo: Using Verification to Disentangle Secure-Enclave Hardware from Software Andrew Ferraiuolo, Andrew Baumann, Chris Hawblitzel, Bryan Parno* Microsoft Research, Cornell University, Carnegie Mellon

More information

Mechanised Separation Algebra

Mechanised Separation Algebra Mechanised Separation Algebra Gerwin Klein, Rafal Kolanski, and Andrew Boyton 1 NICTA, Sydney, Australia 2 School of Computer Science and Engineering, UNSW, Sydney, Australia {first-name.last-name}@nicta.com.au

More information

Improving Interrupt Response Time in a Verifiable Protected Microkernel

Improving Interrupt Response Time in a Verifiable Protected Microkernel Improving Interrupt Response Time in a Verifiable Protected Microkernel Bernard Blackham Yao Shi Gernot Heiser The University of New South Wales & NICTA, Sydney, Australia EuroSys 2012 Motivation The desire

More information

RapiLog: Reducing System Complexity Through Verification

RapiLog: Reducing System Complexity Through Verification : Reducing System Complexity Through Verification Gernot Heiser, Etienne Le Sueur, Adrian Danis, Aleksander Budzynowski, Tudor-Ioan Salomie, Gustavo Alonso 1 Database Transactions Transactions implement

More information

OS Verification Now!

OS Verification Now! OS Verification Now! Harvey Tuch Gerwin Klein Gernot Heiser National ICT Australia University of New South Wales (harvey.tuch gerwin.klein gernot)@nicta.com.au Abstract Hard, machine-supported formal verification

More information

Towards High-Assurance Multiprocessor Virtualisation

Towards High-Assurance Multiprocessor Virtualisation NICTA and University of New South Wales Sydney, Australia michael.vontessin@nicta.com.au Abstract Virtualisation is increasingly being used in security-critical systems to provide isolation between system

More information

Formal methods for software security

Formal methods for software security Formal methods for software security Thomas Jensen, INRIA Forum "Méthodes formelles" Toulouse, 31 January 2017 Formal methods for software security Formal methods for software security Confidentiality

More information

Towards High-Assurance Multiprocessor Virtualisation

Towards High-Assurance Multiprocessor Virtualisation Towards High-Assurance Multiprocessor Virtualisation NICTA and University of New South Wales Sydney, Australia michael.vontessin@nicta.com.au Abstract Virtualisation is increasingly being used in security-critical

More information

A Simpl Shortest Path Checker Verification

A Simpl Shortest Path Checker Verification A Simpl Shortest Path Checker Verification Christine Rizkallah Max-Planck-Institut für Informatik, Saarbrücken, Germany Abstract. Verification of complex algorithms with current verification tools in reasonable

More information

Formal proofs of code generation and verification tools

Formal proofs of code generation and verification tools Formal proofs of code generation and verification tools Xavier Leroy To cite this version: Xavier Leroy. Formal proofs of code generation and verification tools. Dimitra Giannakopoulou and Gwen Salaün.

More information

Trickle: Automated Infeasible Path

Trickle: Automated Infeasible Path Trickle: Automated Infeasible Path Detection Using All Minimal Unsatisfiable Subsets Bernard Blackham, Mark Liffiton, Gernot Heiser School of Computer Science & Engineering, UNSW Software Systems Research

More information

Bitfields and Tagged Unions in C Verification through Automatic Generation

Bitfields and Tagged Unions in C Verification through Automatic Generation Bitfields and Tagged Unions in C Verification through Automatic Generation David Cock Sydney Research Lab., NICTA, Australia Abstract. We present a tool for automatic generation of packed bitfields and

More information

L4/Darwin: Evolving UNIX. Charles Gray Research Engineer, National ICT Australia

L4/Darwin: Evolving UNIX. Charles Gray Research Engineer, National ICT Australia L4/Darwin: Evolving UNIX Charles Gray Research Engineer, National ICT Australia charles.gray@nicta.com.au Outline 1. Project Overview 2. BSD on the Mach microkernel 3. Porting Darwin to the L4 microkernel

More information

Staff. Advanced Operating Systems. Why are you here? What can you expect?

Staff. Advanced Operating Systems. Why are you here? What can you expect? Staff Advanced Operating Systems COMP9242 Introduction Lecturer in Charge Gernot Heiser Lecturer Kevin Elphinstone Various Support Staff TBA 2 Why are you here? You ve done comp3231 Did well (minimum credit)

More information

Advanced Operating Systems. COMP9242 Introduction

Advanced Operating Systems. COMP9242 Introduction Advanced Operating Systems COMP9242 Introduction Staff Lecturer in Charge Gernot Heiser Lecturer Kevin Elphinstone Various Support Staff TBA 2 Why are you here? You ve done comp3231 Did well (minimum credit)

More information

Avoiding Leakage and Synchronization Attacks through Enclave-Side Preemption Control

Avoiding Leakage and Synchronization Attacks through Enclave-Side Preemption Control Avoiding Leakage and Synchronization Attacks through Enclave-Side Preemption Control Marcus Völp, Adam Lackorzynski *, Jérémie Decouchant, Vincent Rahli, Francisco Rocha, and Paulo Esteves-Veríssimo University

More information

Implementing a Verified On-Disk Hash Table

Implementing a Verified On-Disk Hash Table Implementing a Verified On-Disk Hash Table Stephanie Wang Abstract As more and more software is written every day, so too are bugs. Software verification is a way of using formal mathematical methods to

More information

Formally Verified Software in the Real World

Formally Verified Software in the Real World Formally Verified Software in the Real World Gerwin Klein UNSW Ihor Kuz UNSW June Andronick UNSW Toby Murray University of Melbourne Melbourne, Australia Matthew Fernez UNSW Gernot Heiser UNSW ABSTRACT

More information

Designing Systems for Push-Button Verification

Designing Systems for Push-Button Verification Designing Systems for Push-Button Verification Luke Nelson, Helgi Sigurbjarnarson, Xi Wang Joint work with James Bornholt, Dylan Johnson, Arvind Krishnamurthy, EminaTorlak, Kaiyuan Zhang Formal verification

More information

Mind the Gap. A Verification Framework for Low-Level C. 1 NICTA, Australia

Mind the Gap. A Verification Framework for Low-Level C. 1 NICTA, Australia Mind the Gap A Verification Framework for Low-Level C Simon Winwood 1,2, Gerwin Klein 1,2, Thomas Sewell 1, June Andronick 1, David Cock 1, and Michael Norrish 1,3 1 NICTA, Australia 2 School of Computer

More information

Program Verification (6EC version only)

Program Verification (6EC version only) Program Verification (6EC version only) Erik Poll Digital Security Radboud University Nijmegen Overview Program Verification using Verification Condition Generators JML a formal specification language

More information

Operating System Kernels

Operating System Kernels Operating System Kernels Presenter: Saikat Guha Cornell University CS 614, Fall 2005 Operating Systems Initially, the OS was a run-time library Batch ( 55 65): Resident, spooled jobs Multiprogrammed (late

More information

Operating Systems, Fall

Operating Systems, Fall Material Operating Systems Fall 2008 Course book: A.S. Tanenbaum, Modern Operating Systems, 3rd. ed.,, Prentice-Hall, 2007 Any other large OS book, f.e. Stallings, Silbershatz, or Deitel, should be feasible

More information

LYREBIRD David Cock

LYREBIRD David Cock davec@cse.unsw.edu.aullyrebird LYREBIRD David Cock λ What is the Motivation? Program proof is important, but there s more to do. NICTA Copyright c 2011 From Imagination to Impact 2 What is the Motivation?

More information

Master level: Operating systems, distributed systems, networking,

Master level: Operating systems, distributed systems, networking, Operating Systems Fall 2008 Tiina Niklander Distributed Systems and Networking specialization area Distributed Systems and Networking Interoperable Distributed Networking Operating system Hardware Interoperable

More information

Self-Referential Compilation, Emulation, Virtualization, and Symbolic Execution with Selfie. Christoph M. Kirsch, University of Salzburg, Austria

Self-Referential Compilation, Emulation, Virtualization, and Symbolic Execution with Selfie. Christoph M. Kirsch, University of Salzburg, Austria Self-Referential Compilation, Emulation, Virtualization, and Symbolic Execution with Selfie Christoph M. Kirsch, University of Salzburg, Austria Lund University, Lund, Sweden, March 2018 selfie.cs.uni-salzburg.at

More information

Creating a Practical Security Architecture Based on sel4

Creating a Practical Security Architecture Based on sel4 Creating a Practical Security Architecture Based on sel4 Xinming (Simon) Ou University of South Florida (many slides borrowed/adapted from my student Daniel Wang) 1 Questions for sel4 Community Is there

More information

The Quest-V Separation Kernel for Mixed Criticality Systems

The Quest-V Separation Kernel for Mixed Criticality Systems The Quest-V Separation Kernel for Mixed Criticality Systems Ye Li, Richard West, and Eric Missimer Computer Science Department Boston University Boston, MA 02215 Email: {liye,richwest,missimer}@cs.bu.edu

More information

sel4 Reference Manual Version 2.0.0

sel4 Reference Manual Version 2.0.0 NICTA Trustworthy Systems http://ssrg.nicta.com.au/projects/ts/ sel4 Reference Manual Version 2.0.0 Trustworthy Systems Team, NICTA ssrg@nicta.com.au 1 December 2015 c 2015 General Dynamics C4 Systems.

More information

The Last Mile An Empirical Study of Timing Channels on sel4

The Last Mile An Empirical Study of Timing Channels on sel4 The Last Mile An Empirical Study of Timing on David Cock Qian Ge Toby Murray Gernot Heiser 4 November 2014 NICTA Funding and Supporting Members and Partners Outline The Last Mile Copyright NICTA 2014 David

More information

sel4 Reference Manual Version 8.0.0

sel4 Reference Manual Version 8.0.0 Data61 Trustworthy Systems https://ts.data61.csiro.au/projects/ts/ sel4 Reference Manual Version 8.0.0 Trustworthy Systems Team, Data61 https://sel4.systems/contact/ 17 January 2018 c 2018 General Dynamics

More information

The Quest-V Separation Kernel for Mixed Criticality Systems

The Quest-V Separation Kernel for Mixed Criticality Systems The Quest-V Separation Kernel for Mixed Criticality Systems Ye Li, Richard West, and Eric Missimer Computer Science Department Boston University Boston, MA 02215 Email: {liye,richwest,missimer}@cs.bu.edu

More information

Advanced Systems Security: Virtual Machine Systems

Advanced Systems Security: Virtual Machine Systems Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

C Refresher, Advance C, Coding Standard, Misra C Compliance & Real-time Programming

C Refresher, Advance C, Coding Standard, Misra C Compliance & Real-time Programming C Refresher, Advance C, Coding Standard, Misra C Compliance & Real-time Programming Course Overview This course transforms an IT-Professional or a Student into an expert C Programming Person with concepts

More information

Advanced Systems Security: Virtual Machine Systems

Advanced Systems Security: Virtual Machine Systems Systems and Internet Infrastructure Security Network and Security Research Center Department of Computer Science and Engineering Pennsylvania State University, University Park PA Advanced Systems Security:

More information

Advanced Operating Systems. COMP9242 Introduction

Advanced Operating Systems. COMP9242 Introduction Advanced Operating Systems COMP9242 Introduction Staff Lecturer in Charge Gernot Heiser Lecturer Kevin Elphinstone Various Support Staff TBA 2 Why are you here? You ve done comp3231 Did well (minimum credit)

More information

Staff. Advanced Operating Systems. Why are you here? What can you expect?

Staff. Advanced Operating Systems. Why are you here? What can you expect? Staff Advanced Operating Systems COMP9242 Introduction Lecturer in Charge Gernot Heiser Lecturer Kevin Elphinstone Various Support Staff TBA 2 Why are you here? You ve done comp3231 Did well (minimum credit)

More information

Initial Evaluation of a User-Level Device Driver Framework

Initial Evaluation of a User-Level Device Driver Framework Initial Evaluation of a User-Level Device Driver Framework Stefan Götz Karlsruhe University Germany sgoetz@ira.uka.de Kevin Elphinstone National ICT Australia University of New South Wales kevine@cse.unsw.edu.au

More information

Getting Started with AutoCorres

Getting Started with AutoCorres Getting Started with AutoCorres Japheth Lim Rohan Jacob-Rao David Greenaway September 10, 2018 Contents 1 Introduction 2 2 A First Proof with AutoCorres 2 2.1 Two simple functions: min and max...............

More information

Ironclad Apps: End-to-End Security via Automated Full-System Verification. Danfeng Zhang

Ironclad Apps: End-to-End Security via Automated Full-System Verification. Danfeng Zhang Ironclad Apps: End-to-End Security via Automated Full-System Verification Chris Hawblitzel Jon Howell Jay Lorch Arjun Narayan Bryan Parno Danfeng Zhang Brian Zill Online and Mobile Security Chase Online,

More information

OS Extensibility: SPIN and Exokernels. Robert Grimm New York University

OS Extensibility: SPIN and Exokernels. Robert Grimm New York University OS Extensibility: SPIN and Exokernels Robert Grimm New York University The Three Questions What is the problem? What is new or different? What are the contributions and limitations? OS Abstraction Barrier

More information

How Can You Trust Formally Verified Software?

How Can You Trust Formally Verified Software? How Can You Trust Formally Verified Software? Alastair Reid Arm Research @alastair_d_reid https://www.theguardian.com/business/2015/may/01/us-aviation-authority-boeing-787-dreamliner-bug-could-cause-loss-of-control

More information

Turning proof assistants into programming assistants

Turning proof assistants into programming assistants Turning proof assistants into programming assistants ST Winter Meeting, 3 Feb 2015 Magnus Myréen Why? Why combine proof- and programming assistants? Why proofs? Testing cannot show absence of bugs. Some

More information

Part 1: Introduction to device drivers Part 2: Overview of research on device driver reliability Part 3: Device drivers research at ERTOS

Part 1: Introduction to device drivers Part 2: Overview of research on device driver reliability Part 3: Device drivers research at ERTOS Some statistics 70% of OS code is in device s 3,448,000 out of 4,997,000 loc in Linux 2.6.27 A typical Linux laptop runs ~240,000 lines of kernel code, including ~72,000 loc in 36 different device s s

More information

Overview of the OS. CS 450 : Operating Systems Michael Saelee

Overview of the OS. CS 450 : Operating Systems Michael Saelee Overview of the OS CS 450 : Operating Systems Michael Saelee 1 Agenda - what is an operating system? - what are its main responsibilities? - how does it achieve them? - how is an operating

More information

The benefits and costs of writing a POSIX kernel in a high-level language

The benefits and costs of writing a POSIX kernel in a high-level language 1 / 38 The benefits and costs of writing a POSIX kernel in a high-level language Cody Cutler, M. Frans Kaashoek, Robert T. Morris MIT CSAIL Should we use high-level languages to build OS kernels? 2 / 38

More information

The Open-Source sel4 Kernel Military-Grade Security Through

The Open-Source sel4 Kernel Military-Grade Security Through The Open-Source sel4 Kernel Military-Grade Security Through Mathema@cs Gernot Heiser gernot.heiser@data61.csiro.au @GernotHeiser Trustworthy Systems Data61 Linaro Connect SFO 17 h"ps://sel4.systems Car

More information

Organisatorials. About us. Binary Search (java.util.arrays) When Tue 9:00 10:30 Thu 9:00 10:30. COMP 4161 NICTA Advanced Course

Organisatorials. About us. Binary Search (java.util.arrays) When Tue 9:00 10:30 Thu 9:00 10:30. COMP 4161 NICTA Advanced Course Organisatorials COMP 4161 NICTA Advanced Course When Tue 9:00 10:30 Thu 9:00 10:30 Where Tue: Law 163 (F8-163) Thu: Australian School Business 205 (E12-205) Advanced Topics in Software Verification Rafal

More information

A Memory Allocation Model For An Embedded Microkernel

A Memory Allocation Model For An Embedded Microkernel A Memory Allocation Model For An Embedded Microkernel Dhammika Elkaduwe Philip Derrin Kevin Elphinstone National ICT Australia and University of New South Wales Sydney, Australia firstname.lastname@nicta.com.au

More information

Tolerating Malicious Drivers in Linux. Silas Boyd-Wickizer and Nickolai Zeldovich

Tolerating Malicious Drivers in Linux. Silas Boyd-Wickizer and Nickolai Zeldovich XXX Tolerating Malicious Drivers in Linux Silas Boyd-Wickizer and Nickolai Zeldovich How could a device driver be malicious? Today's device drivers are highly privileged Write kernel memory, allocate memory,...

More information

COMP9242 Advanced Operating Systems S2/2011 Week 9: Microkernel Design Gernot Heiser, NICTA

COMP9242 Advanced Operating Systems S2/2011 Week 9: Microkernel Design Gernot Heiser, NICTA COMP9242 Advanced Operating Systems S2/2011 Week 9: Microkernel Design Copyright Notice These slides are distributed under the Creative Commons Attribution 3.0 License You are free: to share to copy, distribute

More information

Real Time and Embedded Systems. by Dr. Lesley Shannon Course Website:

Real Time and Embedded Systems. by Dr. Lesley Shannon   Course Website: Real Time and Embedded Systems by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc351 Simon Fraser University Slide Set: 2 Date: September 13,

More information

Verification & Validation of Open Source

Verification & Validation of Open Source Verification & Validation of Open Source 2011 WORKSHOP ON SPACECRAFT FLIGHT SOFTWARE Gordon Uchenick Coverity, Inc Open Source is Ubiquitous Most commercial and proprietary software systems have some open

More information

csci3411: Operating Systems

csci3411: Operating Systems csci3411: Operating Systems Lecture 3: System structure and Processes Gabriel Parmer Some slide material from Silberschatz and West System Structure System Structure How different parts of software 1)

More information

Protection. Thierry Sans

Protection. Thierry Sans Protection Thierry Sans Protecting Programs How to lower the risk of a program security flaw resulting from a bug? 1. Build better programs 2. Build better operating systems Build Better Programs Why are

More information

Combining program verification with component-based architectures. Alexander Senier BOB 2018 Berlin, February 23rd, 2018

Combining program verification with component-based architectures. Alexander Senier BOB 2018 Berlin, February 23rd, 2018 Combining program verification with component-based architectures Alexander Senier BOB 2018 Berlin, February 23rd, 2018 About Componolit 2 What happens when we use what's best? 3 What s Best? Mid-90ies:

More information

type classes & locales

type classes & locales Content Rough timeline Intro & motivation, getting started [1] COMP 4161 NICTA Advanced Course Advanced Topics in Software Verification Gerwin Klein, June Andronick, Toby Murray type classes & locales

More information

CSE 120 Principles of Operating Systems

CSE 120 Principles of Operating Systems CSE 120 Principles of Operating Systems Fall 2016 Lecture 2: Architectural Support for Operating Systems Geoffrey M. Voelker Administrivia Project 0 Due 10/4, done individually Homework #1 Due 10/6 Project

More information

LOCAL OPERATING SYSTEMS R&D AND OPPOR TUNITIES FOR STUDENTS

LOCAL OPERATING SYSTEMS R&D AND OPPOR TUNITIES FOR STUDENTS OVERVIEW Cool systems stuff happening at: LOCAL OPERATING SYSTEMS R&D AND OPPOR TUNITIES FOR STUDENTS COMP9242 2006/S2 Week 14 UNSW Gelato@UNSW Linux scalability and performance on Itanium National ICT

More information

RISCV with Sanctum Enclaves. Victor Costan, Ilia Lebedev, Srini Devadas

RISCV with Sanctum Enclaves. Victor Costan, Ilia Lebedev, Srini Devadas RISCV with Sanctum Enclaves Victor Costan, Ilia Lebedev, Srini Devadas Today, privilege implies trust (1/3) If computing remotely, what is the TCB? Priviledge CPU HW Hypervisor trusted computing base OS

More information

Blockchains: new home for proven-correct software. Paris, Yoichi Hirai formal verification engineer, the Ethereum Foundation

Blockchains: new home for proven-correct software. Paris, Yoichi Hirai formal verification engineer, the Ethereum Foundation Blockchains: new home for proven-correct software Paris, 2017-2-17 Yoichi Hirai formal verification engineer, the Ethereum Foundation Lyon: 2014 January Have you heard of a web site where you can get Bitcoin

More information

6.828: OS/Language Co-design. Adam Belay

6.828: OS/Language Co-design. Adam Belay 6.828: OS/Language Co-design Adam Belay Singularity An experimental research OS at Microsoft in the early 2000s Many people and papers, high profile project Influenced by experiences at

More information

Mapped Separation Logic

Mapped Separation Logic Mapped Separation Logic Rafal Kolanski and Gerwin Klein Sydney Research Lab., NICTA, Australia School of Computer Science and Engineering, UNSW, Sydney, Australia {rafal.kolanski gerwin.klein}@nicta.com.au

More information

Computer Systems A Programmer s Perspective 1 (Beta Draft)

Computer Systems A Programmer s Perspective 1 (Beta Draft) Computer Systems A Programmer s Perspective 1 (Beta Draft) Randal E. Bryant David R. O Hallaron August 1, 2001 1 Copyright c 2001, R. E. Bryant, D. R. O Hallaron. All rights reserved. 2 Contents Preface

More information

The COGENT Case for Property-Based Tes=ng

The COGENT Case for Property-Based Tes=ng The OGENT ase for Property-Based Tes=ng Zilin hen, Liam O'onnor, Gabriele Keller, Gerwin Klein and Gernot Heiser PLOS 17 www.data61.csiro.au What Is OGENT? Reduces the cost of formally verifying systems

More information

9/19/18. COS 318: Operating Systems. Overview. Important Times. Hardware of A Typical Computer. Today CPU. I/O bus. Network

9/19/18. COS 318: Operating Systems. Overview. Important Times. Hardware of A Typical Computer. Today CPU. I/O bus. Network Important Times COS 318: Operating Systems Overview Jaswinder Pal Singh and a Fabulous Course Staff Computer Science Department Princeton University (http://www.cs.princeton.edu/courses/cos318/) u Precepts:

More information

A Formally Verified NAT Stack

A Formally Verified NAT Stack Solal Pirelli EPFL, Switzerland A Formally Verified NAT Stack Arseniy Zaostrovnykh EPFL, Switzerland George Candea EPFL, Switzerland Abstract Prior work proved a stateful NAT network function to be semantically

More information

Verified Protection Model of the sel4 Microkernel

Verified Protection Model of the sel4 Microkernel Verified Protection Model of the sel4 Microkernel Dhammika Elkaduwe, Gerwin Klein, and Kevin Elphinstone NICTA and University of New South Wales, Sydney, Australia {dhammika.elkaduwe,gerwin.klein,kevin.elphinstone}@nicta.com.au

More information

Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code (contd)

Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code. Feasibility of Testing to Code (contd) Feasibility of Testing to Code (contd) Feasibility of Testing to Code (contd) An incorrect code fragment for determining if three integers are equal, together with two test cases Flowchart has over 10

More information

The CertiKOS Project

The CertiKOS Project The CertiKOS Project Zhong Shao Yale University April 21, 2017 http://flint.cs.yale.edu Acknowledgement: Ronghui Gu, Newman Wu, Hao Chen, Jieung Kim, Jeremie Koenig, Vilhelm Sjoberg, Mengqi Liu, Lionel

More information

MICROKERNELS: MACH AND L4

MICROKERNELS: MACH AND L4 1 MICROKERNELS: MACH AND L4 CS6410 Hakim Weatherspoon Introduction to Kernels Different Types of Kernel Designs Monolithic kernel Microkernel Hybrid Kernel Exokernel Virtual Machines? Monolithic Kernels

More information

Push-button verification of Files Systems via Crash Refinement

Push-button verification of Files Systems via Crash Refinement Push-button verification of Files Systems via Crash Refinement Verification Primer Behavioral Specification and implementation are both programs Equivalence check proves the functional correctness Hoare

More information

The Weird Machines in Proof-Carrying Code

The Weird Machines in Proof-Carrying Code The Weird Machines in Proof-Carrying Code IEEE Security and Privacy LangSec Workshop 2014 Invited paper Julien Vanegue Bloomberg L.P. New York, USA. Abstract A grand challenge in computer programming is

More information

File Systems Deserve Verification Too!

File Systems Deserve Verification Too! File Systems Deserve Verification Too! Gabriele Keller 1 2 Toby Murray 1 2 Sidney Amani 1 2 Liam O Connor 1 2 Zilin Chen 1 2 Leonid Ryzhyk 1 2 3 Gerwin Klein 1 2 Gernot Heiser 1 2 1 NICTA, Sydney, Australia

More information

THREADS ADMINISTRIVIA RECAP ALTERNATIVE 2 EXERCISES PAPER READING MICHAEL ROITZSCH 2

THREADS ADMINISTRIVIA RECAP ALTERNATIVE 2 EXERCISES PAPER READING MICHAEL ROITZSCH 2 Department of Computer Science Institute for System Architecture, Operating Systems Group THREADS ADMINISTRIVIA MICHAEL ROITZSCH 2 EXERCISES due to date and room clashes we have to divert from our regular

More information

Static Program Analysis Part 1 the TIP language

Static Program Analysis Part 1 the TIP language Static Program Analysis Part 1 the TIP language http://cs.au.dk/~amoeller/spa/ Anders Møller & Michael I. Schwartzbach Computer Science, Aarhus University Questions about programs Does the program terminate

More information

Fault Isolation for Device Drivers

Fault Isolation for Device Drivers Fault Isolation for Device Drivers 39 th International Conference on Dependable Systems and Networks, 30 June 2009, Estoril Lisbon, Portugal Jorrit N. Herder Vrije Universiteit Amsterdam ~26% of Windows

More information

Pip: A Minimal OS Kernel with Provable Isolation 1

Pip: A Minimal OS Kernel with Provable Isolation 1 Pip: A Minimal OS Kernel with Provable Isolation 1 David Nowak CRIStAL, CNRS & Lille 1 University Third French-Japanese Meeting on Cybersecurity April 24, 2017 1 Joint work with the 2XS team (Lille), partially

More information

Bringing Android to Secure SDRs

Bringing Android to Secure SDRs Bringing Android to Secure SDRs David Kleidermacher Frank Vandenberg SDR 11 WinnComm - Europe Agenda Overview Why Android in SDR? Android Security Proposed Architecture Typical red-black architecture for

More information

FlexSC. Flexible System Call Scheduling with Exception-Less System Calls. Livio Soares and Michael Stumm. University of Toronto

FlexSC. Flexible System Call Scheduling with Exception-Less System Calls. Livio Soares and Michael Stumm. University of Toronto FlexSC Flexible System Call Scheduling with Exception-Less System Calls Livio Soares and Michael Stumm University of Toronto Motivation The synchronous system call interface is a legacy from the single

More information

Lecture Notes for 04/04/06: UNTRUSTED CODE Fatima Zarinni.

Lecture Notes for 04/04/06: UNTRUSTED CODE Fatima Zarinni. Lecture Notes for 04/04/06 UNTRUSTED CODE Fatima Zarinni. Last class we started to talk about the different System Solutions for Stack Overflow. We are going to continue the subject. Stages of Stack Overflow

More information

Operating System. Operating System Overview. Structure of a Computer System. Structure of a Computer System. Structure of a Computer System

Operating System. Operating System Overview. Structure of a Computer System. Structure of a Computer System. Structure of a Computer System Overview Chapter 1.5 1.9 A program that controls execution of applications The resource manager An interface between applications and hardware The extended machine 1 2 Structure of a Computer System Structure

More information

Version:1.1. Overview of speculation-based cache timing side-channels

Version:1.1. Overview of speculation-based cache timing side-channels Author: Richard Grisenthwaite Date: January 2018 Version 1.1 Introduction This whitepaper looks at the susceptibility of Arm implementations following recent research findings from security researchers

More information

Helgi Sigurbjarnarson

Helgi Sigurbjarnarson Nickel A Framework for Design and Verification of Information Flow Control Systems Helgi Sigurbjarnarson, Luke Nelson, Bruno Castro-Karney, James Bornholt, Emina Torlak, and Xi Wang.org Enforcing information

More information

An Extensible Programming Language for Verified Systems Software. Adam Chlipala MIT CSAIL WG 2.16 meeting, 2012

An Extensible Programming Language for Verified Systems Software. Adam Chlipala MIT CSAIL WG 2.16 meeting, 2012 An Extensible Programming Language for Verified Systems Software Adam Chlipala MIT CSAIL WG 2.16 meeting, 2012 The status quo in computer system design DOM JS API Web page Network JS API CPU Timer interrupts

More information

C-LANGUAGE CURRICULAM

C-LANGUAGE CURRICULAM C-LANGUAGE CURRICULAM Duration: 2 Months. 1. Introducing C 1.1 History of C Origin Standardization C-Based Languages 1.2 Strengths and Weaknesses Of C Strengths Weaknesses Effective Use of C 2. C Fundamentals

More information

CSE 120 Principles of Operating Systems

CSE 120 Principles of Operating Systems CSE 120 Principles of Operating Systems Spring 2018 Lecture 2: Architectural Support for Operating Systems Geoffrey M. Voelker Administrivia Project 0 Due 4/9 11:59pm, done individually Homework #1 Due

More information

0x1A Great Papers in Computer Security

0x1A Great Papers in Computer Security CS 380S 0x1A Great Papers in Computer Security Vitaly Shmatikov http://www.cs.utexas.edu/~shmat/courses/cs380s/ slide 1 Reference Monitor Observes execution of the program/process At what level? Possibilities:

More information

csci3411: Operating Systems

csci3411: Operating Systems csci3411: Operating Systems Lecture 3: System structure and Processes Gabriel Parmer Some slide material from Silberschatz and West System Structure System Structure How different parts of software 1)

More information

Operating System Security

Operating System Security Operating System Security Operating Systems Defined Hardware: I/o...Memory.CPU Operating Systems: Windows or Android, etc Applications run on operating system Operating Systems Makes it easier to use resources.

More information