Introduction to Computer Security Lecture 2

Slides:



Advertisements
Similar presentations
Theory of Computing Lecture 23 MAS 714 Hartmut Klauck.
Advertisements

Lecture 24 MAS 714 Hartmut Klauck
Copyright © Cengage Learning. All rights reserved.
1 1 -Access Control Foundational Results. 2 2 Preliminaries Undecidability The Halting Problem The Turing Machine.
1 Introduction to Computability Theory Lecture12: Reductions Prof. Amos Israeli.
Prof. Busch - LSU1 Decidable Languages. Prof. Busch - LSU2 Recall that: A language is Turing-Acceptable if there is a Turing machine that accepts Also.
July 1, 2004Computer Security: Art and Science © Matt Bishop Slide #3-1 Chapter 3: Foundational Results Overview Harrison-Ruzzo-Ullman result.
November 1, 2004Introduction to Computer Security ©2004 Matt Bishop Slide #3-1 Chapter 3: Foundational Results Overview Harrison-Ruzzo-Ullman result –Corollaries.
Section 11.4 Language Classes Based On Randomization
1 September 14, 2006 Lecture 3 IS 2150 / TEL 2810 Introduction to Security.
Zvi Kohavi and Niraj K. Jha 1 Capabilities, Minimization, and Transformation of Sequential Machines.
IS-2150/TEL-2810: Introduction of Computer Security1 September 7, 2005 Introduction to Computer Security Access Control Matrix Take-grant model.
February 18, 2015CS21 Lecture 181 CS21 Decidability and Tractability Lecture 18 February 18, 2015.
Slide #2-1 Chapter 2: Access Control Matrix Overview Access Control Matrix Model Protection State Transitions –Commands –Conditional Commands.
1 IS 2150 / TEL 2810 Introduction to Security James Joshi Associate Professor, SIS Lecture 6 September 27, 2011 Take Grant Model.
Slide #3-1 Chapter 3: Foundational Results Overview Harrison-Ruzzo-Ullman result –Corollaries.
Slide #2-1 Access Control Matrix and Safety Results CS461/ECE422 Computer Security I, Fall 2009 Based on slides provided by Matt Bishop for use with Computer.
1Computer Sciences Department. Book: INTRODUCTION TO THE THEORY OF COMPUTATION, SECOND EDITION, by: MICHAEL SIPSER Reference 3Computer Sciences Department.
1 Turing’s Thesis. 2 Turing’s thesis: Any computation carried out by mechanical means can be performed by a Turing Machine (1930)
Strings Basic data type in computational biology A string is an ordered succession of characters or symbols from a finite set called an alphabet Sequence.
Other Access Control Models
2/1/20161 Computer Security Foundational Results.
1 IS 2150 / TEL 2810 Introduction to Security James Joshi Associate Professor, SIS Lecture 4 September 18, 2012 Access Control Model Foundational Results.
Data Structures and Algorithm Analysis Graph Algorithms Lecturer: Jing Liu Homepage:
1 Chapter 9 Undecidability  Turing Machines Coded as Binary Strings  Universal Turing machine  Diagonalizing over Turing Machines  Problems as Languages.
April 8, 2004ECS 235Slide #1 Overview Safety Question HRU Model Take-Grant Protection Model SPM, ESPM –Multiparent joint creation Expressive power Typed.
INFSCI 2935: Introduction of Computer Security1 September 13, 2005 Introduction to Computer Security Lecture 3 Take Grant Model (Cont) HRU Schematic Protection.
November 1, 2004Introduction to Computer Security © 2004 Matt Bishop Slide #2-1 Chapter 2: Access Control Matrix Overview Access Control Matrix Model Protection.
September 10, 2012Introduction to Computer Security © 2004 Matt Bishop Slide #2-1 Chapter 2: Access Control Matrix Overview Access Control Matrix Model.
Recursively Enumerable and Recursive Languages. Definition: A language is recursively enumerable if some Turing machine accepts it.
Modeling Arithmetic, Computation, and Languages Mathematical Structures for Computer Science Chapter 8 Copyright © 2006 W.H. Freeman & Co.MSCS SlidesTuring.
Capabilities, Minimization, and Transformation of Sequential Machines
An Introduction to Graph Theory
The Acceptance Problem for TMs
Introduction to Computing Science and Programming I
IS 2150 / TEL 2810 Introduction to Security
Part VI NP-Hardness.
Busch Complexity Lectures: Reductions
CSE 311 Foundations of Computing I
IS 2150 / TEL 2810 Introduction to Security
LIMITS OF ALGORITHMIC COMPUTATION
September 16, 2004 Introduction to Computer Security Lecture 3
Turing Machines Acceptors; Enumerators
Chapter 9 TURING MACHINES.
Hierarchy of languages
Jaya Krishna, M.Tech, Assistant Professor
IS 2150 / TEL 2810 Information Security & Privacy
Computer Security Access Control Matrix
IS 2150 / TEL 2810 Introduction to Security
Decidable Languages Costas Busch - LSU.
Decidability Turing Machines Coded as Binary Strings
Decidability Turing Machines Coded as Binary Strings
Overview Safety Question HRU Model Take-Grant Protection Model
Formal Languages, Automata and Models of Computation
Computer Security Foundations
Outline Motivation Access Control Matrix Model
Instructor: Aaron Roth
IS 2150 / TEL 2810 Information Security & Privacy
Chapter 3: Foundational Results
Chapter 2: Access Control Matrix
Instructor: Aaron Roth
Subject Name: FORMAL LANGUAGES AND AUTOMATA THEORY
Instructor: Aaron Roth
IS 2150 / TEL 2810 Introduction to Security
Instructor: Aaron Roth
Instructor: Aaron Roth
Computer Security Access Control Mechanisms
IS 2150 / TEL 2810 Introduction to Security
Turing Machines Everything is an Integer
IS 2150 / TEL 2810 Introduction to Security
Presentation transcript:

