Modern Systems: Security

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

Information Flow and Covert Channels November, 2006.
Operating System Security
Cobalt: Separating content distribution from authorization in distributed file systems Kaushik Veeraraghavan Andrew Myrick Jason Flinn University of Michigan.
Logical Attestation: An Authorization Architecture for Trustworthy Computing Emin Gün Sirer Willem de Bruijn †, Patrick Reynolds *, Alan Shieh ‡, Kevin.
Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Ensuring Operating System Kernel Integrity with OSck By Owen S. Hofmann Alan M. Dunn Sangman Kim Indrajit Roy Emmett Witchel Kent State University College.
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.
 Alexandra Constantin  James Cook  Anindya De Computer Science, UC Berkeley.
Ashish Kundu CS590F Purdue 02/12/07 Language-Based Information Flow Security Andrei Sabelfield, Andrew C. Myers Presentation: Ashish Kundu
The Design and Implementation of a Certifying Compiler [Necula, Lee] A Certifying Compiler for Java [Necula, Lee et al] David W. Hill CSCI
Fundamentals of Computer Security Geetika Sharma Fall 2008.
1 Extensible Security Architectures for Java Authors: Dan S.Wallch, Dirk Balfanz Presented by Moonjoo Kim.
CSE331: Introduction to Networks and Security Lecture 28 Fall 2002.
Extensibility, Safety and Performance in the SPIN Operating System Bershad et al Presentation by norm Slides shamelessly “borrowed” from Stefan Savage’s.
Edward Tsai – CS 239 – Spring 2003 Strong Security for Active Networks CS 239 – Network Security Edward Tsai Tuesday, May 13, 2003.
1 Enforcing Confidentiality in Low-level Programs Andrew Myers Cornell University.
Programmability with Proof-Carrying Code George C. Necula University of California Berkeley Peter Lee Carnegie Mellon University.
Verifiable Security Goals
Decentralized Robustness Stephen Chong Andrew C. Myers Cornell University CSFW 19 July 6 th 2006.
1 Building with Assurance CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute May 10, 2004.
Polyglot: An Extensible Compiler Framework for Java Nathaniel Nystrom, Michael R. Clarkson, and Andrew C. Myers Presentation by Aaron Kimball & Ben Lerner.
A Type System for Expressive Security Policies David Walker Cornell University.
Figure 1.1 Interaction between applications and the operating system.
Information Systems Security Security Architecture Domain #5.
Automatic Implementation of provable cryptography for confidentiality and integrity Presented by Tamara Rezk – INDES project - INRIA Joint work with: Cédric.
Patterns for Secure Boot and Secure Storage in Computer Systems By: Hans L¨ohr, Ahmad-Reza Sadeghi, Marcel Winandy Horst G¨ortz Institute for IT Security,
ISA 562 Internet Security Theory & Practice
G53SEC 1 Reference Monitors Enforcement of Access Control.
Containment and Integrity for Mobile Code Security policies as types Andrew Myers Fred Schneider Department of Computer Science Cornell University.
Session 2 - Security Models and Architecture. 2 Overview Basic concepts The Models –Bell-LaPadula (BLP) –Biba –Clark-Wilson –Chinese Wall Systems Evaluation.
Security Architecture and Design Chapter 4 Part 3 Pages 357 to 377.
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
Native Client: A Sandbox for Portable, Untrusted x86 Native Code
Copyright © George Coulouris, Jean Dollimore, Tim Kindberg This material is made available for private study and for direct.
Chapter 5 Network Security
Containment and Integrity for Mobile Code End-to-end security, untrusted hosts Andrew Myers Fred Schneider Department of Computer Science Cornell University.
Scalability in a Secure Distributed Proof System Kazuhiro Minami and David Kotz May 9, 2006 Institute for Security Technology Studies Dartmouth College.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
SECURE WEB APPLICATIONS VIA AUTOMATIC PARTITIONING S. Chong, J. Liu, A. C. Myers, X. Qi, K. Vikram, L. Zheng, X. Zheng Cornell University.
Lightweight Consistency Enforcement Schemes for Distributed Proofs with Hidden Subtrees Adam J. Lee, Kazuhiro Minami, and Marianne Winslett University.
G53SEC 1 Reference Monitors Enforcement of Access Control.
Zeldovich et al. (both papers) Reading Group by Theo.
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style Decentralized Information Flow A paper by Myers/Liskov.
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style Securing Distributed Systems with Information Flow Control.
CS533 Concepts of Operating Systems Jonathan Walpole.
Language-Based Information- Flow Security (Sabelfeld and Myers) “Practical methods for controlling information flow have eluded researchers for some time.”
PREPARED BY: MS. ANGELA R.ICO & MS. AILEEN E. QUITNO (MSE-COE) COURSE TITLE: OPERATING SYSTEM PROF. GISELA MAY A. ALBANO PREPARED BY: MS. ANGELA R.ICO.
1 Security Architecture and Designs  Security Architecture Description and benefits  Definition of Trusted Computing Base (TCB)  System level and Enterprise.
A Proof-Carrying File System Deepak Garg and Frank Pfenning (Carnegie Mellon University) IEEE Symposium on Security and Privacy May 18, 2010.
CMSC 818J: Privacy enhancing technologies Lecture 2.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Hardware-rooted Trust for Secure Key Management & Transient Trust
Verifiable Security Goals
EnGarde: Mutually Trusted Inspection of SGX Enclaves
Outline What does the OS protect? Authentication for operating systems
Paper Reading Group:. Language-Based Information-Flow Security. A
Outline What does the OS protect? Authentication for operating systems
Computer Security CS May, 2018.
Building Systems That Flexibly Control Downloaded Executable Content
Information Security CS 526
Chapter 1 Introduction.
Language-based Security
Information Security CS 526
Sai Krishna Deepak Maram, CS 6410
SCONE: Secure Linux Containers Environments with Intel SGX
Shielding applications from an untrusted cloud with Haven
Information Security CS 526
Ensuring Correctness over Untrusted Private Database
Presentation transcript:

Modern Systems: Security Presented by Andrew Ferraiuolo Cornell University CS 6510 9.20.2016

Two Secure Systems Approaches Fabric (Myers) Information flow Nexus (Sirer & Schneider) Credentials-based authentication Hardware root-of-trust

Information Flow Track and constrain the propagation of data throughout the system Confidential Public Trusted Untrusted

Information Flow Background Lattice Model (Denning 1976) Confidentiality and integrity are duals (Biba 1977) Noninterference (Goguen 1982) – If an attacker can observe data in set L but not H, execution looks deterministic regardless of H. secret untrusted public trusted

Applications of Information Flow Operating Systems DStar, HiStar (Zeldovich 2008) Digital logic Gate-level information flow tracking – (Tiwari 2009) Hardware architecture Dynamic information flow tracking – (Suh 2003) Type Systems A lot of work (Survey: Sabelfield 2003)

Hardware Authentication: TPM Hardware support for providing remote attestation of software Problems: Cannot describe state-dependent trust Compromises privacy Provides purely axiomatic trust

Trust Bases Axiomatic – A principal is assumed to be trusted Trusted platform module Synthetic – Transforms untrusted code into trustworthy code Reference monitors, sandboxing Analytic – Predicts whether certain program behaviors are possible Proof-carrying code (Necula 1996), information flow!

Credentials Based Authorization Permit access when a principal satisfies some property (Appel 1999) Goal Formula: conditions under which resource can be accessed Credentials: a proof that satisfies a goal formula Nexus adds features to support all three bases of trust. Can Nexus be used to perform information flow analysis? Would you want it to?

Fabric Goal: Secure distributed computation Approach: Secure language – information flow type system enforces noninterference Decentralized security – multiple distrusting parties, no central authority

Principals Represent entities (e.g., users, groups, nodes) and privileges. Acts-for relation: supports delegation, can be used for access control

Labels Express policies in the code labels are associated with data describe which principals can act on them and how Policies are enforced mostly statically at compile-time Some checks, e.g. for remote procedure calls are checked dynamically

