Download presentation
Presentation is loading. Please wait.
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?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.