Introduction to Computer Security Lecture 2 September 4, 2003 Courtesy of Professors Chris Clifton & Matt Bishop INFSCI 2935: Introduction of Computer Security

INFSCI 2935: Introduction to Computer Security Protection System Subject (S: set of all subjects) Active entities that carry out an action/operation on other entities; Eg.: users, processes, agents, etc. Object (O: set of all objects) Eg.:Processes, files, devices Right An action/operation that a subject is allowed/disallowed on objects INFSCI 2935: Introduction to Computer Security

Access Control Matrix Model Describes the protection state of a system. Characterizes the rights of each subject Elements indicate the access rights that subjects have on objects ACM is an abstract model Rights may vary depending on the object involved ACM is implemented primarily in two ways Capabilities (rows) Access control lists (columns) INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security State Transitions Let initial state X0 = (S0, O0, A0) Notation Xi ├i+1 Xi+1 : upon transition i+1, the system moves from state Xi to Xi+1 X ├* Y : the system moves from state X to Y after a set of transitions Xi ├ ci+1 (pi+1,1, pi+1,2, …, pi+1,m) Xi+1 : state transition upon a command For every command there is a sequence of state transition operations INFSCI 2935: Introduction to Computer Security

Primitive commands (HRU) Create subject s Creates new row, column in ACM; Create object o Creates new column in ACM Enter r into a[s, o] Adds r right for subject s over object o Delete r from a[s, o] Removes r right from subject s over object o Destroy subject s Deletes row, column from ACM; Destroy object o Deletes column from ACM INFSCI 2935: Introduction to Computer Security

System commands using primitive operations Defined commands can be used to update ACM Command make_owner(p, f) Enter own into a[p,f] End Mono-operational: the command invokes only one primitive process p creates file f with owner read and write (r, w) will be represented by the following: Command create_file(p, f) Create object f Enter own into a[p,f] Enter r into a[p,f] Enter w into a[p,f] End INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Conditional Commands Mono-operational + mono-conditional Command grant_read_file(p, f, q) If own in a[p,f] Then Enter r into a[q,f] End Why not “OR”?? Mono-operational + biconditional Command grant_read_file(p, f, q) If r in a[p,f] and c in a[p,f] Then Enter r into a[q,f] End INFSCI 2935: Introduction to Computer Security

Fundamental questions How can we determine that a system is secure? Need to define what we mean by a system being “secure” Is there a generic algorithm that allows us to determine whether a computer system is secure? INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security What is a secure system? A simple definition A secure system doesn’t allow violations of a security policy Alternative view: based on distribution of rights to the subjects Leakage of rights: (unsafe with respect to a right) Assume that A represents a secure state and a right r is not in any element of A. Right r is said to be leaked, if a sequence of operations/commands adds r to an element of A, which not containing r Safety of a system with initial protection state Xo Safe with respect to r: System is safe with respect to r if r can never be leaked Else it is called unsafe with respect to right r. INFSCI 2935: Introduction to Computer Security

