Modular Program Monitors David Walker Princeton University (joint work with Lujo Bauer and Jay Ligatti)

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

1 Composing Security Policies with Polymer Jay Ligatti (Princeton); joint work with: Lujo Bauer (CMU), David Walker (Princeton)
Operating System Structures
1 1 Regression Verification for Multi-Threaded Programs Sagar Chaki, SEI-Pittsburgh Arie Gurfinkel, SEI-Pittsburgh Ofer Strichman, Technion-Haifa Originally.
Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
08/03/071/41 Polymer: A Language and System for Specifying Complex, Modular Run-time Policies Jay Ligatti, University of South Florida Joint work with:
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
H Apr-01 Clark Thomborson Software Security CompSci 725 Handout 28: Report Writing #2 (Sample Titles & Abstracts) Clark Thomborson University of.
An Introduction to Proof-Carrying Code David Walker Princeton University (slides kindly donated by George Necula; modified by David Walker)
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
1 Extensible Security Architectures for Java Authors: Dan S.Wallch, Dirk Balfanz Presented by Moonjoo Kim.
Software Security Monitors: Theory & Practice David Walker Princeton University (joint work with Lujo Bauer and Jay Ligatti)
Introduction to Java Programming
Principles of Object-Oriented Software Development The language Java.
1 Building with Assurance CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute May 10, 2004.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
More Enforceable Security Policies Lujo Bauer, Jay Ligatti and David Walker Princeton University (graciously presented by Iliano Cervesato)
Tools and Services for the Long Term Preservation and Access of Digital Archives Joseph JaJa, Mike Smorul, and Sangchul Song Institute for Advanced Computer.
Scott Grissom, copyright 2004Ch 3: Java Features Slide 1 Why Java? It is object-oriented provides many ready to use classes platform independent modern.
A Type System for Expressive Security Policies David Walker Cornell University.
VB in Context Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh Pittsburgh, Pa 15260
Software Security Monitors: Theory & Practice David Walker Princeton University (joint work with Lujo Bauer and Jay Ligatti)
Lecture Nine Database Planning, Design, and Administration
Poly stop a hacker David Walker Princeton University (joint work with Lujo Bauer and Jay Ligatti)
Sanzaru Capability-Based Interactions for Web Applications Raluca Sauciuc Shaunak Chatterjee University of California, Berkeley Motivation Limitations.
Presenter: Vikash Nath MCP, CCNA, MCTS. On-Premise Private Cloud Public Cloud Hybrid Cloud.
 Introduction Introduction  Definition of Operating System Definition of Operating System  Abstract View of OperatingSystem Abstract View of OperatingSystem.
Stack Management Each process/thread has two stacks  Kernel stack  User stack Stack pointer changes when exiting/entering the kernel Q: Why is this necessary?
Web-based design Flávio Rech Wagner UFRGS, Porto Alegre, Brazil SBCCI, Manaus, 24/09/00 Informática UFRGS.
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
Effective C# 50 Specific Way to Improve Your C# Item 50 Scott68.Chang.
UFCEUS-20-2 : Web Programming Lecture 5 : Object Oriented PHP (1)
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Database Systems Group Department for Mathematics and Computer Science Lars Hamann, Martin Gogolla, Mirco Kuhlmann OCL-based Runtime Monitoring of JVM.
Imperative Programming
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
Sujayyendhiren RS, Kaiqi Xiong and Minseok Kwon Rochester Institute of Technology Motivation Experimental Setup in ProtoGENI Conclusions and Future Work.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
David Streader Computer Science Victoria University of Wellington Copyright: David Streader, Victoria University of Wellington Java Programing Basics COMP.
Chapter 2 Operating System Overview
An Approach To Automate a Process of Detecting Unauthorised Accesses M. Chmielewski, A. Gowdiak, N. Meyer, T. Ostwald, M. Stroiński
Watching Software Run Brian ChessNov 18, Success is foreseeing failure. – Henry Petroski.
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
Chapter 2: A Brief History Object- Oriented Programming Presentation slides for Object-Oriented Programming by Yahya Garout KFUPM Information & Computer.
Integrated Systems Division Service-Oriented Programming Guy Bieber, Lead Architect Motorola ISD C4I 2000 OOPSLA Jini Pattern Language Workshop Guy Bieber,
Writing Systems Software in a Functional Language An Experience Report Iavor Diatchki, Thomas Hallgren, Mark Jones, Rebekah Leslie, Andrew Tolmach.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
CSSE501 Object-Oriented Development. Chapter 4: Classes and Methods  Chapters 4 and 5 present two sides of OOP: Chapter 4 discusses the static, compile.
Topic 1 Object Oriented Programming. 1-2 Objectives To review the concepts and terminology of object-oriented programming To discuss some features of.
ABone Architecture and Operation ABCd — ABone Control Daemon Server for remote EE management On-demand EE initiation and termination Automatic EE restart.
EXTENSIBILITY, SAFETY AND PERFORMANCE IN THE SPIN OPERATING SYSTEM
CS 346 – Chapter 2 OS services –OS user interface –System calls –System programs How to make an OS –Implementation –Structure –Virtual machines Commitment.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Learning Symbolic Interfaces of Software Components Zvonimir Rakamarić.
Unix Security Assessing vulnerabilities. Classifying vulnerability types Several models have been proposed to classify vulnerabilities in UNIX-type Oses.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
.NET Mobile Application Development XML Web Services.
MOPS: an Infrastructure for Examining Security Properties of Software Authors Hao Chen and David Wagner Appears in ACM Conference on Computer and Communications.
TTCN-3 Testing and Test Control Notation Version 3.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
1 Jay Ligatti (Princeton University); joint work with: Lujo Bauer (Carnegie Mellon University), David Walker (Princeton University) Enforcing Non-safety.
Objects as a programming concept
Component Based Software Engineering
1. 2 VIRTUAL MACHINES By: Satya Prasanna Mallick Reg.No
Enforcing Non-safety Security Policies with Program Monitors
Object Oriented Programming
(Computer fundamental Lab)
Outline Operating System Organization Operating System Examples
Object-Oriented PHP (1)
Presentation transcript:

