A Microkernel Virtual Machine: Building Security with Clear Interfaces Xiaoqi LuScott Smith The Johns Hopkins University.

Slides:



Advertisements
Similar presentations
Towards Remote Policy Enforcement for Runtime Protection of Mobile Code Using Trusted Computing Xinwen Zhang Francesco Parisi-Presicce Ravi Sandhu
Advertisements

NetServ Dynamic in-network service deployment Henning Schulzrinne (Columbia University) Srinivasan Seetharaman (Georgia Tech) Volker Hilt (Bell Labs)
Threads, SMP, and Microkernels
In Review JAVA C++ GUIs - Windows Webopedia.com.
Android architecture overview
Introduction to Android Mohammad A. Gowayyed CS334-Spring 2014.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
Java security (in a nutshell)
Java Security. Overview Hermetically Sealed vs. Networked Executable Content (Web Pages & ) Java Security on the Browser Java Security in the Enterprise.
Lab Information Security Using Java (Review) Lab#0 Omaima Al-Matrafi.
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM B. Bershad, S. Savage, P. Pardyak, E. G. Sirer, D. Becker, M. Fiuczynski, C. Chambers,
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Policy Weaving for Mobile Devices Drew Davidson. Smartphone security is critical – 1200 to 1400 US Army troops to be equipped with Android smartphones.
The road to reliable, autonomous distributed systems
1 Extensible Security Architectures for Java Authors: Dan S.Wallch, Dirk Balfanz Presented by Moonjoo Kim.
CS533 Concepts of Operating Systems Class 20 Summary.
The Alta Operating System Patrick Tullmann Masters Thesis Defense University of Utah.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
Microkernels: Mach and L4
Figure 1.1 Interaction between applications and the operating system.
An Approach to Safe Object Sharing Ciaran Bryce & Chrislain Razafimahefa University of Geneva, Switzerland.
Exokernel: An Operating System Architecture for Application-Level Resource Management Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
Sanzaru Capability-Based Interactions for Web Applications Raluca Sauciuc Shaunak Chatterjee University of California, Berkeley Motivation Limitations.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
Introduction to Java Programming. Contents 1. Java, etc. 2. Java's Advantages 3. Java's Disadvantages 4. Types of Java Code 5. Java Bytecodes 6. Steps.
JAVA v.s. C++ Programming Language Comparison By LI LU SAMMY CHU By LI LU SAMMY CHU.
CSE 451: Operating Systems Autumn 2013 Module 6 Review of Processes, Kernel Threads, User-Level Threads Ed Lazowska 570 Allen.
Page 19/4/2015 CSE 30341: Operating Systems Principles Raid storage  Raid – 0: Striping  Good I/O performance if spread across disks (equivalent to n.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
IMPROVING THE RELIABILITY OF COMMODITY OPERATING SYSTEMS Michael M. Swift Brian N. Bershad Henry M. Levy University of Washington.
UNIX System Administration OS Kernal Copyright 2002, Dr. Ken Hoganson All rights reserved. OS Kernel Concept Kernel or MicroKernel Concept: An OS architecture-design.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
CS533 Concepts of Operating Systems Jonathan Walpole.
1 IEEE LAN/ MAN Banf 1998 Open Java-Based Intelligent Agent Architecture for Adaptive Networking Devices Tal Lavian, Bay Architecture Lab
1 22 August 2001 The Security Architecture of the M&M Mobile Agent Framework P. Marques, N. Santos, L. Silva, J. Silva CISUC, University of Coimbra, Portugal.
Announcements Assignment 3 due. Invite friends, co-workers to your presentations. Course evaluations on Friday.
Chapter 1: Introducing JAVA. 2 Introduction Why JAVA Applets and Server Side Programming Very rich GUI libraries Portability (machine independence) A.
Basic Security: Java vs.NET Master Seminar Advanced Software Engineering Topics Prof. Jacques Pasquier-Rocha Software Engineering Group Department of Informatics.
Roopa.T PESIT, Bangalore. Source and Credits Dalvik VM, Dan Bornstein Google IO 2008 The Dalvik virtual machine Architecture by David Ehringer.
Java Security Nathan Moore CS 665. Overview Survey of Java Inherent Security Properties Java Runtime Environment Java Virtual Machine Java Security Model.
Java 2 security model Valentina Casola. Components of Java the development environment –development lifecycle –Java language features –class files and.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: Operating-System Structures.
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 18: Protection Goals of Protection Objects and Domains Access Matrix Implementation.
Processes Introduction to Operating Systems: Module 3.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
CS533 Concepts of Operating Systems Jonathan Walpole.
Background Computer System Architectures Computer System Software.
Introduction to Programming 1 1 2Introduction to Java.
Java & The Android Stack: A Security Analysis Pragati Ogal Rai Mobile Technology Evangelist PayPal, eBay Java.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
JAVA TRAINING IN NOIDA. JAVA Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented and specifically.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Computer System Structures
Applications Active Web Documents Active Web Documents.
Object Oriented Programming in
CASE STUDY 1: Linux and Android
CMPE419 Mobile Application Development
Knowledge Byte In this section, you will learn about:
Advanced Programming Fall 2017.
Chapter 2: System Structures
F II 1. Background Objectives
CMPE419 Mobile Application Development
M S COLLEGE ART’S, COMM., SCI. & BMS
CS4540 Special Topics in Web Development Introduction to .NET
Presentation transcript:

A Microkernel Virtual Machine: Building Security with Clear Interfaces Xiaoqi LuScott Smith The Johns Hopkins University

Dimensions of Code-based Security Inter-Application Security – Non-interference between independent applications Intra-Application Security –The Principle of Least Privilege within a single application System Service Security –Protect system resources from being misused by applications This talk

File IO Net IO AWT System Domain App.class Security Policy classloader SecurityManager Secure System Services in Java App Domain checkPermssion() doPrivileged() Libraries Permissions

How Java Stack Inspection Works App.main() Library.foo1() Library.foo2() … doPrivileged() App.main() Library.foo1() … Fail Succeed checkPermssion (write) CodebasePermission AppRead LibraryAll Permissions

Drawbacks of Java Security Object references can break the boundary of the system domain No clear compile-time security interface Stack inspection conflicts with compiler optimizations

The Microkernel Virtual Machine Put a clear, inviolable interface between system domain and application space Minimize the size of core system domain –Microkernel architecture, the μKVM

File IO Net IO AWT System Domain App.class Security Policy classloader Permissions SecurityManager Secure System Services in theμKVM App Domain Library

Architectural Elements of theμKVM Kernel Virtual Machine Operating System OSVersion read write seek FileIO

Declarative Connector Interfaces Kernel Virtual Machine Operating System Application or FileIO Library

A Runtime Connection Kernel Virtual Machine Operating System FileIO Application or Library

μKVM vs. J2SDK Library

TheμKVM Architecture

TheμKVM Implementation Implemented in Java by mapping theμKVM kernel, connector and service interfaces to java classes Modified Sun J2SDK, including JVM and libraries Library APIs stay unchanged except package names –java.io.* becomes library.io.* Prototype implementation –includes: file I/O, network, threads, GUI core The kernel interface consists of 7 connectors, 14 services

File IO Net IO AWT System Domain App.class Security Policy classloader Permissions SecurityManager Secure System Services in theμKVM App Domain Library

Eliminating Backdoors Kernel has no public static fields Connectors/services are the only channels to access kernel functions –Only primitive types or immutable objects can be transferred across the interface –Data are passing by copy only Exceptions Native code disallowed in application space

File IO System Domain App.class Security Policy classloader Permissions SecurityManager Inviolate Interface around System Services App Domain Library Net IOAWT

Functionality Benchmark Mauve suite J2SDK μKVM Fail PassTotalFailPassTotal File IO Network Thread Total – Numbers in the table are the number of tests

Performance with Security Security Manager is on in these benchmarks –Stack inspection for J2SDK –Security checks on the μKVM kernel interface File Open Operation File Num File Open Time (ms)Memory (kbyte) J2SDKμKVMDiff(%)J2SDKμKVMDiff(%) Diff = (μKVM – J2SDK) /J2SDK * 100%

Performance without Security File Operations: open, read and write Network: transfer time for 1M data –-1.01% ~ 3.37%, packet size = 64~16384 bytes –-1.01% ~ 2.84%, packet size = 1024 bytes File Num File Open Time (ms)Memory (kbyte) J2SDKμKVMDiff(%)J2SDKμKVMDiff(%)

Cell Project [Rinat et al. ’00] [Liu et al. ’04] Secure System Domain –J2SDK and CLR –JOS, a JKernel extension –MARCO [Pistoia et al. ’05] –Operating Systems: KaffeOS [Back et al. ’99&’00 ], JX [Golm et al. ’02] Capability-based Systems –E language [Miller] Related Work