Article review: Secure web application via automatic ...€¦ · Motivation and Overview...

28
1 of 24 slides Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer Science Cornell University Ivan Hristov Computational Engineering Dresden University of Technology 20.05.2008 [email protected] Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, La

Transcript of Article review: Secure web application via automatic ...€¦ · Motivation and Overview...

Page 1: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

1 of 24 slides

Article review: Secure web application viaautomatic partitioning

Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram,Lantian Zheng, and Xin Zheng; 2007

Department of Computer ScienceCornell University

Ivan HristovComputational Engineering

Dresden University of Technology

20.05.2008

[email protected]

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 2: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24 slides

Part I

Introduction

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 3: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation3 of 24 slides

Motivation

ProblemHow can one easily create ...

... secure web applications?

... a dynamic, responsive user interface?

... both?

SolutionBy using Swift!

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 4: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation4 of 24 slides

Web Programming

Increased responsiveness?Some code and data on the client side.

The problemSecurity vulnerabilities:

confidentiality

integrity

explicit/implicit information flow

Solutionright placement

automation

correctness

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 5: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation5 of 24 slides

Overview

Swift Aspectssecure by construction - annotations based paradigm

easy to write - less awkwardness

aids the programmer - automatic protocol and code generation

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 6: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation6 of 24 slides

Swift Architecture

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 7: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation7 of 24 slides

Basic step

1st step: Jif Source CodeLabels - information security policies

Static check - label consistency check

2nd step: WebILAnnotations for placement

3rd step: WebIL optimizationDecision of exact placement

Code and data replication

Placement cost minimization

4th step: Source Code SplittingDivide the original Java program into two

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 8: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation7 of 24 slides

Basic step

1st step: Jif Source CodeLabels - information security policies

Static check - label consistency check

2nd step: WebILAnnotations for placement

3rd step: WebIL optimizationDecision of exact placement

Code and data replication

Placement cost minimization

4th step: Source Code SplittingDivide the original Java program into two

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 9: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation7 of 24 slides

Basic step

1st step: Jif Source CodeLabels - information security policies

Static check - label consistency check

2nd step: WebILAnnotations for placement

3rd step: WebIL optimizationDecision of exact placement

Code and data replication

Placement cost minimization

4th step: Source Code SplittingDivide the original Java program into two

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 10: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation7 of 24 slides

Basic step

1st step: Jif Source CodeLabels - information security policies

Static check - label consistency check

2nd step: WebILAnnotations for placement

3rd step: WebIL optimizationDecision of exact placement

Code and data replication

Placement cost minimization

4th step: Source Code SplittingDivide the original Java program into two

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 11: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation8 of 24 slides

Things to remember

Additional step: Java to JavaScriptClient side transformation

Client side code and dataImplementation of UI

Faster interaction and higher responsiveness

Information flowShould be strictly controlled

Functionality replicationResponsiveness

Security reasons

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 12: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation9 of 24 slides

Labels, principals, flows

Labels - set of security policies- confidentiality : alice → bob

- integrity : alice ← bob

Implicit flowsint {alice → bob, alice; bob ← alice} y;int {bob → bob} x;int {alice → bob; bob ← alice} z;if (x == 0) {z = y; explicit information flow}NOTE! Implicit flow: from x to z

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 13: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation10 of 24 slides

Acts for relationship

PrincipalsServer (*) - maximally trusted

Client (client) - untrusted

Acts for examples* acts for clientclient acts for bob and/or alice

ProblemRole misconfusion (object schizophrenia)

SolutionStatic variables must not reference directly or indirectly theprinciple client!

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 14: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation10 of 24 slides

Acts for relationship

PrincipalsServer (*) - maximally trusted

Client (client) - untrusted

Acts for examples* acts for clientclient acts for bob and/or alice

ProblemRole misconfusion (object schizophrenia)

SolutionStatic variables must not reference directly or indirectly theprinciple client!

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 15: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation11 of 24 slides

Type of labels

Method labelsbegin label

end label