Safety Problem: formally Given initial state X0 = (S0, O0, A0) Set of primitive commands c r is not in A0[s, o] Can we reach a state Xn where s,o such that An[s,o] includes a right r not in A0[s,o]? - If so, the system is not safe - But is “safe” secure? INFSCI 2935: Introduction to Computer Security

Decidability Results (Harrison, Ruzzo, Ullman) Theorem: Given a system where each command consists of a single primitive command (mono-operational), there exists an algorithm that will determine if a protection system with initial state X0 is safe with respect to right r. Proof: determine minimum commands k to leak Delete/destroy: Can’t leak (or be detected) Create/enter: new subjects/objects “equal”, so treat all new subjects as one If n rights, leak possible, must be able to leak n(|S0|+1)(|O0|+1)+1 commands Enumerate all possible states to decide INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Turing Machine TM is an abstract model of computer Alan Turing in 1936 TM consists of A tape divided into cells; infinite in one direction A set of tape symbols M M contains a special blank symbol b A set of states K A head that can read and write symbols An action table that tells the machine What symbol to write How to move the head (‘L’ for left and ‘R’ for right) What is the next state INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Turing Machine The action table describes the transition function Transition function d(k, m) = (k, m, L): in state k, symbol m on tape location is replaced by symbol m, head moves to left one square, and TM enters state k Halting state is qf TM halts when it enters this state INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Turing Machine Let d(k, C) = (k1, X, R) where k1 is the next state 1 2 3 4 1 2 3 4 A B C D … A B X D … head head Let d(k1, D) = (k2, Y, L) where k2 is the next state Current state is k Current symbol is C 1 2 3 4 A B ? ? ? … ? head INFSCI 2935: Introduction to Computer Security

Turing Machine & halting problem The halting problem: Given a description of an algorithm and a description of its initial arguments, determine whether the algorithm, when executed with these arguments, ever halts (the alternative is that it runs forever without halting). Reduce TM to Safety problem If Safety problem is decidable then it implies that TM halts (for all inputs) – showing that the halting problem is decidable (contradiction) INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security General Safety Proble Theorem: It is undecidable if a given state of a given protection system is safe for a given generic right Proof: Reduce TM to safety problem Symbols, States  rights Tape cell  subject Cell si has A  si has A rights on itself Cell sk  sk has end rights on itself State p, head at si  si has p rights on itself Distinguished Right own: si owns si+1 for 1 ≤ i < k INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Mapping 1 2 3 4 1 2 4 s1 s2 s3 s4 A B C D … s1 A own head s2 B own Current state is k s3 C k own Current symbol is C s4 D end INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Mapping 1 2 3 4 1 2 4 s1 s2 s3 s4 A B X D … s1 A own head s2 B own s3 X own After d(k, C) = (k1, X, R) where k is the current state and k1 the next state s4 D k1 end INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Command Mapping d(k, C) = (k1, X, R) command ck,C(s3,s4) if own in A[s3,s4] and k in A[s3,s3] and C in A[s3,s3] then delete k from A[s3,s3]; delete C from A[s3,s3]; enter X into A[s3,s3]; enter k1 into A[s4,s4]; end INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Mapping 1 2 3 4 1 2 4 s1 s2 s3 s4 A s5 B X Y s1 A own head s2 B own s3 X own After d(k1, D) = (k2, Y, R) where k1 is the current state and k2 the next state s4 Y own s5 b k2 end INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Command Mapping d(k1, D) = (k2, Y, R) at end becomes command crightmostk,C(s4,s5) if end in A[s4,s4] and k1 in A[s4,s4] and D in A[s4,s4] then delete end from A[s4,s4]; create subject s5; enter own into A[s4,s5]; enter end into A[s5,s5]; delete k1 from A[s4,s4]; delete D from A[s4,s4]; enter Y into A[s4,s4]; enter k2 into A[s5,s5]; end INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Rest of Proof Similar commands move right, move right at end of tape Refer to book Protection system exactly simulates a TM Exactly 1 end right in ACM 1 right in entries corresponds to state Thus, at most 1 applicable command in each configuration of the TM If TM enters state qf, then right has leaked If safety question decidable, then represent TM as above and determine if qf leaks Leaks halting state  halting state in the matrix  Halting state reached Conclusion: safety question undecidable INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Other theorems Set of unsafe systems is recursively enumerable Recursively enumerable? For protection system without the create primitives, (i.e., delete create primitive); the safety question is complete in P-SPACE P-SPACE? It is undecidable whether a given configuration of a given monotonic protection system is safe for a given generic right Delete destroy, delete primitives; The system becomes monotonic as they only increase in size and complexity INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Other theorems The safety question for biconditional monotonic protection systems is undecidable The safety question for monoconditional, monotonic protection systems is decidable The safety question for monoconditional protection systems with create, enter, delete (and no destroy) is decidable. Observations Safety is undecidable for the generic case Safety becomes decidable when restrictions are applied INFSCI 2935: Introduction to Computer Security