Labels Decentralized label model (Myers 2000) Flow ordering Written in terms of principals Confidentiality { alice → bob} Integrity { alice ← bob } Flow ordering permitted flow among labels Trust ordering restrictiveness of policy (new in this paper)

Label Example

Remote Calls Since fabric is a distributed system, it supports remote procedure calls. Procedure m1 makes a remote procedure call. First it looks up a worker node “w”. Then it does an access control check to see that w has the authority of bob. If it does it makes an RPC of method m2 on worker w. Statically, the compiler checks that all the data sent to a worker is permitted to be read by that worker. Here data has a label that is allowed to be read by bob. Since it happens in a context where w actsfor bob, this is secure The recipient of the remote call also needs to ensure that the data it receives is trustworthy. Since it has no knowledge of the caller at compile-time, the check is dynamic. At run-time the label to the write of m2 checks that the caller has the authority of Alice.

System Architecture Fabric nodes take one of three forms Storage nodes – persistent objects Worker nodes – perform computation Dissemination nodes – data replication A single host can have multiple nodes

Evaluation: CMS 2X-4X slowdown compared to regular Java Evaluated the page load latency for CMS for three actions and 5 implementations of CMS The bottom 2 implementations have an in-memory store. The best case is Java with an in-memory store. The Java implementation outperforms the other previous implementations, and so the FabIL implementation does as well The FabIL/memory implementation has a 2X – 4X slowdown compared to the Java implementation. 2X-4X slowdown compared to regular Java

Evaluation: OO7 Benchmark The plain Java implementation runs about 10 times faster for the Hot implementatio The regular Java implementation is 10X faster

Nexus Goal: Support authorization with all three trust bases. Approach: Nexus authorization logic (NAL) – describes principals and their beliefs Reference monitor – general-purpose proof-checker enforces NAL OS and hardware features for each basis of trust.

Nexus & Trust Bases Axiomatic Analytic Synthetic trusted platform module – supports attested storage /w Merkle trees Analytic Introspection – exposes view of kernel state e.g. process lookup tables, IPC ports, application state Synthetic Interpositioning – reference monitor can respond to untrusted I/O

Nexus Authorization Logic NAL formulas have form “P says S” (see Schneider 2009) Principal P believes S to be true Predicates have application-defined meanings Delegation “A speaksfor B” means that if A says S then B says S. Examples: “Typechecker says isTypeSafe(PGM)” “Server says NTP speaksfor Server on TimeNow” Delegation can be scoped using “on”

Caching and State Decision cache - caches authorization decisions by the guard Guard cache – caches partial proof-checking results. State and Authorities – stateful predicates cannot be cached! Authorities – listens on bound IPC, answers queries about stateful predicates.

Proof Evaluation Cost Execution time for checking proofs of increasing length. Three rules: delegation (speaksfor), double negation, and disjunction elimination. The solid line show the cost of proof-checking alone and the dashed line shows the total cost of execution time.

Interpositioning Overhead The authors say that introspection costs roughly as much as File I/O and is not on the critical path. This figure shows the throughput of a UDP echo server for increasing levels of protection and for two different packet sizes. The first two allow the driver to respond directly without interposition In drv, the driver communicates through kernel IPC. Kref and uref check compliance with a safety policy. Min and max show the performance with and without caching.

Comparison of Approaches Information flow Comprehensive/transitive Noninterfere-ish (declassification) Confidentiality/integrity, not availability Policies Written by app developer Trust relationships TCB: compiler(33k), crypto Credentials based authentication Constrains at resource interface Policies Written by OS writer General propositional logic TCB: OS(25k), theorem-prover, crypto The noninterfere-ish remark refers to the use of declassification and endorsement Nexus TCB: 25k LOC Fabric TCB:

Questions Overall, which approach do you prefer? Do you see any value in using both? What is a reasonable (performance) cost for security in practice? Is it 10%? 10X? 100X? What do you think should be the root-of-trust? The hardware? OS? Compiler? Theorem-provers?

Perspective Noninterference is powerful, but too restrictive Practical systems rely on declassification/endorsement. No single answer. (Survey paper: Sabelfield 2009) Need to address covert channels to be truly comprehensive. Is formal verification the answer? seL4