...15 void makeGuess {*→client} (Integer{*→client} num)16 where authority(*), endorse({*←*})17 throws NullPointerException18 {...39 } no end label needed in this case...

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 16: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation12 of 24 slides

Type of labels

Endorsement labelsUsage: Prevention of untrusted access to trusted variables.

Example - checked endorsement...19 int i = 0;20 if (num ! = null) i = num.intValue();21 endorse (i, {*←client} to {*←*})22 if (i >= 1 && i <= 10) {endorsement succeeds, ’i’ is endorsed ...23 if (tries > 0 && i == secret) {...25 tries = 0;... and tries can be accessed! ...27 }

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 17: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation13 of 24 slides

Type of labels

Declassify labelsUsage: To allow updates over trusted variables and/or explicitinformation flow

Example - declassify statement body24 declassify ({*→*} to {*→client}) {25 tries = 0;26 finishApp(”You win!”);27 }

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 18: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation14 of 24 slides

Type of labels

Inheritance labelsUsage: To control inheritance.

Example - authority and auto-endorse...15 void makeGuess{*→client}(Integer{*→client} num)16 where authority(*), endorse({*←*})17 throws NullPointerException18 {...39 }...

Other labelsrobust declassification - Usage: To control declassification.

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 19: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation15 of 24 slides

WebIL

Transformation processclient data/code placement - defined by the Jif securitypolicies

server data/code placement - defined by the Jif securitypolicies

declassification and endorsement are removed

Fine-grained placement control through splitting of compoundexpressions

Uses:Placement annotations

An efficient algorithm based on a reduction of the maximumflow problem

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 20: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation16 of 24 slides

WebIL Placement annotations

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 21: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation17 of 24 slides

Outcome

Example5 C?Sh: boolean b1 = (i >= 1);6 boolean b2;...11 Sh: if (c1) c2 = (i == secret);12 Sh: else c2 = false;13 Sh: if (c2) {14 C?Sh: tries = 0;

NOTE!1 High-integrity marks mark data that should not be influenced

by the client2 The beginning of the high-integrity marks coincide with the

endorsement3 Auto-endorsement allow the code execution

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 22: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation18 of 24 slides

Partitioning algorithm

StepsApproximate control-flow by weighted directed graph

Placement algorithm based on integer program algorithm,which is reduced to an instance of the maximum flow problem

Note”...the accuracy of this approach is limited by how closely theweighted directed graph approximates actual run-time behavior.”Finding and evaluating all possible program’s paths in a complexproblem might be very problematic, if not even impossible.

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 23: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation19 of 24 slides

Integrity of control flow

Swift runtimecommunication and synchronization management

Definition”A high-integrity closure is one whose execution block hashigh-integrity side effects, and is therefore annotated Sh or CSh. ”

Prevention of misbehaving clients”A client may invoke a high-integrity closure only if it is at the topof the closure stack.”...”As a result, a misbehaving client cannot control the execution ofhigh-integrity closures, even if it throws arbitrary exceptions andinvokes arbitrary closures on the server.”

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 24: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation20 of 24 slides

Source code size

Notes”Java target code” - only generated Java code”JavaScript All” - the UI, Jif and Swift client framework”JavaScript Framework” - the Swift, UI and Jif framework”JavaScript App” - application’s JavaScript source code

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 25: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation21 of 24 slides

Performance/Responsiveness

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 26: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation22 of 24 slides

Flexibility

Automatic repartitioningIn case of change in the security policies, repartitioning is doneautomatically.

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 27: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

23 of 24 slides

Part II

Discussion

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University

Page 28: Article review: Secure web application via automatic ...€¦ · Motivation and Overview Architecture Programming process Transformation process The Swift runtime Evaluation2 of 24

24 of 24 slides

Discussion

PointsPros & Cons

Complexity

Program’s paths problem

Evaluation

Article review: Secure web application via automatic partitioning Stephen Chong, Jed Liu, Andrew C. Myers, Xin Qi, K. Vikram, Lantian Zheng, and Xin Zheng; 2007 Department of Computer ScienceCornell University