Language-Based Information-Flow Security Richard Mancusi CSCI 297.

Slides:



Advertisements
Similar presentations
Information Flow and Covert Channels November, 2006.
Advertisements

Challenges for Information-flow Security* Steve Zdancewic University of Pennsylvania * This talk is an attempt to be provocative and controversial.
SECURITY AND VERIFICATION Lecture 4: Cryptography proofs in context Tamara Rezk INDES TEAM, INRIA January 24 th, 2012.
BP5- METHODS BY WHICH PERSONAL DATA CAN BE PROTECTED Data Protection.
Ashish Kundu CS590F Purdue 02/12/07 Language-Based Information Flow Security Andrei Sabelfield, Andrew C. Myers Presentation: Ashish Kundu
Lecture 1: Overview modified from slides of Lawrie Brown.
19.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 19: Security The Security Problem Authentication Program Threats.
Monday, 08 June 2015Dr. Mohamed Osman1 What is Database Administration A high level function (technical Function) that is responsible for ► physical DB.
Security A system is secure if its resources are used and accessed as intended under all circumstances. It is not generally possible to achieve total security.
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.
Chapter 1 Introduction. Chapter Overview Overview of Operating Systems Secure Operating Systems Basic Concepts in Information Security Design of a Secure.
Decentralized Robustness Stephen Chong Andrew C. Myers Cornell University CSFW 19 July 6 th 2006.
6/20/ :09 PM Information Flow James Hook CS 591: Introduction to Computer Security.
SSH : The Secure Shell By Rachana Maheswari CS265 Spring 2003.
Robust Declassification Steve Zdancewic Andrew Myers Cornell University.
Silberschatz, Galvin and Gagne  Operating System Concepts Module 19: Security The Security Problem Authentication Program Threats System Threats.
CS 711 Fall 2002 Programming Languages Seminar Andrew Myers 2. Noninterference 4 Sept 2002.
Brian Bradley.  Data is any type of stored digital information.  Security is about the protection of assets.  Prevention: measures taken to protect.
Automatic Implementation of provable cryptography for confidentiality and integrity Presented by Tamara Rezk – INDES project - INRIA Joint work with: Cédric.
Chapter 19 Security Transparencies. 2 Chapter 19 - Objectives Scope of database security. Why database security is a serious concern for an organization.
ISOM MIS3150 Data and Info Mgmt Database Security Arijit Sengupta.
Chapter 15: Security (Part 1). The Security Problem Security must consider external environment of the system, and protect the system resources Intruders.
Operating Systems Protection & Security.
Jim McLeod MyDBA  SQL Server Performance Tuning Consultant with MyDBA  Microsoft Certified Trainer with SQLskills Australia 
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
Silberschatz and Galvin  Operating System Concepts Module 20: Security The Security Problem Authentication Program Threats System Threats Threat.
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
Preventing SQL Injection Attacks in Stored Procedures Alex Hertz Chris Daiello CAP6135Dr. Cliff Zou University of Central Florida March 19, 2009.
Security Policy What is a security policy? –Defines what it means for a system to be secure Formally: Partition system into –Secure (authorized) states.
Containment and Integrity for Mobile Code Security policies as types Andrew Myers Fred Schneider Department of Computer Science Cornell University.
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style Language-Based Information- Flow Security Andrei Sabelfeld.
Session 2 - Security Models and Architecture. 2 Overview Basic concepts The Models –Bell-LaPadula (BLP) –Biba –Clark-Wilson –Chinese Wall Systems Evaluation.
CSC-682 Cryptography & Computer Security Sound and Precise Analysis of Web Applications for Injection Vulnerabilities Pompi Rotaru Based on an article.
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.
D ATABASE A DMINISTRATION L ECTURE N O 3 Muhammad Abrar.
Chapter 1 Overview The NIST Computer Security Handbook defines the term Computer Security as:
ACM 511 Introduction to Computer Networks. Computer Networks.
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.
SECURE WEB APPLICATIONS VIA AUTOMATIC PARTITIONING S. Chong, J. Liu, A. C. Myers, X. Qi, K. Vikram, L. Zheng, X. Zheng Cornell University.
G53SEC 1 Reference Monitors Enforcement of Access Control.
Writing Systems Software in a Functional Language An Experience Report Iavor Diatchki, Thomas Hallgren, Mark Jones, Rebekah Leslie, Andrew Tolmach.
Lecture slides prepared for “Computer Security: Principles and Practice”, 3/e, by William Stallings and Lawrie Brown, Chapter 1 “Overview”. © 2016 Pearson.
How to execute Program structure Variables name, keywords, binding, scope, lifetime Data types – type system – primitives, strings, arrays, hashes – pointers/references.
14.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Protection.
Design Principles and Common Security Related Programming Problems
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style Decentralized Information Flow A paper by Myers/Liskov.
CST 312 Pablo Breuer. measures to deter, prevent, detect, and correct security violations that involve the transmission of information.
3/14/2016 8:37 PM Information Flow Epilog James Hook CS 591: Introduction to Computer Security.
Language-Based Information- Flow Security (Sabelfeld and Myers) “Practical methods for controlling information flow have eluded researchers for some time.”
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style JFlow: Practical Mostly-Static Information Flow Control.
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.
Lecture 2 Page 1 CS 236 Online Security Policies Security policies describe how a secure system should behave Policy says what should happen, not how you.
CS457 Introduction to Information Security Systems
Network Security Presented by: JAISURYA BANERJEA MBA, 2ND Semester.
Operating Systems Protection Alok Kumar Jagadev.
Paper Reading Group:. Language-Based Information-Flow Security. A
12: Security The Security Problem Authentication Program Threats
Information Security CS 526
Security.
Information Security CS 526
Operating System Concepts
Information Security CS 526
Operating System Concepts
Presentation transcript:

Language-Based Information-Flow Security Richard Mancusi CSCI 297

References Andrei Sabelfeld, Andrew C. Myers. Language-Based Information-Flow Security. IEEE Journal on Selected Areas in Communication, special issue on Formal Methods for Security, 21(1), January 2003, pages 5-19

Information-Flow “Access control checks place restrictions on the release of information but not its propagation.” “Information controlled by a confidentiality policy cannot flow to a location where that policy is violated.” “…practical methods for controlling information flow have eluded researchers for some time.”

Symptoms of the Problem SAIC Break-in Stresses Intertwined Nature of Physical and IT Security “A break-in at a government contractor's offices has opened 45,000 former and current employees and stockholders up to identity theft.” SecurityInfoWatch.com, Feb 22, 2005 U.P.S. Loses A Shipment Of Citigroup Client Data “…box of computer tapes containing information on 3.9 million customers was lost on May 2 by United Parcel Service…” The New York Times, June 7, 2005 Security Breach Could Expose 40M To Fraud, “…the security breach involves a computer virus that captured customer data…” The Washington Post, June 18, 2005

Standard Security Methods Computer systems have relied upon weak ad-hoc security mechanisms – Access control (i.e., file protections, ACL’s) – Firewalls – Antivirus software “Access does not control how the data is used after it is read from the file”

Terminology Confinement “…the ability to prevent capabilities (and hence authority) from being transmitted improperly.” Noninterference A clear separation of confidential data from public data.

Terminology Covert Channels Signal mechanisms which are not intended to transfer information about a computing system – Implicit flows – Termination channels – Power channels – Timing channels

Implicit Flows Implicit flows result from the control structures of the program Problematic for security levels “Confidentiality can be obtained by by ensuring that the process sensitivity label remains high throughout the rest of the program.” H := H mod 2; L := 0; if ( H == 1 ) L := 1

Semantics-Based Security For a given semantic model, noninterference is formalized as follows: C is secure iff Which reads: “If two input states share the same low values, then the behaviors of the program executed on these states are indistinguishable by the attacker.

In Other Words… Indicates the absence of any dependency between the program values which operate within a higher security context and the program values which have a lower security context.

Security-Type System Mathematically, a language—typing rules– can be defined which encapsulates the security context of a program. With a security-type system in place, static checks can be performed upon programs to identify any security issues.

For Example:

Research Trends Expanding the expressiveness underlying the language. Exploring security-related concurrency issues Analyzing convert channels Refining security policies

Language-based Information Flow Research

Language Expressiveness Policies which use language constructs such as procedures and functions can guaranteed to noninterference within the parameters of specific security type systems. Polymorphic concepts can be extended to a type system. This means that generic constructs can be created which depend upon the security context. Proveable.

Language Expressiveness Exceptions under normal circumstances can result in nonlocal transfer of control, creating implicit flows. Restrictive type systems are possible which limit the security concerns. [Volpano and Smith] Systems have been created demonstrating Java objects can enforce noninterference.

Concurrency The higher security portions of the program must be protected at all times. (simple) Example: h := 0; l := h; With concurrency, values must be protected at all times. enter_critical(); h := 0; l := h; exit_critical()

Concurrency Thread security is tied to timing issues and probability. Example: (if h = 1 then C else skip); l := 1 || l := 0 Variations of security levels must be protected during context swaps (difficult)

Covert Channels Timing attacks against SSL encryption Encryption attacks are possible because the timing of failure with different values can lead an attacker to understand the true value of a key. Prevent attacks by equalizing the time for successful and failed decryption.

Security Policies Systems which allow downgrading of secure channels are subject to exploitation. Example: Password-checking programs – The security is only as good as the algorithm which guards the passwords. Concept of approximate noninterferance.

Challenges System-wide security - The integration of language flow and system-wide Information Flow control. Certifying Compilation – Move security checking into Java arena, to perform static analysis on the byte code prior to execution.

Challenges Dynamic Policies – Not realistic to assume information-flow policies are available at compile time. – Runtime policies create an additional channel which needs protection. Restrictions placed in languages to deal with the problems may become too restrictive for extensive use.

Conclusions End-to-end security is not capable with existing practices. Static analysis of type systems are possible. Something needs to be done with Jif compilers which support languages that are not “security-expressive” enough. There is a lot of ongoing research to be concluded.