What is the implication? Safety decidable for some models Are they practical? Safety only works if maximum rights known in advance Policy must specify all rights someone could get, not just what they have Where might this make sense? Two key questions Given a particular system with specific rules for transformation, can we show that the safety question is decidable? E.g. Take-grant model What are the weakest restrictions that will make the safety question decidable in that system INFSCI 2935: Introduction to Computer Security

Take-Grant Protection Model System is represented as a directed graph Subject: Object: Labeled edge indicate the rights that the source object has on the destination object Four graph rewriting rules (“de jure”, “by law”, “by rights”) Take rule Grant rule Create rule Remove rule Either: γ α β ├ x z y x takes (α to y) from z INFSCI 2935: Introduction to Computer Security

Take-Grant Protection Model 2. Grant rule: if g γ, the take rule produces another graph with a transitive edge α  β added. α z grants (α to y) to x γ β γ β ├ x z y x z y x creates (α to new vertex) y α ├ 3. Create rule: x y x x removes (α to) y β β -α ├ 4. Remove rule: x y x y INFSCI 2935: Introduction to Computer Security

Take-Grant Protection Model: Sharing Given G0, can vertex x obtain α rights over y? Can_share(α,x, y,G0) is true iff G0├* Gn using the four rules, & There is an α edge from x to y in Gn tg-path: v0,…,vn with t or g edge between any pair of vertices vi, vi+1 Vertices tg-connected if tg-path between them Theorem: Any two subjects with tg-path of length 1 can share rights INFSCI 2935: Introduction to Computer Security

Any two subjects with tg-path of length 1 can share rights Can_share(α, x, y,G0) Four possible length 1 tg-paths 1. Take rule 2. Grant rule 3. Lemma 3.1 4. Lemma 3.2 x z y {t} β  α {g} β  α {t} β  α {g} β  α INFSCI 2935: Introduction to Computer Security

Any two subjects with tg-path of length 1 can share rights Can_share(α, x, y,G0) Lemma 3.1 Sequence: Create Take Grant {t} β  α y x z α {t} β  α tg g α INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Other definitions Island: Maximal tg-connected subject-only subgraph Can_share all rights in island Proof: Induction from previous theorem Bridge: tg-path between subjects v0 and vn with edges of the following form: t→*, t←* t→*, g→, t←* t→*, g←, t←* INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Bridge g t v0 vn t g t v0 vn α 1. By lemma 3.1 α α 2. By grant 3. By take α t g t ? v0 vn INFSCI 2935: Introduction to Computer Security

Theorem: Can_share(α,x,y,G0) (for subjects) Subject_can_share(α, x, y,G0) is true iff if x and y are subjects and there is an α edge from x to y in G0 OR if:  a subject s  G0 with an s-to-y α edge, and  islands I1, …, In such that x  I1, s  In, and there is a bridge from Ij to Ij+1 x s α y I1 I2 In INFSCI 2935: Introduction to Computer Security

What about objects? Initial, terminal spans x initially spans to y if x is a subject and there is a tg-path associated with word {t→*g→} between them x can grant a right to y x terminally spans to y if x is a subject and there is a tg-path associated with word {t→*} between them x can take a right from y INFSCI 2935: Introduction to Computer Security

