Language-Based Information- Flow Security (Sabelfeld and Myers) “Practical methods for controlling information flow have eluded researchers for some time.”

Slides:



Advertisements
Similar presentations
8/11/2006PCC Toward More Typed Assembly Languages for Confidentiality Dachuan Yu DoCoMo USA Labs.
Advertisements

Security of Multithreaded Programs by Compilation Tamara Rezk INDES Project, INRIA Sophia Antipolis Mediterranee Joint work with Gilles Barthe, Alejandro.
Information Flow and Covert Channels November, 2006.
Challenges for Information-flow Security* Steve Zdancewic University of Pennsylvania * This talk is an attempt to be provocative and controversial.
Towards Static Flow-based Declassification for Legacy and Untrusted Programs Bruno P. S. Rocha Sruthi Bandhakavi Jerry den Hartog William H. Winsborough.
Current Techniques in Language-based Security David Walker COS 597B With slides stolen from: Steve Zdancewic University of Pennsylvania.
Using Multi-Encryption to Provide Secure and Controlled Access to XML Documents Tomasz Müldner, Jodrey School of Computer Science, Acadia University, Wolfville,
Ashish Kundu CS590F Purdue 02/12/07 Language-Based Information Flow Security Andrei Sabelfield, Andrew C. Myers Presentation: Ashish Kundu
Attacking Malicious Code: A Report to the Infosec Research Council Kim Sung-Moo.
Information Flow, Security and Programming Languages Steve Steve Zdancewic.
Steve Zdancewic ESOP011 Secure Information Flow and CPS Steve Zdancewic Joint work with Andrew Myers Cornell University.
1 Enforcing Confidentiality in Low-level Programs Andrew Myers Cornell University.
6/18/2015 4:21 AM Information Flow James Hook CS 591: Introduction to Computer Security.
6/20/ :09 PM Information Flow James Hook CS 591: Introduction to Computer Security.
Polyglot: An Extensible Compiler Framework for Java Nathaniel Nystrom, Michael R. Clarkson, and Andrew C. Myers Presentation by Aaron Kimball & Ben Lerner.
Robust Declassification Steve Zdancewic Andrew Myers Cornell University.
More Enforceable Security Policies Lujo Bauer, Jay Ligatti and David Walker Princeton University (graciously presented by Iliano Cervesato)
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
CS 711 Fall 2002 Programming Languages Seminar Andrew Myers 2. Noninterference 4 Sept 2002.
Programming Fundamentals (750113) Ch1. Problem Solving
Automatic Implementation of provable cryptography for confidentiality and integrity Presented by Tamara Rezk – INDES project - INRIA Joint work with: Cédric.
Software Dependability CIS 376 Bruce R. Maxim UM-Dearborn.
The Impact of Programming Language Theory on Computer Security Drew Dean Computer Science Laboratory SRI International.
Java Security. Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security Manager.
Towards a Logic for Wide- Area Internet Routing Nick Feamster Hari Balakrishnan.
Secure Web Applications via Automatic Partitioning Stephen Chong, Jed Liu, Andrew C. Meyers, Xin Qi, K. Vikram, Lantian Zheng, Xin Zheng. Cornell University.
MOBILE AD-HOC NETWORK(MANET) SECURITY VAMSI KRISHNA KANURI NAGA SWETHA DASARI RESHMA ARAVAPALLI.
© 2009 Matthew J. Sottile, Timothy G. Mattson, and Craig E Rasmussen 1 Concurrency in Programming Languages Matthew J. Sottile Timothy G. Mattson Craig.
Presented by: Tom Staley. Introduction Rising security concerns in the smartphone app community Use of private data: Passwords Financial records GPS locations.
PRECIP: Towards Practical and Retrofittable Confidential Information Protection XiaoFeng Wang (IUB), Zhuowei Li (IUB), Ninghui Li (Purdue) and Jong Youl.
Language-Based Information-Flow Security Richard Mancusi CSCI 297.
Containment and Integrity for Mobile Code Security policies as types Andrew Myers Fred Schneider Department of Computer Science Cornell University.
CSC8320. Outline Content from the book Recent Work Future Work.
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style Language-Based Information- Flow Security Andrei Sabelfeld.
Engineering Secure Software. A Ubiquitous Concern  You can make a security mistake at every step of the development lifecycle  Requirements that allow.
CSC-682 Cryptography & Computer Security Sound and Precise Analysis of Web Applications for Injection Vulnerabilities Pompi Rotaru Based on an article.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Reasoning about Information Leakage and Adversarial Inference Matt Fredrikson 1.
PRESENTED BY P. PRAVEEN Roll No: 1009 – 11 – NETWORK SECURITY M.C.A III Year II Sem.
Next-generation databases Active databases: when a particular event occurs and given conditions are satisfied then some actions are executed. An active.
Chapter 1 Overview The NIST Computer Security Handbook defines the term Computer Security as:
Containment and Integrity for Mobile Code End-to-end security, untrusted hosts Andrew Myers Fred Schneider Department of Computer Science Cornell University.
Securing Class Initialization in Java-like Languages.
SOA-39: Securing Your SOA Francois Martel Principal Solution Engineer Mitigating Security Risks of a De-coupled Infrastructure.
What security is about in general? Security is about protection of assets –D. Gollmann, Computer Security, Wiley Prevention –take measures that prevent.
SECURE WEB APPLICATIONS VIA AUTOMATIC PARTITIONING S. Chong, J. Liu, A. C. Myers, X. Qi, K. Vikram, L. Zheng, X. Zheng Cornell University.
Software Testing and Quality Assurance Software Quality Assurance 1.
Internet Security CSCE 813 Communicating Sequential Processes.
Malicious Logic and Defenses. Malicious Logic Trojan Horse – A Trojan horse is a program with an overt (documented or known) effect and covert (undocumented.
Lecture slides prepared for “Computer Security: Principles and Practice”, 3/e, by William Stallings and Lawrie Brown, Chapter 1 “Overview”. © 2016 Pearson.
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Introduction Program File Authorization Security Theorem Active Code Authorization Authorization Logic Implementation considerations Conclusion.
A Lattice Model of Secure Information Flow By Dorothy E. Denning Presented by Drayton Benner March 22, 2000.
Certification of Programs for Secure Information Flow Dorothy & Peter Denning Communications of the ACM (CACM) 1977.
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style JFlow: Practical Mostly-Static Information Flow Control.
Secure Information Flow for Reactive Programming Paradigm Zhengqin Luo SAFA workshop 2009.
Security Architecture and Design Chapter 4 Part 4 Pages 377 to 416.
CS457 Introduction to Information Security Systems
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
SSD951: Secure Software Development Language-based Security
Verification and Testing
Paper Reading Group:. Language-Based Information-Flow Security. A
Information Security CS 526
Programming Fundamentals (750113) Ch1. Problem Solving
All You Ever Wanted to Know About Dynamic Taint Analysis & Forward Symbolic Execution (but might have been afraid to ask) Edward J. Schwartz, Thanassis.
SECURITY IN THE LINUX OPERATING SYSTEM
Information Security CS 526
Programming Fundamentals (750113) Ch1. Problem Solving
Programming Fundamentals (750113) Ch1. Problem Solving
Information Security CS 526
Presentation transcript:

Language-Based Information- Flow Security (Sabelfeld and Myers) “Practical methods for controlling information flow have eluded researchers for some time.” Presented by David L. Rager

“Conventional” Approach  Access control lists (ACLs) Checks release of data but not data propagation What happens if a host becomes unknowingly corrupted? Approach is fundamentally doomed  Firewalls  Anti-virus  Encryption

Language-based Attempts  Java Bytecode verifier Sandbox mode Stack inspection  Not intended to control information flow, and therefore insufficient

The “New” Approach  Information-flow policies “confidentiality policies we wish to enforce” “A natural way to apply the well-known systems principle of end-to-end design”  Information-flow controls Mechanisms that implement the above policies

Terminology  Confinement – the ability to prevent capabilities (and authority) from being transmitted improperly  Noninterference – no data visible publicly is affected by confidential data  “High” security versus “low” security – the idea that some code and data is associated with being inaccessible and other code and data is public (these are not technical terms)

Covert Channels  Channel – a mechanism for signaling information through a computing system  Covert channel – a channel whose primary purpose is not information transfer

Types of Covert Channels  Implicit flows – signal information through the control structure of a program  Termination channel – signal information through the termination or nontermination of computation  Timing channel – signal information through the time at which an action occurs rather than through the data associated with the action

Types of Covert Channels (cont’d)  Probabilistic channel – signal information by changing the probability distribution of observable data  Resource exhaustion channel – signal information by the possible exhaustion of a finite, shared resource  Power channel – embed information in the power consumed by the computer

Four Directions of Language-Based Security  Enriching expressiveness of the language  Exploring impact of concurrency  Analyzing covert channels  Refining security policies

Four Directions of Language-Based Security

Expressiveness  Polymorphism The function h can be overloaded to have different definitions depending on whether its context is high or low  Functions SLam is based off the lambda calculus and proposes a type system for confidentiality and integrity

Expressiveness (cont’d)  Exceptions Path labels can be used to allow finer-grained tracking of implicit flows caused by exceptions  Objects JFlow language extends Java with a type system for tracking information flow Barthe and Serpette created an OO language based on Abadi-Cardelli functional object calculi and show their type system enforces noninterferance

Four Directions of Language-Based Security

Concurrency  Nondeterminism Consider the observable behavior of the program to be the set of its possible results Secure if high inputs do not affect the set of possible low outputs Possibilistic security

Concurrency  Thread concurrency If two high security programs execute in parallel, they can “do evil”  Example High assurance level program 1: h:=0; l:= h // secure since 0 is a public constant High assurance level program 2: h:=h’ // if this program interleaves in program 1’s execution, then h’ will become public

Concurrency  Distribution Messages are exchanged and these exchanges can often be observed Often distributed systems don’t completely trust each other Components of distributed systems can fail (or be subverted)

Four Directions of Language-Based Security

Covert Channels  Termination Channels If an attacker can observe termination some programs are insecure Ex: while h = 1 do skip  Solution No while loop may have a high guard No high conditional may contain a while loop in its branch

Covert Channels  Timing Channels If an attacker can observe termination some programs are insecure Ex (C long is a series of time consuming operations): if h = 1 then C long else skip  One solution to this example No high conditional may contain a while loop in its branch Wrap each high conditional in a protect statement whose execution is atomic  Practical example: RSA encryption attack[101]

Covert Channels  Probabilistic Channels  Ex: l:=PIN [] 9/10 l:=rand(9999) [] 9/10 means perform the left side 90% of the time and the right side 10% of the time Possibilistically secure Why isn’t it probabilistically secure?

Four Directions of Language-Based Security

Security Policies  Declassification Noninterference rejects downgrading of security levels Think of cryptography  Admissibility Explicitly states which dependencies are allowed between data (including those caused by downgrading) An admissible program has no other information flows than those intended by the protocol specification  Quantitative security A limited number of information leaks is acceptable

Open Challenges  System-wide security Correctly integrating particular security implementations into a system is hard  Certifying compilation Must trust the type checkers and compilers Remember Robert’s Openmcl presentation? A solution: proof carrying code  Abstraction-violating attacks Ex: cache attacks  Dynamic policies Need to support the changing of permissions across the lifetime of data

Conclusion  Conventional methods of security (access control lists, virus detection, firewalls) insufficient  Four Directions of Language-Based Security Enriching expressiveness of the language Exploring impact of concurrency on security Analyzing covert channels Refining security policies