Secure Information Flow as a Safety Problem Overview Introduction - - PowerPoint PPT Presentation

secure information flow as a safety problem overview
SMART_READER_LITE
LIVE PREVIEW

Secure Information Flow as a Safety Problem Overview Introduction - - PowerPoint PPT Presentation

Secure Information Flow as a Safety Problem Overview Introduction to secure information flow Type-Based approach Self composition Downgrading Self composition with downgrading Type directed transformation


slide-1
SLIDE 1

Secure Information Flow as a Safety Problem

slide-2
SLIDE 2

Overview

  • Introduction to secure information flow
  • Type-Based approach
  • Self composition
  • Downgrading
  • Self composition with downgrading
  • Type directed transformation
  • Conclusion
slide-3
SLIDE 3

Introduction

The termination insensitive secure information flow problem (non-interference) can be reduced to solving a safety problem via a simple program transformation. The transformation is called Self-composition. This paper generalizes this self-compositional approach with a form of information downgrading. The authors combine this with a type-based approach to achieve a better way to analyse software.

slide-4
SLIDE 4

Secure Information Flow

Definition

Given a program P whose variables H = {h1, . . . , hn} are high security variables and L = {l1, . . . , ln} are low-security variables, P is said to be secure if and only if for any stores M1 and M2 such that M1=HcM2 , (<M1, P> ≠ ⊥ ∧ <M2, P> ≠ ⊥) ⇒ <M1, P> =L <M2, P>

slide-5
SLIDE 5

Non-Interference (Vanilla)

slide-6
SLIDE 6

Safety Problem

A safety property is a property of a program that can be refuted by observing a finite path Non-interference is almost a safety problem The 2-safety property is defined similarly but the program can be refuted by observing two finite paths

slide-7
SLIDE 7

Type-Based approach

Evaluates statically if the low security variables is dependent of the high security variables.

if(b) then x:=1 else skip l:=l+x; SAFE if(h) then x:=1 else skip l:=l+x; UNSAFE

slide-8
SLIDE 8

Type-based limitation

Type-based cannot show that the example is safe

slide-9
SLIDE 9

Type Based can't verify the previous figure, that's why we use Self-Composition because?

  • 1. let V(P) be all variables in P
  • 2. C(P) is a copy of P where x ∈ V(P) is replaced by C(x)
  • 3. For any stores M1 and M2 such that domain(M1) = V(P)

and domain(M2) = V(C(P)), let M1 =L M2 before execution

  • 4. Run P;C(P)
  • 5. Check if <M1,P;C(P)> =L <M2,P;C(P)>

Self-Composition

slide-10
SLIDE 10

Self-Composition

slide-11
SLIDE 11

Downgrading 1

Vanilla secure information flow is too strict. For example:

if(hashfunc(input)=hash) then l:=secret else skip;

slide-12
SLIDE 12

Downgrading 2

In order to ease on the restrictions, we need a downgrading function fhi for each high security variable hi that defines when and how a high security variable can be leaked. Example (same as last page): f = λx.if(hashfunc(input)=hash) then x else c More examples: f = λx.length(x) f = λx.0 (Vanilla)

slide-13
SLIDE 13

Downgrading 3

A program F can be expressed as F(f(h1) ... f(hn))= F(e1 ... en ) and agree with P on low- security variables at termination. where ei is a security policy, that associates each high- security variable hi to a downgrading function fh The program F first evaluates the downgrading functions f (h1) ... f(hn) so the (h1,...,hn) are not mentioned in the running of the rest of the program. At termination <M,P> =L <M,F(e)>

slide-14
SLIDE 14

Downgrading and self composition

Above does not work with type based But it works with self composition Because type based is dependent on structure

  • f downgrading operations
slide-15
SLIDE 15

Self-Composition Problem

Can't be verified with self-composition, but works with type-based.

slide-16
SLIDE 16

Type-directed Transformation

Both the type-based and the self-composition approach have their downsides. Type-directed transformation combines the best of two worlds. Using the WHILE-language to illustrate how it works.

slide-17
SLIDE 17

While-language

slide-18
SLIDE 18

Type-directed translation

slide-19
SLIDE 19

Type-directed translation Example 1

Before: Rule: After:

slide-20
SLIDE 20

Type-directed translation Example 2

Before: Rule: After:

slide-21
SLIDE 21

Type-directed translation Example 3

Before: Rule: After:

slide-22
SLIDE 22

Conclusion

  • Type-directed transformation is better than

the type based approach.

  • But not much different to self-composed

approach for a hypothetical analysis tool

  • More digestible than self-composed
  • Still not perfect.