Theorem: Can_share(α,x,y,G0) Can_share(α,x, y,G0) iff there is an α edge from x to y in G0 or if:  a vertex s  G0 with an s to y α edge,  a subject x’ such that x’=x or x’ initially spans to x,  a subject s’ such that s’=s or s’ terminally spans to s, and  islands I1, …, In such that x’  I1, s’  In, and there is a bridge from Ij to Ij+1 s x’ s’ α α In α I2 I1 α y x α x’ can grant a right to x s’ can take a right from s INFSCI 2935: Introduction to Computer Security

Theorem: Can_share(α,x,y,G0) Corollary: There is an O(|V|+|E|) algorithm to test can_share: Decidable in linear time!! Theorem: Let G0 = , R a set of rights. G0 ├* G iff G is a finite directed acyclic graph, with edges labeled from R, and at least one subject with no incoming edge. Only if part: v is initial subject and G0 ├* G; No rule allows the deletion of a vertex No rule allows the an incoming edge to be added to a vertex without any incoming edges. Hence, as v has no incoming edges, it cannot be assigned any INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security If part : G meets the requirement and G0 ├* G Assume v is the vertex with no incoming edge and apply rules Perform “v creates (α  {g} to) new xi” for all 2<=i <= n, and α is union of all labels on the incoming edges going into xi in G For all pairs x, y with x α over y in G, perform “v grants (α to y) to x” If β is the set of rights x has over y in G, perform “v removes (α  {g} - β) to y” INFSCI 2935: Introduction to Computer Security

Take-Grant Model: Sharing through a Trusted Entity Let p and q be two processes Let b be a buffer that they share to communicate Let s be third party (e.g. operating system) that controls b rw rw u u g g rw Witness S creates ({r, w}, to new object) b S grants ({r, w}, b) to p S grants ({r, w}, b) to q rw b s s g g rw rw rw v v q q INFSCI 2935: Introduction to Computer Security

Theft in Take-Grant Model Can_steal(α,x,y,G0) is true if there is no α edge from x to y in G0 and  sequence G1, …, Gn s. t.:  α edge from x to y in Gn,,  rules ρ1,…, ρn that take Gi-1├ ρn Gi , and  v,w  Gi, 1≤i<n, if  α edge from v to y in G0 then ρi is not “v grants (α to y) to w” Disallows owners of α rights to y from transferring those rights Does not disallow them to transfer other rights This models a Trojan horse INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security A witness to theft u grants (t to v) to s s takes (t to u) from v s takes ( to w) from u t v t g s u α w INFSCI 2935: Introduction to Computer Security

Theorem: When Theft Possible Can_steal(α,x,y,G0) iff there is no α edge from x to y in G0 and  G1, …, Gn s. t.: There is no α edge from x to y in G0 ,  subject x’ such that x’=x or x’ initially spans to x, and  s with α edge to y in G0 and can_share(t,x’,s,G0) Proof: : Assume the three conditions hold x can get t right over s (x is a subject) x’ creates a surrogate to pass to x (x is an object) : Assume can_steal is true: No α edge from definition. Can_share(α,x,y,G0) from definition: α from x to y in Gn s exists from can_share and earlier theorem Can_share(t,x’,s,G0): s can’t grant α (definition), someone else must get α from s, show that this can only be accomplished with take rule INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Conspiracy Theft indicates cooperation: which subjects are actors in a transfer of rights, and which are not? Next question is How many subjects are needed to enable Can_share(α,x,y,G0)? Note that a vertex y Can take rights from any vertex to which it terminally spans Can pass rights to any vertex to which it initially spans Access set A(y) with focus y (y is subject) is union of set of vertices y, vertices to which y initially spans, and vertices to which y terminally spans INFSCI 2935: Introduction to Computer Security

INFSCI 2935: Introduction to Computer Security Conspiracy theorems: Deletion set δ(y,y’): All z  A(y) ∩ A(y’) for which y initially spans to z and y’ terminally spans to z  y terminally spans to z and y’ initially spans to z  z=y  z=y’ Conspiracy graph H of G0: Represents the paths along which subjects can transfer rights For each subject in G0, there is a corresponding vertex h(x) in H if δ(y,y’) not empty, edge from y to y’ Theorem: Can_share(α,x,y,G0) iff conspiracy path from an item in an island containing x to an item that can steal from y Conspirators required is shortest path in conspiracy graph Example from book INFSCI 2935: Introduction to Computer Security