Secure Web Applications via Automatic Partitioning Stephen Chong, Jed Liu, Andrew C. Meyers, Xin Qi, K. Vikram, Lantian Zheng, Xin Zheng. Cornell University.

Slides:



Advertisements
Similar presentations
Munich IETF, August 1997 Fluid A Java Version of Nifty Siegfried Löffler Rechenzentrum Universität Stuttgart.
Advertisements

CPSC 388 – Compiler Design and Construction
Mobile Agents Mouse House Creative Technologies Mike OBrien.
Data Management Expert Panel - WP2. WP2 Overview.
Architecture-dependent optimizations Functional units, delay slots and dependency analysis.
Building Secure Distributed Systems The CIF model : Component Information Flow Lilia Sfaxi DCS Days - 26/03/2009.
Course Outline Traditional Static Program Analysis –Theory Compiler Optimizations; Control Flow Graphs Data-flow Analysis – today’s class –Classic analyses.
Untrusted Hosts and Confidentiality: Secure Program Partitioning Steve Zdancewic Lantian Zheng Nathaniel Nystrom Andrew Myers Cornell University.
Java Script Session1 INTRODUCTION.
Building web applications on top of encrypted data using Mylar Presented by Tenglu Liang Tai Liu.
BASIC CRYPTOGRAPHY CONCEPT. Secure Socket Layer (SSL)  SSL was first used by Netscape.  To ensure security of data sent through HTTP, LDAP or POP3.
Presented by Vaibhav Rastogi.  Advent of Web 2.0 and Mashups  Inclusion of untrusted third party content a necessity  Need to restrict the functionality.
Ashish Kundu CS590F Purdue 02/12/07 Language-Based Information Flow Security Andrei Sabelfield, Andrew C. Myers Presentation: Ashish Kundu
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Swift: Secure Web Applications via Automatic Partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, Xin Zheng Cornell.
Variability Oriented Programming – A programming abstraction for adaptive service orientation Prof. Umesh Bellur Dept. of Computer Science & Engg, IIT.
Distributed Systems Fall 2010 Replication Fall 20105DV0203 Outline Group communication Fault-tolerant services –Passive and active replication Highly.
David Hughes Mark Liu William Liu Moses Nakamura Stephanie Ng.
Jed Liu Xin Qi Michael D. George Lucas Waye K. Vikram Andrew C. Myers Department of Computer Science Cornell University 22 nd ACM SIGOPS Symposium on Operating.
Beneficial Caching in Mobile Ad Hoc Networks Bin Tang, Samir Das, Himanshu Gupta Computer Science Department Stony Brook University.
15 Chapter 15 Web Database Development Database Systems: Design, Implementation, and Management, Fifth Edition, Rob and Coronel.
1 Enforcing Confidentiality in Low-level Programs Andrew Myers Cornell University.
Code Generation for Basic Blocks Introduction Mooly Sagiv html:// Chapter
Aalborg Media Lab 21-Jun-15 Software Design Lecture 1 “ Introduction to Java and OOP”
Polyglot: An Extensible Compiler Framework for Java Nathaniel Nystrom, Michael R. Clarkson, and Andrew C. Myers Presentation by Aaron Kimball & Ben Lerner.
Distributed Systems Fall 2009 Replication Fall 20095DV0203 Outline Group communication Fault-tolerant services –Passive and active replication Highly.
1 CS 201 Compiler Construction Lecture 6 Code Optimizations: Constant Propagation & Folding.
Compiler Summary Mooly Sagiv html://
Topic 6 -Code Generation Dr. William A. Maniatty Assistant Prof. Dept. of Computer Science University At Albany CSI 511 Programming Languages and Systems.
1 Detecting Logic Vulnerabilities in E- Commerce Applications Presenter: Liu Yin Slides Adapted from Fangqi Sun Computer Science Department College of.
Machine-Independent Optimizations Ⅰ CS308 Compiler Theory1.
DISTRIBUTED PROCESS IMPLEMENTAION BHAVIN KANSARA.
Making Database Applications Perform Using Program Analysis Alvin Cheung Samuel Madden Armando Solar-Lezama MIT Owen Arden Andrew C. Myers Cornell.
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
INTRODUCTION TO WEB DATABASE PROGRAMMING
Research on cloud computing application in the peer-to-peer based video-on-demand systems Speaker : 吳靖緯 MA0G rd International Workshop.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
TRACEREP: GATEWAY FOR SHARING AND COLLECTING TRACES IN HPC SYSTEMS Iván Pérez Enrique Vallejo José Luis Bosque University of Cantabria TraceRep IWSG'15.
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
COP 4620 / 5625 Programming Language Translation / Compiler Writing Fall 2003 Lecture 10, 10/30/2003 Prof. Roy Levow.
Containment and Integrity for Mobile Code Security policies as types Andrew Myers Fred Schneider Department of Computer Science Cornell University.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
An application architecture specifies the technologies to be used to implement one or more (and possibly all) information systems in terms of DATA, PROCESS,
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
Containment and Integrity for Mobile Code End-to-end security, untrusted hosts Andrew Myers Fred Schneider Department of Computer Science Cornell University.
SECURE WEB APPLICATIONS VIA AUTOMATIC PARTITIONING S. Chong, J. Liu, A. C. Myers, X. Qi, K. Vikram, L. Zheng, X. Zheng Cornell University.
1 CS 201 Compiler Construction Introduction. 2 Instructor Information Rajiv Gupta Office: WCH Room Tel: (951) Office.
The Cosmic Cube Charles L. Seitz Presented By: Jason D. Robey 2 APR 03.
INTRODUCTION TO WEB APPLICATION Chapter 1. In this chapter, you will learn about:  The evolution of the Internet  The beginning of the World Wide Web,
Graphene So what’s the most efficient way to spam all your Facebook friends? Team Adith Tekur (System Architect/Tester) Neha Rastogi (System Integrator)
PwC New Technologies New Risks. PricewaterhouseCoopers Technology and Security Evolution Mainframe Technology –Single host –Limited Trusted users Security.
Security Patterns for Web Services 02/03/05 Nelly A. Delessy.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
1 Distributed Systems Distributed Object-Based Systems Chapter 10.
AFS/OSD Project R.Belloni, L.Giammarino, A.Maslennikov, G.Palumbo, H.Reuter, R.Toebbicke.
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
Channels. Models for Communications Synchronous communications – E.g. Telephone call Asynchronous communications – E.g. .
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
CS422 Principles of Database Systems Stored Procedures and Triggers Chengyu Sun California State University, Los Angeles.
Huanyuan Sheng, Sanjay Mehrotra and Jun Ma Impact Solver for Optimization Services, November 15, 2005 IMPACT Solver for Optimization Services Huanyuan(Wayne)
CX Introduction to Web Programming
Control Flow Testing Handouts
Handouts Software Testing and Quality Assurance Theory and Practice Chapter 4 Control Flow Testing
Static Detection of Cross-Site Scripting Vulnerabilities
Outline of the Chapter Basic Idea Outline of Control Flow Testing
Amir Kamil and Katherine Yelick
TensorFlow: A System for Large-Scale Machine Learning
Presentation transcript:

