Android Security GROUP MAY 1208 Alex Frisvold Alex Meyer Nazmus Sakib Eric Van Buren.

Slides:



Advertisements
Similar presentations
Threads, SMP, and Microkernels
Advertisements

1 GP Confidential © GlobalPlatform’s Value Proposition for Mobile Point of Sale (mPOS)
1 September 1,  Motivation  Background  TrustDump Architecture  Implementation Details  Evaluation  Summary 2.
Building and Deploying Safe and Secure Android Apps for Enterprise Presented by Technology Consulting Group at Endeavour Software Technologies.
Mobile Mobile OS and Application Team: Kwok Tak Chi Law Tsz Hin So Ting Wai.
DEPARTMENT OF COMPUTER ENGINEERING
Copyright © Clifford Neuman - UNIVERSITY OF SOUTHERN CALIFORNIA - INFORMATION SCIENCES INSTITUTE USC CSci599 Trusted Computing Lecture Three.
Preliminary Design Review Jan 31, 2006 Brianna Bethel Robert Havlik Jessica Lowry Alex Silva.
Figure 1.1 Interaction between applications and the operating system.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Operating Systems.
Virtualization for Cloud Computing
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Senior Design May AbstractDesign Alex Frisvold Alex Meyer Nazmus Sakib Eric Van Buren Our project is to develop a working emulator for an Android.
Learning Outcomes At the end of this lesson, students should be able to: State the types of system software – Operating system – Utility system Describe.
Tanenbaum 8.3 See references
Android Introduction Platform Overview.
Chapter 2 Operating System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Security in the industry H/W & S/W What is AMD’s ”enhanced virus protection” all about? What’s coming next? Presented by: Micha Moffie.
VMM Based Rootkit Detection on Android Class Presentation Pete Bohman, Adam Kunk, Erik Shaw.
Chapter 2 Operating System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Lesson 8 Operating Systems
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: System Structures.
Trusted Computing BY: Sam Ranjbari Billy J. Garcia.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Extending user controlled security domain.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
An approach to on the fly activation and deactivation of virtualization-based security systems Denis Efremov Pavel Iakovenko
Virtualization: Not Just For Servers Hollis Blanchard PowerPC kernel hacker.
Trusted Computing Or How I Learned to Stop Worrying and Love the MPAA.
VirtualBox What you need to know to build a Virtual Machine.
Chapter 2 Operating System Overview
High Performance Computing on Virtualized Environments Ganesh Thiagarajan Fall 2014 Instructor: Yuzhe(Richard) Tang Syracuse University.
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
VMM Based Rootkit Detection on Android Class Presentation Pete Bohman, Adam Kunk, Erik Shaw.
Midterm Meeting Pete Bohman, Adam Kunk, Erik Shaw.
Introducing Software Computer Concepts Unit A. Introducing Software What is an Operating System? OS is the master controller for all the activities that.
Chapter 2 Operating System Overview Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design Principles,
Android Security GROUP MAY 1208 Alex Frisvold Alex Meyer Nazmus Sakib Eric Van Buren.
Improving Xen Security through Disaggregation Derek MurrayGrzegorz MilosSteven Hand.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Wireless and Mobile Security
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
VMM Based Rootkit Detection on Android
By, Rutika R. Channawar. Content Introduction Open Handset Alliance Minimum Hardware Requirements Versions Feature Architecture Advantages Disadvantages.
THE WINDOWS OPERATING SYSTEM Computer Basics 1.2.
TCS Internal Security. 2 TCS Internal Objective Objective :  Android Platform Security Architecture.
Ms. Tracy  Identify the purpose of an operating system.  Identify different operating systems.  Describe computer user interaction with multiple.
Android Security GROUP MAY 1208 Alex Frisvold Alex Meyer Nazmus Sakib Eric Van Buren.
ISeries Note3. Technology independence Technology independence  change the underlying hardware architecture and add new functionality without disrupting.
Language Based Operating Systems by Sean Olson What is a virtual machine? What is managed code? Kernels. Memory and security models. What is a language.
Android. Android An Open Handset Alliance Project A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google.
Virtualization Neependra Khare
Introduction to Operating Systems Concepts
Computer System Structures
The Post Windows Operating System
Android Mobile Application Development
Virtualization for Cloud Computing
Fundamentals of Information Systems, Sixth Edition
Trusted Computing and the Trusted Platform Module
Breaking Up is Hard to Do
Development of an Embedded Platform for Secure CPS Services
Classifications of Software Requirements
OS Virtualization.
Lesson 8 Operating Systems
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
SCONE: Secure Linux Containers Environments with Intel SGX
What is an operating system An operating system is the most important software that runs on a computer. It manages the computer's memory and processes,
Presentation transcript:

Android Security GROUP MAY 1208 Alex Frisvold Alex Meyer Nazmus Sakib Eric Van Buren

Advisors  Our project is through The Boeing Company and our advisor is Victor Lukasik, the manager of Boeing’s Cyber Mission Assurance group  Our faculty advisory at Iowa State is George Amariucai

Problem Statement  Attempt to write a software TPM on an Android OS  To accomplish this we will use an ARM security extension called TrustZone  To safely test the TPM we must have an emulator

The Project  To implement a software stack that allows the emulation of the Android operating system to use the functionality of ARM’s TrustZone  This is a proof of concept project for The Boeing Corporation so they can begin development with TrustZone

TrustZone  ARM’s processor extension that allows for a software TPM implementation  Available on all major ARM cell phone chips  There is limited open source development with TrustZone

System Overview

Application Examples of TrustZone  Secure PIN Entry  Digital Rights Management  e-Ticketing Mobile TV (Netflix)

DRM Example

TPM Overview  A TPM is a chip that resides on the motherboard, and provides 4 basic functionalities 1) Secure storage and reporting of platform configurations 2) Protected private key storage 3) Cryptographic functions 4) Initialization and management functions

TrustZone Implementation  There is no open source emulator for TrustZone making development difficult  We will use 4 different open source components in one modified stack

QEMU  Open source hardware emulator used by Android developers  Main release does not contain TrustZone emulation capabilities  Johannes Winter is a computer scientist who modified QEMU for his own research so it can emulate TrustZone

Hypervisor  Will communicate between QEMU and our two kernels, doing the context switching between them  We are still testing which one we would like to use  NOVA, Choices, custom

Fiasco Microkernel  Developed by a group at TU-Dresden  This is the only software that will run in the privileged or secure mode of the processor  Very small for security purposes

L 4 Runtime Environment  Offers a concise set of interfaces for building applications  Comprised of low-level software components that interface directly with the microkernel  Libraries and interfaces are provided and object oriented

L 4 Android  Derived from the L 4 Linux project which is developed at TU-Dresden  Designed specifically to work with Fiasco.OC microkernel  Currently runs as Android version 2.2 (Froyo) or 2.3 (Gingerbread)

Android Application  The highest part of the stack will be a program we write that uses TrustZone’s TPM features  Application will make TrustZone calls to the microkernel

Functional Requirement  The modified L4 runtime environment will run seamlessly over the modified Fiasco.OC microkernel

Functional Requirement  The L4Android operating system will run seamlessly over the modified L4 runtime environment

Functional Requirement  Our software stack will use the secure world to provide two TPM services:  Random Number Generation  RSA Key Generation

Functional Requirement  An Android application will be able to use the TPM services provided and will be able to perform the following tasks:  encrypt sensitive data using the secure world  decrypt sensitive data using the secure world

Functional Requirement  Modifications made to any of the various components of the software stack should not adversely affect any of the existing functionality of the components

Non-Functional Requirements  Modified software stack should runs at a usable speed  Modified software stack is stable and runs reliably  Modifications to QEMU, Fiasco.OC and L4RE should be written in C and C++ programming language on a Linux platform

Testing  Make sure that Fiasco.OC microkernel will run seamlessly over Mr. Winter’s QEMU  Context switching between worlds  Writing an Android application that uses TrustZone

Difference is in Memory Only write to memory when needed, better performance Overwrite memory after every context switch, better security

Development Environment  Host OS: Ubuntu 64-bit LTS

Considered Designs  Hypervisor solution: Hypervisor switching between two instances of the microkernel  Dual MMU solution: Two MMUs, each managing one world  Static Memory Division: Divide memory statically into two

Hypervisor Solution  Two kernels monitored by one hypervisor  One kernel in each world  Very secure design due to isolation of kernels  Difficult implementation

Dual MMU Solution

Static Memory Division

Difficulties Encountered  Lack of good documentation  Proprietary nature of many relevant details  Inexperience with technologies  Time constraints

Accomplishments  Discovered and documented problems  Several designs for an implementation  Built ARM images of Fiasco, L4Re and L4Linux  Good starting point for another team

Future Directions  Senior Design project  Boeing software development  Open source community