lecture 7 - l4android: a generic operating system framework for secure...

38
Lecture 7 L4Android: A Generic Operating System Framework for Secure Smartphones Matthias Lange, Adam Lackorzynski et al. Operating Systems Practical 19 November, 2014 OSP Lecture 7, L4Android 1/38

Upload: others

Post on 02-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • Lecture 7L4Android: A Generic Operating System Framework for Secure

    Smartphones

    Matthias Lange, Adam Lackorzynski et al.

    Operating Systems Practical

    19 November, 2014

    OSP Lecture 7, L4Android 1/38

  • Contents

    Context

    Proposed solution

    Fiasco.OC

    L4Re

    L4Android

    Evaluation

    Keywords

    Questions

    OSP Lecture 7, L4Android 2/38

  • Outline

    Context

    Proposed solution

    Fiasco.OC

    L4Re

    L4Android

    Evaluation

    Keywords

    Questions

    OSP Lecture 7, L4Android 3/38

  • Context

    I Ubiquity of smartphonesI Need for secure apps

    I Near Field CommunicationI SIM cards

    I Inherent lack of security in smartphone software

    OSP Lecture 7, L4Android 4/38

  • Security issues: delayed updates

    I Mainline Android development done by Google

    I Phone vendors deploy customized Android versionsI “Maintenance nightmare”:

    I Provide periodic updates that fix vulnerabilitiesI Or no updates at all because of high costs

    OSP Lecture 7, L4Android 5/38

  • Security issues: Linux kernel

    I Monolithic kernels are difficult to certify/verify

    I Device drivers run with full privileges

    I Kernel components aren’t isolated

    I Device manufacturers develop custom (often proprietary)drivers

    OSP Lecture 7, L4Android 6/38

  • Security issues: rooted phones

    I Root privileges allow full access to:I All the user dataI Manufacturer settingsI The kernel

    I “Rooted” phones are more vulnerableI Android phones don’t allow root access by default

    I Root access can be obtainedI Manually by the userI By malicious software (via exploits)

    OSP Lecture 7, L4Android 7/38

  • Security issues: Android permission system

    I Permissions in AndroidI Based on Mandatory Access

    Control (MAC)I “All or nothing” paradigmI Too coarse-grained

    I E.g.: grant access to Internetand Address Book

    I → Software can send userAddress Book to any remotelocation

    OSP Lecture 7, L4Android 8/38

  • Security issues: Android permission system

    I Permissions in Android

    I Chrome 39

    OSP Lecture 7, L4Android 9/38

  • Outline

    Context

    Proposed solution

    Fiasco.OC

    L4Re

    L4Android

    Evaluation

    Keywords

    Questions

    OSP Lecture 7, L4Android 10/38

  • A solution

    I Isolate OS inside a virtual machine

    I Run secure apps outside the OSI Use a microkernel-based framework

    I ”Extended hardware”I Small Trusted Computing Base (TCB)I Drivers as user space services

    OSP Lecture 7, L4Android 11/38

  • A solution: L4Android

    I Framework for developing secure smartphone appsI Components:

    I Microkernel: Fiasco.OC µkernelI Services: L4Re runtime environmentI Paravirtualized kernel: L4AndroidI User space: Android libraries, apps, . . .

    OSP Lecture 7, L4Android 12/38

  • Outline

    Context

    Proposed solution

    Fiasco.OC

    L4Re

    L4Android

    Evaluation

    Keywords

    Questions

    OSP Lecture 7, L4Android 13/38

  • Fiasco.OC: Overview

    I Based on Jochen Liedtke’s L4 microkernelI Implements basic OS abstractions

    I Address SpacesI ThreadsI SchedulingI Inter-Process Communication (IPC)I Interrupt Delivery (via Asynchronous IPC)

    OSP Lecture 7, L4Android 14/38

  • Fiasco.OC: Protection Domains

    I Protection Domains:I Equivalent to Linux namespaces/containersI Host tasks on top of the microkernelI Provide isolation

    I Among virtual machinesI Between VMs and the TCB

    OSP Lecture 7, L4Android 15/38

  • Fiasco.OC: Capabilities

    I Capabilities provide access control to:I Kernel objects

    I Address spacesI ThreadsI Communication channels

    I Interrupts

    I Fine-grained control over resources

    OSP Lecture 7, L4Android 16/38

  • Fiasco.OC: Verification

    I Microkernel exposes minimal interfaceI Small number of system calls

    I Code base is small (∼20,000 lines of code)I Kernel is formally verifiable

    OSP Lecture 7, L4Android 17/38

  • Outline

    Context

    Proposed solution

    Fiasco.OC

    L4Re

    L4Android

    Evaluation

    Keywords

    Questions

    OSP Lecture 7, L4Android 18/38

  • L4 Runtime Environment

    I Software layer on top of the microkernel

    I Simplifies development in microkernel user spaceI Consists of:

    I Basic functionality: allocators, data structures, etc.I User libraries: C, C++, pthread etc.I Servers providing access to I/O devices

    OSP Lecture 7, L4Android 19/38

  • Outline

    Context

    Proposed solution

    Fiasco.OC

    L4Re

    L4Android

    Evaluation

    Keywords

    Questions

    OSP Lecture 7, L4Android 20/38

  • L4Android

    I L4Linux: Linux kernel modified to run paravirtualizedI On top of Fiasco.OC + L4ReI With fine-grained access to devices via I/O servers

    I An L4Linux instance can run without any access to peripheralsI Or it can be used as a driver provider

    I L4Android KernelI Based on L4LinuxI Contains Android patches (wakelocks, binder etc.)I Therefore it is able to run the Android user stack

    OSP Lecture 7, L4Android 21/38

  • Outline

    Context

    Proposed solution

    Fiasco.OC

    L4Re

    L4Android

    Evaluation

    Keywords

    Questions

    OSP Lecture 7, L4Android 22/38

  • Evaluation: Overview

    I Four proposed scenariosI Software SmartcardI Mobile Rootkit DetectionI Hardware Abstraction LayerI Unified Corporate and Private Phone

    I Last scenario implemented as a demoI Runnable on ARM and x86 architectures

    I Freescale iMX.51 (Cortex-A8)I Aava Mobile developer phone (Moorestown)

    OSP Lecture 7, L4Android 23/38

  • Evaluation: Software Smartcard

    I Smartcard:I Processor and memory integrated on a plastic cardI Cryptographic coprocessor smarcards for:

    I Mobile phones (SIM, NFC)I Credit cardsI USB tokens

    I “Software smartcard”:I Performing the same computations on a general-purpose

    processorI Cheaper and more flexible than a physical smartcardI Usually unfeasible due to high security demands

    OSP Lecture 7, L4Android 24/38

  • Evaluation: Software Smartcard

    Possible Smartcard setup:

    OSP Lecture 7, L4Android 25/38

  • Evaluation: Software Smartcard

    I Fiasco.OC provides a secure computing baseI The smartcard operations run on top of the microkernelI L4Re and microkernel syscalls offer a trusted interfaceI Isolation from the L4Android domain is achieved

    I Timing attacks are deflected by secure scheduling

    I Vendors can implement various virtual smartcardconfigurations

    OSP Lecture 7, L4Android 26/38

  • Evaluation: Hardware Abstraction Layer

    OSP Lecture 7, L4Android 27/38

  • Evaluation: Hardware Abstraction Layer

    I HAL: proposed L4-based development model for Linux drivers

    I Move driver logic to a layer between L4Re and the guest kernelI Develop generic driver stub in the guest OS

    I Easier to port drivers to new kernel versionsI By updating the Linux-HAL interface

    I Driver faults are isolated from the rest of the system

    OSP Lecture 7, L4Android 28/38

  • Evaluation: Dual Android Phone

    I Corporate smartphones contain sensitive informationI Employees routinely carry two smartphones:

    I A company-provided smartphone configured according to thecompany’s security policy

    I A personal, unrestricted phone

    I Alternative: Bring Your Own Device (BYOD)

    OSP Lecture 7, L4Android 29/38

  • Evaluation: Dual Android Phone

    I Solution: a single phone running two Android virtual machines

    I Private Android: can even be rootedI Secure Android: implements corporate security policies

    I User can easily switch between instances at runtime

    OSP Lecture 7, L4Android 30/38

  • Evaluation: Dual Android Phone

    OSP Lecture 7, L4Android 31/38

  • Evaluation: Dual Android Phone

    I Access to devices is multiplexed between instancesI Stub drivers in the guest kernelsI Driver servers in the L4 Runtime Environment

    I Virtualization requirements:I Secure GUI serverI Virtual Ethernet interfacesI Mobile telephony, hardware graphics/sound acceleration

    I Drivers are binaries in the Linux kernel or Android user spaceI Difficult to virtualize

    OSP Lecture 7, L4Android 32/38

  • Evaluation: Dual Android Phone

    I Demo: http://l4android.org

    OSP Lecture 7, L4Android 33/38

    http://l4android.org

  • Outline

    Context

    Proposed solution

    Fiasco.OC

    L4Re

    L4Android

    Evaluation

    Keywords

    Questions

    OSP Lecture 7, L4Android 34/38

  • Keywords

    I smartphones

    I operating system security

    I Mandatory Access Control

    I protection domain

    I capability

    I Trusted Computing Base

    I paravirtualization

    I microkernel

    I L4

    I I/O server

    OSP Lecture 7, L4Android 35/38

  • Resources

    I http://l4android.org

    I http://l4linux.org

    I http://os.inf.tu-dresden.de/L4/

    I http://users.sec.t-labs.tu-berlin.de/~steffen/

    papers/spsm03-lange.pdf

    I Jochen Lietdke: On µ-Kernel Construction

    OSP Lecture 7, L4Android 36/38

    http://l4android.orghttp://l4linux.orghttp://os.inf.tu-dresden.de/L4/http://users.sec.t-labs.tu-berlin.de/~steffen/papers/spsm03-lange.pdfhttp://users.sec.t-labs.tu-berlin.de/~steffen/papers/spsm03-lange.pdf

  • Outline

    Context

    Proposed solution

    Fiasco.OC

    L4Re

    L4Android

    Evaluation

    Keywords

    Questions

    OSP Lecture 7, L4Android 37/38

  • Questions

    ?

    OSP Lecture 7, L4Android 38/38

    ContextProposed solutionFiasco.OCL4ReL4AndroidEvaluationKeywordsQuestions