Secure Web Applications via Automatic Partitioning Stephen Chong, Jed Liu, Andrew C. Meyers, Xin Qi, K. Vikram, Lantian Zheng, Xin Zheng. Cornell University

Outline Introduction Swift Architecture Writing Swift Applications WebIL Swift Runtime Evaluation Conclusion

Introduction Web applications are a critical part of today’s infrastructure

Introduction Web applications account for 69% of internet vulnerabilities Developer dilemma Performance vs security

Introduction Guess a number game Confidentiality requirement Client cannot see number Integrity requirement Client cannot affect number of guesses Only server can decide if guess is correct Client side only implementation Best performance Client can cheat

Swift Building web applications that are secure by construction Automatic partitioning of code and data Security critical code/data placed on server side only Code/data placed on client side for performance

Swift Architecture Jif Source Code WebIL WebIL Optimization Splitting Code JavaScript and Java Output Partitioning and Replication

Swift Architecture

Writing Swift Applications Extensions of Jif programming language Security policies expressed using labels Confidentiality and Integrity policies Labels refer to principals *(server) and client principals Compiler statically checks that information flow is consistent with policies Trust model Un trusted client Trusted server

Sample Policies

Guess a number Application

WebIL Concerned with placement of code and data Replace Jif labels with placement annotations Placements chosen to optimize responsiveness without sacrificing security Partitioning solved as Integer programming problem

Placement Annotations 9 placement annotations

Guess-a-Number in WebIL

Partitioning Algorithm Represent control flow as weighted directed graph Graph nodes are statements Edge weights are exec. frequencies Integer programming problem Reduce to instance of max flow problem Solution is placements of code/data

Partioning of Guess-a-Number

Swift Runtime Controls synchronization and communication JavaScript runs on Client Java code runs on server Asymmetric trust model Execution blocks Closures Activation Records

Execution Block Methods divided into execution blocks Single entry Multiple exits Unique ids Control transfer message Branch to block executing on different host

Execution Blocks of Guess-a-Number

Activation Records Execution blocks run in context of activation records Client/server have different views of same activation record Activation record updates forwarding between hosts Security restrictions of forwarding

Closures Next execution block id and activation record id Stack of closures Correct simulation of method calls/exceptions Integrity of control flow Clients invoke high integrity closures in controlled way

Evaluation Swift Compiler Jif compiler + 20K LOC Runtime system = 2.6K LOC Six web applications implemented

Generated code size

Network messages

Conclusion Constructing secure web applications Automatic partitioning of functionality Enforcement of information security policies Programmer effort to add annotations