Outline for May 11, 2000
- Greetings and felicitations!
- Worm in restricted area
- Confinement problem
- Legitimate channels
- Storage channels
- Covert channels
- Covert channels
- What are they; note probabilistic distribution
- Storage vs. timing; give examples
- Resource matrix
- Formal methods
- Information flow
- Deals with right to disseminate information.
- Assume lattice-structured information flow policy (à la BLP); represent as (SC, ≤)
- Explicit vs. implicit information flows
- Program statements; define when "secure"
- assignment
- compound
- alternation
- iteration
- function call
- goto; control flow graph and immediate forward dominator (first block that lies on all paths from the block under consideration and the exit)
- composition of above; show compile/parse tree
- Give examples (copy)
- Execution-Based with Fixed Classes
- verify flows at times of explicit assignment to object
- cannot report attempted security violations
- Execution-Based with Variable Classes
- Change variable's class to allow flow
- Fails for implicit
- Compiler-Based Mechanisms
- assures secure execution of each statement
- may reject secure mechanisms (not precise)
- procedures
- arrays
- gotos (blocks)
- errors
Examples of Compiler-Based Information Flow Enforcement Mechanisms
Here are some examples.
copy2
procedure copy2(x: integer class {x};
var y: integer class {x});
"copy x to y"
var z: integer class {x});
begin
z := 1; Low <= z
y := -1; Low <= y
while z = 1 do z <= glb(y, z)
begin
y := y + 1; y <= y
if y = 0 y <= z
then z := x x <= z
else z := 0 Low <= z
end
end
end copy2.
copy2 with goto
procedure copy2(x: integer class {x};
var y: integer class {x});
"copy x to y"
var z: integer class {x});
begin
----------------------------------------------
1: z := 1; b1
y := -1;
----------------------------------------------
2: if z = 1 then goto 6; b2
----------------------------------------------
3: y := y + 1; b3
if y = 0 then goto 5;
----------------------------------------------
4: z := x; b4
goto 2;
----------------------------------------------
5: z := 0; b5
goto 2;
----------------------------------------------
6: end
end copy2.
IFD(b1) = b2
IFD(b2) = b6
IFD(b3) = IFD(b4) = IFD(b5) = b2
Send email to
[email protected].
Department of Computer Science
University of California at Davis
Davis, CA 95616-8562
Page last modified on 5/11/2000