Presentation is loading. Please wait.

Presentation is loading. Please wait.

Language-based Security Overview Anupam Datta CMU Fall 2007-08 18739A: Foundations of Security and Privacy.

Similar presentations


Presentation on theme: "Language-based Security Overview Anupam Datta CMU Fall 2007-08 18739A: Foundations of Security and Privacy."— Presentation transcript:

1 Language-based Security Overview Anupam Datta CMU Fall 2007-08 18739A: Foundations of Security and Privacy

2 Software System Security uGoal: Ensure security of software systems uDefinition of security What does “secure” mean? Our focus: non-interference uMethods for ensuring that software systems satisfy security definition Our focus: Typed programming languages

3 Popular Programming languages (I) uC Security vulnerabilities: buffer overflows, format string vulnerabilities, etc. What features of C cause these problems? Cyclone: A safe dialect of C [Morissett et al] TODAY

4 Popular Programming languages (II) uJava Does not suffer from C-style security vulnerabilities: buffer overflows, format string vulnerabilities, etc. Perfectly good Java program: login program sends password in the clear over the network (More subtle attack: Boneh-Brumley timing attack on SSL implementation – not Java) Which programs are “secure”?

5 Information flow uSecurity definition Non-interference [Goguen-Meseguer82] uEmbodiment in a programming language [Denning-Denning77] [Volpano-Smith-Irvine96] uExtending Java with information flow control Jif [Myers-Liskov97] 2 nd lecture 3 rd lecture TODAY

6 Main tool uTyped programming languages uNow: A quick overview uRelevant CMU courses 15-814: Type Systems for Programming Languages 15-819: Languages and Logics for Security

7 Programming Language Definition uSyntax (or “well-formed programs”) –Syntax of types and terms –Type system (or static semantics) uSemantics (or “meaning of programs”) Operational (Dynamic) –Program execution

8 Language Definition Examples uSyntax, Semantics (Static, Dynamic) uML: R. Milner, M. Tofte, R. Harper, and D. MacQueen, The Definition of Standard ML (Revised). MIT Press, 1997 uJava: J. Alves-Foss (Ed.), Formal Syntax and Semantics of Java. LNCS 1523, 1999

9 Simple Expression Language uSyntax uStatic Semantics (Type System)

10 Simple Expression Language uSemantics Operational/Dynamic

11 Type Safety 1. Preservation: Evaluation steps preserve types 2. Progress: Well-typed expressions are either values or can be further evaluated Relates static semantics to dynamic semantics

12 Type Systems Features uTools for reasoning about programs uClassification of terms into types provides static approximation of run- time behavior of the terms in a program uConservative: Can prove the absence of some bad program behaviors, but not their presence uTractable: Automated typecheckers typically built into compiler or linker

13 Cyclone uPresented by Kumar Avijit

14 Definition of Security uNon-interference (idea) Program HI LI HO LO HI’ HO’ No information flows from high inputs to low outputs

15 Formal definition System is deterministic finite state machine: takes input and transitions to next state producing output Trace tr is a sequence of inputs and outputs (high & low) Output L (S,tr,c): low output of system S when input c is applied to the state corresponding to trace tr purge HI (tr): returns a trace with all high inputs in tr removed

16 Thanks Questions?


Download ppt "Language-based Security Overview Anupam Datta CMU Fall 2007-08 18739A: Foundations of Security and Privacy."

Similar presentations


Ads by Google