Modular Program Monitors David Walker Princeton University (joint work with Lujo Bauer and Jay Ligatti)

Modular Run-time Program MonitorsDavid Walker Program Monitors A program monitor is a coroutine that runs in parallel with an untrusted application –monitors process security-relevant actions decide to allow/disallow application actions may terminate or suspend application execution –monitors detect, prevent, and recover from erroneous or malicious applications at run time

Modular Run-time Program MonitorsDavid Walker Simple Monitor Structure Monitors have 3 components –set of security-relevant application actions –security state –computation a Access Control Monitor fopen fclose actions acl state computation acl lookup

Modular Run-time Program MonitorsDavid Walker Polymer Project Polymer –An extension of Java designed to simplify construction of run-time program monitors Design methodology –A formula for producing well-structured, easy-to-understand, easy-to-modify monitors

Modular Run-time Program MonitorsDavid Walker Policy Architecture: The Problem Java core Polymer language extensions Host System (Java) Program Monitor Definition Untrusted application

Modular Run-time Program MonitorsDavid Walker Policy Architecture: Simple Policies Java core Polymer language extensions Host System (Java) Simple Policy Def. system interface

Modular Run-time Program MonitorsDavid Walker class limitFiles extends Policy { private int openFiles = 0; private int maxOpen = 0; limitFiles(int max) { maxOpen = max; }.... } A Simple Polymer Policy private policy state, protected from malicious applications policy constructor

Modular Run-time Program MonitorsDavid Walker class limitFiles extends Policy { private int openFiles =... private int maxOpen =... private ActionSet actions = new ActionSet( new String[] {“fileOpen(String)”, “fileClose()”} );.... } A Simple Polymer Policy Continued set of policy- relevant methods

Modular Run-time Program MonitorsDavid Walker class limitFiles extends Policy { private ActionSet actions =... private int openFiles =... private int maxOpen =... Suggestion step(Action a) { aswitch (a) { case fileOpen(String s) : if (++openFiles <= maxOpen) return Suggestion.OK(); else return Suggestion.Halt(); case fileClose() :... A Simple Polymer Policy Continued policy behaviour

Modular Run-time Program MonitorsDavid Walker class limitFiles extends Policy { private ActionSet actions =... private int openFiles =... private int maxOpen =... Suggestion step(Action a) { aswitch (a) { case fileOpen(String s) : if (++openFiles <= maxOpen) return Suggestion.OK(); else return Suggestion.Halt(); case fileClose() :... A Simple Polymer Policy Continued

Modular Run-time Program MonitorsDavid Walker class limitFiles extends Policy { private ActionSet actions =... private int openFiles =... private int maxOpen =... Suggestion step(Action a) { aswitch (a) { case fileOpen(String s) : if (++openFiles <= maxOpen) return Suggestion.OK(); else return Suggestion.Halt(); case fileClose() :... A Simple Polymer Policy Continued

Modular Run-time Program MonitorsDavid Walker class limitFiles extends Policy { private ActionSet actions =... private int openFiles =... private int maxOpen =... Suggestion step(Action a) { aswitch (a) { case fileOpen(String s) : if (++openFiles <= maxOpen) return Suggestion.OK(); else return Suggestion.Halt(); case fileClose() :... A Simple Polymer Policy Continued

Modular Run-time Program MonitorsDavid Walker Realistic Monitors Protect complex system interfaces –interfaces replicate functionality in many different places –method parameters communicate information in different forms –eg: Java file system interface 9 different methods to open files 4 different methods to close files filename strings, file objects, self used to identify files

Modular Run-time Program MonitorsDavid Walker Policy Architecture: Abstract Actions Java core Polymer language extensions Host System (Java) Abstract Action Def. concrete system interface abstract system interface Simple Policy Def.

Modular Run-time Program MonitorsDavid Walker Abstract Action Definitions java.lang.io FileReader(String fileName); FileReader(File file); RandomAccessFile(...);... FileReader.close(); RandomAccessFile.close();... fileOpen(String n); fileClose();

Modular Run-time Program MonitorsDavid Walker Realistic Monitors Combine simple policies defined over a variety of different resources –eg: sample applet policy file system access control bounds on bytes written and number of files opened restricted network access –no access after file system read –communication with applet source only

Modular Run-time Program MonitorsDavid Walker Policy Architecture: Complex Policies Java core Polymer language extensions Host System (Java) Abstract Action Def. Simple Policy Def. Policy Comb. Def. Complex, System-specific Policy concrete system interface abstract system interface

Modular Run-time Program MonitorsDavid Walker Policy Combinators Conjunction, Disjunction, Chinese wall,... s1 s2 Conjunctive Policy P1P2  s

Modular Run-time Program MonitorsDavid Walker Related Work Aspect-oriented programming –New polymer features: first-class suggestions, abstract actions, action patterns, policy combinators, policy architecture, formal semantics Monitoring languages Poet and Pslang, Naccio, Ariel, Spin Kernel Logical monitoring specifications MAC (temporal logic), Bigwig (second-order monadic logic)

Modular Run-time Program MonitorsDavid Walker Summary: Polymer First steps towards the design of a modern language for programming modular run- time security monitors For future software releases & papers see –

Modular Run-time Program MonitorsDavid Walker End