! X SAS08 Valencia p.8/44 I N C OMPARATIVE S EMANTICS P 1 ; P 2 - - PowerPoint PPT Presentation

x sas 08 valencia p 8 44 i n c omparative s emantics p 1
SMART_READER_LITE
LIVE PREVIEW

! X SAS08 Valencia p.8/44 I N C OMPARATIVE S EMANTICS P 1 ; P 2 - - PowerPoint PPT Presentation

T RANSFORMING A BSTRACT I NTERPRETATIONS BY A BSTRACT I NTERPRETATIONS M ODELLING S YSTEMS AS AI T RANSFORMERS Roberto Giacobazzi (and A. Banerjee, I. Mastroeni , E. Quintarelli, F. Ranzato, F. Scozzari) SAS08, Valencia July 2008 SAS08


slide-1
SLIDE 1

TRANSFORMING ABSTRACT INTERPRETATIONS

BY

ABSTRACT INTERPRETATIONS

MODELLING SYSTEMS AS AI TRANSFORMERS Roberto Giacobazzi (and A. Banerjee, I. Mastroeni, E. Quintarelli, F. Ranzato, F. Scozzari)

SAS’08, Valencia July 2008

SAS’08 – Valencia – p.1/44

slide-2
SLIDE 2

ABSTRACT INTERPRETATION

[Cousot & Cousot ’79]

!

A program P

!

A domain of computation for P: C typically a complete lattice

!

Semantic specification (interpreter): P : C −

→ C

!

(Approximate) observable properties: ρ ∈ uco(C)

!

DERIVE A SOUND APPROXIMATE SPECIFICATION P♯

ρ(P(x)) ≤ P♯(x)

!

THE LIMIT CASE: COMPLETENESS

ρ(P(x)) = P♯(x) iff ρ(P(x)) = ρ(P(ρ(x)))

SAS’08 – Valencia – p.2/44

slide-3
SLIDE 3

COMPLETENESS IN ABSTRACT INTERPRETATION

!

BACKWARD SOUNDNESS: NO INFORMATION IS LOST BY APPROXIMATING

THE INPUT/OUTPUT

!

ρ◦f ≤ ρ◦f ◦ρ

ρ

f(x)

f

ρ(f(x))

ρ(f(ρ(x))) f♯(ρ(x))

!"#$%&'$

SAS’08 – Valencia – p.3/44

slide-4
SLIDE 4

COMPLETENESS IN ABSTRACT INTERPRETATION

!

BACKWARD COMPLETENESS: NO LOSS OF PRECISION IS ACCUMULATED BY

APPROXIMATING THE INPUT

!

ρ◦f = ρ◦f ◦ρ

ρ

f(x)

f

ρ(f(x))

ρ(f(ρ(x))) f♯(ρ(x))

!

!"#$%&'$

SAS’08 – Valencia – p.3/44

slide-5
SLIDE 5

COMPLETENESS IN ABSTRACT INTERPRETATION

!

FORWARD COMPLETENESS: NO INFORMATION IS LOST BY APPROXIMATING

THE OUTPUT

!

f ◦ρ ≤ ρ◦f ◦ρ

ρ

f(x)

f

ρ(f(ρ(x))) f♯(ρ(x))

!"#$%&'$

ρ

f(ρ(x))

f

SAS’08 – Valencia – p.3/44

slide-6
SLIDE 6

COMPLETENESS IN ABSTRACT INTERPRETATION

!

FORWARD COMPLETENESS: NO INFORMATION IS LOST BY APPROXIMATING

THE OUTPUT

!

f ◦ρ = ρ◦f ◦ρ

ρ

f(x)

f

ρ(f(ρ(x))) f♯(ρ(x))

!"#$%&'$

ρ f(ρ(x)) f

!

SAS’08 – Valencia – p.3/44

slide-7
SLIDE 7

COMPLETENESS IN ABSTRACT INTERPRETATION

!"#$"%&'& !"#$"%&()* !"#$%&'()*+,#(&-. /,#0(%(1&2$*3$#(-1&'. 4(-5"(5$67(.$8*3$'"%&19 :,8$)*/;$'<&-5 =90$. 3=> ?%,"-8-$..*@*.1%&'1-$.. !!6'()'")".*@*4,5&' A)&(.&-5 7&.&#")(1&,- +,-."/-00,& 1-20-%"& 3."00-4,&(55 3%67762&(8* 9:.4"7%&(*;

µ

SAS’08 – Valencia – p.4/44

slide-8
SLIDE 8

IN NUMERICAL DOMAINS

A SIMPLE EXAMPLE IN INTERVAL ANALYSIS Z

[0, +∞] [0, 10] [0, 2] [0, 0] [−∞, 0]

!

A simple domain of intervals

SAS’08 – Valencia – p.5/44

slide-9
SLIDE 9

IN NUMERICAL DOMAINS

A SIMPLE EXAMPLE IN INTERVAL ANALYSIS

Z

[0, +∞] [0, 10] [0, 2] [0, 0] [−∞, 0]

!

A simple domain of intervals

!

sq(X ) =

  • x 2 ˛

˛ ˛ x ∈ X

  • !

{Z, [0, +∞], [0, 10]} is Forward but

not Backward complete

SAS’08 – Valencia – p.5/44

slide-10
SLIDE 10

IN NUMERICAL DOMAINS

A SIMPLE EXAMPLE IN INTERVAL ANALYSIS

Z

[0, +∞] [0, 10] [0, 2] [0, 0] [−∞, 0]

!

A simple domain of intervals

!

sq(X ) =

  • x 2 ˛

˛ ˛ x ∈ X

  • !

{Z, [0, +∞], [0, 10]} is Forward but

not Backward complete

!

{Z, [0, 2], [0, 0]} is Backward but not

Forward complete

SAS’08 – Valencia – p.5/44

slide-11
SLIDE 11

IN GROUNDNESS: HEYTING COMPLETION

GROUNDNESS ANALYSIS DETERMINES WHETHER A VARIABLE IS DEFINITIVELY

INSTANTIATED

!

(℘(Subst)↓, ∩) is a complete Heyting Algebra

!

Θ1 ∩ Θ2 ≤ Θ3 ⇐⇒ Θ2 ≤ Θ1

− →Θ3 = S Θ ˛ ˛ ˛ Θ1 ∩ Θ ≤ Θ3

  • !

A

−→B =

  • Θ1

− →Θ3 ˛ ˛ ˛ Θ1 ∈ A, Θ2 ∈ B

  • y

x x ∧ y Subst

X = G ⊓ (X

− →X )

SAS’08 – Valencia – p.6/44

slide-12
SLIDE 12

IN GROUNDNESS: HEYTING COMPLETION

GROUNDNESS ANALYSIS DETERMINES WHETHER A VARIABLE IS DEFINITIVELY

INSTANTIATED

!

(℘(Subst)↓, ∩) is a complete Heyting Algebra

!

Θ1 ∩ Θ2 ≤ Θ3 ⇐⇒ Θ2 ≤ Θ1

− →Θ3 = S Θ ˛ ˛ ˛ Θ1 ∩ Θ ≤ Θ3

  • !

A

−→B =

  • Θ1

− →Θ3 ˛ ˛ ˛ Θ1 ∈ A, Θ2 ∈ B

  • y

x x ∧ y x ↔ y x → y x ← y Subst

X = G ⊓ (X

− →X )

SAS’08 – Valencia – p.6/44

slide-13
SLIDE 13

IN GROUNDNESS: HEYTING COMPLETION

GROUNDNESS ANALYSIS DETERMINES WHETHER A VARIABLE IS DEFINITIVELY

INSTANTIATED

!

(℘(Subst)↓, ∩) is a complete Heyting Algebra

!

Θ1 ∩ Θ2 ≤ Θ3 ⇐⇒ Θ2 ≤ Θ1

− →Θ3 = S Θ ˛ ˛ ˛ Θ1 ∩ Θ ≤ Θ3

  • !

A

−→B =

  • Θ1

− →Θ3 ˛ ˛ ˛ Θ1 ∈ A, Θ2 ∈ B

  • y

x x ∧ y x ↔ y x → y x ← y x ∨ y Subst

X = G ⊓ (X

− →X ) ⇒ A COMPLETENESS PROBLEM

[Giacobazzi & Scozzari ’98]

SAS’08 – Valencia – p.6/44

slide-14
SLIDE 14

IN COMPARATIVE SEMANTICS

CONDENSING GENERALISES THE LIFTING LEMMA FROM SLD-RESOLUTION TO

ARBITRARY SEMANTICS [Giacobazzi et al. ’05]

a ⊗ b = a ⊗ b

Program

P ::= ∅ | p(¯ x) ← A | P.P

Agent

A ::= θ | p(¯ x) | A ⊗ A | Wn

i=1 Ai

!

⊗ is a tensor operator (e.g. unification)

!

a ⊗ b ≤ c ⇐⇒ b ≤ a ⊸ c = W b ∈ C ˛ ˛ ˛ a ⊗ b ≤ c

  • !

A

−→B =

  • a ⊸ b ∈ C

˛ ˛ ˛ a ∈ A, b ∈ B

  • !

X is condensing iff X = X ⊓ (X

−→X ) iff X is complete for FX =

  • λy.x ⊗ y

˛ ˛ ˛ x ∈ X

  • .

⇒ A COMPLETENESS PROBLEM

SAS’08 – Valencia – p.7/44

slide-15
SLIDE 15

IN COMPARATIVE SEMANTICS

P1; P2A = P1A⋄ P2A

!

Forward termination: Pot→?(X ) =

  • σ

˛ ˛ ˛ δ ∈ X + ∧ σ⊣ = δ⊣

  • !

X

SAS’08 – Valencia – p.8/44

slide-16
SLIDE 16

IN COMPARATIVE SEMANTICS

P1; P2A = P1A⋄ P2A

!

Backward termination: Pot←?(X ) =

  • σ

˛ ˛ ˛ δ ∈ X + ∧ σ⊢ = δ⊢

  • !

X

SAS’08 – Valencia – p.8/44

slide-17
SLIDE 17

IN COMPARATIVE SEMANTICS

P1; P2A = P1A⋄ P2A

!

X = Pot→? ⊓ (X

−→X ) and the solution: Pot→?

←−Pot→? = ·.

!

X

Pot→?

← −Pot→?

SAS’08 – Valencia – p.8/44

slide-18
SLIDE 18

IN COMPARATIVE SEMANTICS

P1; P2A = P1A⋄ P2A

!

X = Pot←? ⊓ (X

−→X ) and the solution: Pot←?

−→Pot←? = Wlp.

!

X

Pot←?

− →Pot←?

⇒ A COMPLETENESS PROBLEM

[Giacobazzi & Mastroeni ’05]

SAS’08 – Valencia – p.8/44

slide-19
SLIDE 19

IN MODEL CHECKING

Complete Abstract Model Checking: M A |

= Φ ⇐⇒ M C | = Φ

π

IF π IS SPURIOUS THEN THE ABSTRACTION IS INCOMPLETE FOR post

[Giacobazzi & Quintarelli ’01, Ranzato & Tapparo ’06, Cousot et al ’07, Schmidt ’08]

SAS’08 – Valencia – p.9/44

slide-20
SLIDE 20

IN MODEL CHECKING

[Cousot & Cousot ’00] Let Φ ∈ µ-calculus: ΦState ⊂ αState(ΦTrace)

λX.⊤

!"#$%&'&()*+',-.'/"0+ 1,-.&+ 2'-'&3*-+&4(5"4&%(!6&.7/08

9:2;<=>?@ 92)2=>A@

STATE-BASED MODEL CHECKING IS INTRINSICALLY

INCOMPLETE FOR PROPERTIES OF TRACES!!

SAS’08 – Valencia – p.9/44

slide-21
SLIDE 21

IN SECURITY: NON-INTERFERENCE

SW

Public L: Secret H: Finantial investment Investment data Public L: Log files

SAS’08 – Valencia – p.10/44

slide-22
SLIDE 22

IN SECURITY: NON-INTERFERENCE

External observer

SW

Public L: Secret H: Finantial investment Investment data Public L: Log files

Is it secure?

SAS’08 – Valencia – p.10/44

slide-23
SLIDE 23

IN SECURITY: NON-INTERFERENCE

External observer

Is it secure?

H

L Secret H

NO

SW

Public L: Secret H: Finantial investment Investment data Public L: Log files

SAS’08 – Valencia – p.10/44

slide-24
SLIDE 24

STANDARD NON-INTERFERENCE

Private Input Public Input Public Output

P

∀l : L, ∀h1, h2 : H. P(h1, l)L = P(h2, l)L

SAS’08 – Valencia – p.11/44

slide-25
SLIDE 25

STANDARD NON-INTERFERENCE

Private Input Public Input Public Output

P

∀l : L, ∀h1, h2 : H. P(h1, l)L = P(h2, l)L

SAS’08 – Valencia – p.11/44

slide-26
SLIDE 26

STANDARD NON-INTERFERENCE

Private Input Public Input Public Output

P

∀l : L, ∀h1, h2 : H. P(h1, l)L = P(h2, l)L

SAS’08 – Valencia – p.11/44

slide-27
SLIDE 27

STANDARD NON-INTERFERENCE

Private Input Public Input Public Output

P

∀l : L, ∀h1, h2 : H. P(h1, l)L = P(h2, l)L

SAS’08 – Valencia – p.11/44

slide-28
SLIDE 28

STANDARD NON-INTERFERENCE

Private Input Public Input Public Output

P

∀l : L, ∀h1, h2 : H. P(h1, l)L = P(h2, l)L

SAS’08 – Valencia – p.11/44

slide-29
SLIDE 29

STANDARD NON-INTERFERENCE

Private Input Public Input Public Output

P

∀l : L, ∀h1, h2 : H. P(h1, l)L = P(h2, l)L

SAS’08 – Valencia – p.11/44

slide-30
SLIDE 30

NI: A COMPLETENESS PROBLEM

Recall that [Joshi & Leino’00]

P is secure

iff HH ; P; HH

. = P ; HH

SAS’08 – Valencia – p.12/44

slide-31
SLIDE 31

NI: A COMPLETENESS PROBLEM

Recall that [Joshi & Leino’00]

P is secure

iff HH ; P; HH

. = P ; HH

Let X = X H, X L ⇒ H(X )def

= ⊤H, X L ∈ uco(℘(V))

HH ; P; HH

. = P ; HH ⇓ H◦P◦H = H◦P

SAS’08 – Valencia – p.12/44

slide-32
SLIDE 32

NI: A COMPLETENESS PROBLEM

Recall that [Joshi & Leino’00]

P is secure

iff HH ; P; HH

. = P ; HH

Let X = X H, X L ⇒ H(X )def

= ⊤H, X L ∈ uco(℘(V))

HH ; P; HH

. = P ; HH ⇓ H◦P◦H = H◦P ⇒ A COMPLETENESS PROBLEM

SAS’08 – Valencia – p.12/44

slide-33
SLIDE 33

MAKING ABSTRACT INTERPRETATIONS COMPLETE

10 YEARS AFTER

SAS’08 – Valencia – p.13/44

slide-34
SLIDE 34

THE GEOMETRY OF AI TRANSFORMERS

X

!"#$%&'& ()*'%+$'

R(X ) lco – REFINEMENT

SAS’08 – Valencia – p.14/44

slide-35
SLIDE 35

THE GEOMETRY OF AI TRANSFORMERS

X

!"#$%&'& ()*'%+$'

S(X )

uco – SIMPLIFICATION

SAS’08 – Valencia – p.14/44

slide-36
SLIDE 36

THE GEOMETRY OF AI TRANSFORMERS

Can we use abstract interpretation for transforming abstract interpretations?

!

Refinements: X ⊆ R(X ) (improving precision – lower closure)

!

Simplification: S(X ) ⊆ X (reducing precision – upper closure) [Janowitz ’67]

(1) η ∈ uco(C) ⇔ η+ ∈ lco(C) ⇔

  • η◦η+ = η+

η+◦η = η (2) η ∈ uco(C) ⇔ η− ∈ lco(C) ⇔

  • η◦η− = η

η−◦η = η−

SAS’08 – Valencia – p.15/44

slide-37
SLIDE 37

THE GEOMETRY OF AI TRANSFORMERS

Can we use abstract interpretation for transforming abstract interpretations?

!

Refinements: X ⊆ R(X ) (improving precision – lower closure)

!

Simplification: S(X ) ⊆ X (reducing precision – upper closure) [Janowitz ’67]

(1) S simplification ⇔ S+refinement ⇔

  • S◦S+ = S+

S+◦S = S

Shell/Core of a given property

(2) S simplification ⇔ S−refinement ⇔

  • S◦S− = S

S−◦S = S−

Expander/Compressor for a given property

SAS’08 – Valencia – p.15/44

slide-38
SLIDE 38

THE GEOMETRY OF DOMAIN TRANSFORMERS

Shell Core Compressor Expander

+ + +

  • !

Shell/Core minimally transform domains in order to achieve a given property

!

Expander/Compressor maximally transform domains in order to achieve a given property WHAT IS THE MEANING OF SHELL/CORE AND EXPANDER/COMPRESSOR FOR THE

COMPLETENESS PROPERTY?

SAS’08 – Valencia – p.16/44

slide-39
SLIDE 39

THE GEOMETRY OF DOMAIN TRANSFORMERS

Basic abstract domain transformers

+ + +

  • Core:

Minimal complete simplification Shell: Minimal complete refinement Expander: Maximal incomplete refinement Compressor: Maximal incomplete simplification

Rf

Cf Ef

Kf

[Giacobazzi et al.’00] [SAS’08]

SAS’08 – Valencia – p.17/44

slide-40
SLIDE 40

SHELL/CORE

Let P be completeness

A P holds: Shell of A P doesn’t hold

SAS’08 – Valencia – p.18/44

slide-41
SLIDE 41

SHELL/CORE

Let P be completeness

A P holds: Core of A P doesn’t hold A P holds: Shell of A P doesn’t hold

SAS’08 – Valencia – p.18/44

slide-42
SLIDE 42

DOMAIN COMPLETENESS: SHELL/CORE

! "

⊤ ⊤ ⊥

ρ

η BACKWARD COMPLETENESS: η◦f ◦ρ = η◦f

SAS’08 – Valencia – p.19/44

slide-43
SLIDE 43

DOMAIN COMPLETENESS: SHELL/CORE

! "

⊤ ⊤ ⊥

ρ

η BACKWARD IN-COMPLETENESS: η◦f ◦ρ ≥ η◦f

SAS’08 – Valencia – p.19/44

slide-44
SLIDE 44

DOMAIN COMPLETENESS: SHELL/CORE

! "

⊤ ⊤ ⊥

ρ

η Making BACKWARD COMPLETE: Refining input domains [GRS’00]

SAS’08 – Valencia – p.19/44

slide-45
SLIDE 45

DOMAIN COMPLETENESS: SHELL/CORE

! "

⊤ ⊤ ⊥

ρ

η Making BACKWARD COMPLETE: Simplifying output domains [GRS’00]

SAS’08 – Valencia – p.19/44

slide-46
SLIDE 46

DOMAIN COMPLETENESS: SHELL/CORE

⊤ ⊤ ⊥

ρ η

FORWARD COMPLETENESS: η◦f ◦ρ = f ◦ρ

SAS’08 – Valencia – p.19/44

slide-47
SLIDE 47

DOMAIN COMPLETENESS: SHELL/CORE

⊤ ⊤ ⊥

ρ η

FORWARD IN-COMPLETENESS: η◦f ◦ρ ≥ f ◦ρ

SAS’08 – Valencia – p.19/44

slide-48
SLIDE 48

DOMAIN COMPLETENESS: SHELL/CORE

! "

⊤ ⊤ ⊥

ρ

η Making FORWARD COMPLETE: Refining output domains [GQ’01]

SAS’08 – Valencia – p.19/44

slide-49
SLIDE 49

DOMAIN COMPLETENESS: SHELL/CORE

! "

⊤ ⊤ ⊥

ρ

η Making FORWARD COMPLETE: Simplifying input domains [GQ’01]

SAS’08 – Valencia – p.19/44

slide-50
SLIDE 50

BACKWARD VS FORWARD

!

A domain is backward complete wrt f iff it is forward complete wrt

f + = λX . S Y ˛ ˛ ˛ f (Y ) ⊆ X

  • ;

!

A (not trivial) partition is backward stable wrt f iff it is forward stable wrt

f −1 = λX .

  • y

˛ ˛ ˛ f (y) ∈ X

  • ;

!

If f is injective, a (not trivial) partition is forward stable wrt f iff it is backward stable wrt f −1;

SAS’08 – Valencia – p.20/44

slide-51
SLIDE 51

BACKWARD VS FORWARD

!

A domain is backward complete wrt f iff it is forward complete wrt

f + = λX . S Y ˛ ˛ ˛ f (Y ) ⊆ X

  • ;

!

A (not trivial) partition is backward stable wrt f iff it is forward stable wrt

f −1 = λX .

  • y

˛ ˛ ˛ f (y) ∈ X

  • ;

!

If f is injective, a (not trivial) partition is forward stable wrt f iff it is backward stable wrt f −1; A backward problem can always be transformed in a forward one, but the viceversa is not always possible!

SAS’08 – Valencia – p.20/44

slide-52
SLIDE 52

NEW PERSPECTIVES IN LANGUAGE-BASED SECURITY

Secret

SW

External observer

Observable:

Public L Secret H Public L L

ρ φ(H )

φ

φ(H )

SAS’08 – Valencia – p.21/44

slide-53
SLIDE 53

ABSTRACT NON-INTERFERENCE (NARROW)

Private Input Public Input Public Output

η P ρ

ρ, η ∈ uco(℘(VL)): [η]P(ρ): η(l1) = η(l2) ⇒ ρ(P(h1, l1)L) = ρ(P(h2, l2)L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.22/44

slide-54
SLIDE 54

ABSTRACT NON-INTERFERENCE (NARROW)

Private Input Public Input Public Output

η P ρ

ρ, η ∈ uco(℘(VL)): [η]P(ρ): η(l1) = η(l2) ⇒ ρ(P(h1, l1)L) = ρ(P(h2, l2)L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.22/44

slide-55
SLIDE 55

ABSTRACT NON-INTERFERENCE (NARROW)

Private Input Public Input Public Output

η P ρ

ρ, η ∈ uco(℘(VL)): [η]P(ρ): η(l1) = η(l2) ⇒ ρ(P(h1, l1)L) = ρ(P(h2, l2)L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.22/44

slide-56
SLIDE 56

ABSTRACT NON-INTERFERENCE (NARROW)

Private Input Public Input Public Output

η P ρ

ρ, η ∈ uco(℘(VL)): [η]P(ρ): η(l1) = η(l2) ⇒ ρ(P(h1, l1)L) = ρ(P(h2, l2)L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.22/44

slide-57
SLIDE 57

ABSTRACT NON-INTERFERENCE (NARROW)

Private Input Public Input Public Output

η P ρ

ρ, η ∈ uco(℘(VL)): [η]P(ρ): η(l1) = η(l2) ⇒ ρ(P(h1, l1)L) = ρ(P(h2, l2)L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.22/44

slide-58
SLIDE 58

ABSTRACT NON-INTERFERENCE (NARROW)

Private Input Public Input Public Output

η P ρ

ρ, η ∈ uco(℘(VL)): [η]P(ρ): η(l1) = η(l2) ⇒ ρ(P(h1, l1)L) = ρ(P(h2, l2)L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.22/44

slide-59
SLIDE 59

ABSTRACT NON-INTERFERENCE (ANI)

Private Input Public Input Public Output

η P ρ

ρ, η ∈ uco(℘(VL)): (η)P(ρ): η(l1)=η(l2) ⇒ ρ(P(h1, η(l1))L)=ρ(P(h2, η(l2))L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.23/44

slide-60
SLIDE 60

ABSTRACT NON-INTERFERENCE (ANI)

Private Input Public Input Public Output

η P ρ

ρ, η ∈ uco(℘(VL)): (η)P(ρ): η(l1)=η(l2) ⇒ ρ(P(h1, η(l1))L)=ρ(P(h2, η(l2))L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.23/44

slide-61
SLIDE 61

ABSTRACT NON-INTERFERENCE (ANI)

Private Input Public Input Public Output

η P ρ

ρ, η ∈ uco(℘(VL)): (η)P(ρ): η(l1)=η(l2) ⇒ ρ(P(h1, η(l1))L)=ρ(P(h2, η(l2))L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.23/44

slide-62
SLIDE 62

ABSTRACT NON-INTERFERENCE (ANI)

Private Input Public Input Public Output

η P ρ

ρ, η ∈ uco(℘(VL)): (η)P(ρ): η(l1)=η(l2) ⇒ ρ(P(h1, η(l1))L)=ρ(P(h2, η(l2))L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.23/44

slide-63
SLIDE 63

ABSTRACT NON-INTERFERENCE (ANI)

Private Input Public Input Public Output

η P ρ

ρ, η ∈ uco(℘(VL)): (η)P(ρ): η(l1)=η(l2) ⇒ ρ(P(h1, η(l1))L)=ρ(P(h2, η(l2))L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.23/44

slide-64
SLIDE 64

EXAMPLES

EXAMPLE I: while h do (l := l + 2; h := h − 1). Standard Non-Interference ≡ [id]P(id)

h = 0, l = 1 ❀ l = 1 h = 1, l = 1 ❀ l = 3 h = n, l = 1 ❀ l = 1 + 2n

SAS’08 – Valencia – p.24/44

slide-65
SLIDE 65

EXAMPLES

EXAMPLE I: while h do (l := l + 2; h := h − 1). Standard Non-Interference ≡ [id]P(id)

h = 0, l = 1 ❀ l = 1 h = 1, l = 1 ❀ l = 3 h = n, l = 1 ❀ l = 1 + 2n

[id]P(Par) h = 0, l = 1 ❀ Par(l) = odd h = 1, l = 1 ❀ Par(l) = odd h = n, l = 1 ❀ Par(l) = odd

SAS’08 – Valencia – p.24/44

slide-66
SLIDE 66

EXAMPLES

EXAMPLE II:

P = l := 2 ∗ l ∗ h2. [Par]P(Sign) h = 1, l = 4 (Par(4) = even) ❀ Sign(l) = + h = 1, l = −4 (Par(−4) = even) ❀ Sign(l) = −

DECEPTIVE FLOW

SAS’08 – Valencia – p.24/44

slide-67
SLIDE 67

EXAMPLES

EXAMPLE II:

P = l := 2 ∗ l ∗ h2. [Par]P(Sign) h = 1, l = 4 (Par(4) = even) ❀ Sign(l) = + h = 1, l = −4 (Par(−4) = even) ❀ Sign(l) = −

DECEPTIVE FLOW

(Par)P(Sign) h = −3, Par(l) = even ❀ Sign(l) = I don’t know h = 1, Par(l) = even ❀ Sign(l) = I don’t know

SAS’08 – Valencia – p.24/44

slide-68
SLIDE 68

EXAMPLES

EXAMPLE III:

P = l := l ∗ h2. (id)P(Par) h = 2, l = 1 ❀ Par(l) = even h = 3, l = 1 ❀ Par(l) = odd h = n, l = 1 ❀ Par(l) = Par(n)

SAS’08 – Valencia – p.24/44

slide-69
SLIDE 69

DECLASSIFIED ANI VIA BLOCKING

Private Input Public Input Public Output

η P ρ φ

ρ, η ∈ uco(℘(VL)),φ ∈ uco(℘(VH)): (η)P(φ [ ]ρ): η(l1)=η(l2) ⇒ ρ(P(φ(h1), η(l1))L)=ρ(P(φ(h2), η(l2))L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.25/44

slide-70
SLIDE 70

DECLASSIFIED ANI VIA BLOCKING

Private Input Public Input Public Output

η P ρ φ

ρ, η ∈ uco(℘(VL)),φ ∈ uco(℘(VH)): (η)P(φ [ ]ρ): η(l1)=η(l2) ⇒ ρ(P(φ(h1), η(l1))L)=ρ(P(φ(h2), η(l2))L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.25/44

slide-71
SLIDE 71

DECLASSIFIED ANI VIA BLOCKING

Private Input Public Input Public Output

η P ρ φ

ρ, η ∈ uco(℘(VL)),φ ∈ uco(℘(VH)): (η)P(φ [ ]ρ): η(l1)=η(l2) ⇒ ρ(P(φ(h1), η(l1))L)=ρ(P(φ(h2), η(l2))L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.25/44

slide-72
SLIDE 72

DECLASSIFIED ANI VIA BLOCKING

Private Input Public Input Public Output

η P ρ φ

ρ, η ∈ uco(℘(VL)),φ ∈ uco(℘(VH)): (η)P(φ [ ]ρ): η(l1)=η(l2) ⇒ ρ(P(φ(h1), η(l1))L)=ρ(P(φ(h2), η(l2))L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.25/44

slide-73
SLIDE 73

DECLASSIFIED ANI VIA BLOCKING

Private Input Public Input Public Output

η P ρ φ

ρ, η ∈ uco(℘(VL)),φ ∈ uco(℘(VH)): (η)P(φ [ ]ρ): η(l1)=η(l2) ⇒ ρ(P(φ(h1), η(l1))L)=ρ(P(φ(h2), η(l2))L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.25/44

slide-74
SLIDE 74

DECLASSIFIED ANI VIA BLOCKING

Private Input Public Input Public Output

η P ρ φ

ρ, η ∈ uco(℘(VL)),φ ∈ uco(℘(VH)): (η)P(φ [ ]ρ): η(l1)=η(l2) ⇒ ρ(P(φ(h1), η(l1))L)=ρ(P(φ(h2), η(l2))L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.25/44

slide-75
SLIDE 75

EXAMPLE

EXAMPLE:

P = l := l ∗ h2. (id)P(Par) h = 2, l = 1 ❀ Par(l) = even h = 3, l = 1 ❀ Par(l) = odd h = n, l = 1 ❀ Par(l) = Par(n)

(id)P(Sign [ ]Par)

Sign(h) = +, l = 1 ❀ Par(l) = I don’t know Sign(h) = −, l = 1 ❀ Par(l) = I don’t know

SAS’08 – Valencia – p.26/44

slide-76
SLIDE 76

DECLASSIFIED ANI (VIA ALLOWING)

Private Input Public Input Public Output

η P ρ φ

ρ, η ∈ uco(℘(VL)),φ ∈ uco(℘(VH)): (η)P(φ ⇒ ρ): η(l1)=η(l2) and φ(h1)=φ(h2) ⇒ ρ(P(h1, η(l1))L)=ρ(P(h2, η(l2))L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.27/44

slide-77
SLIDE 77

DECLASSIFIED ANI (VIA ALLOWING)

Private Input Public Input Public Output

η P ρ φ

ρ, η ∈ uco(℘(VL)),φ ∈ uco(℘(VH)): (η)P(φ ⇒ ρ): η(l1)=η(l2) and φ(h1)=φ(h2) ⇒ ρ(P(h1, η(l1))L)=ρ(P(h2, η(l2))L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.27/44

slide-78
SLIDE 78

DECLASSIFIED ANI (VIA ALLOWING)

Private Input Public Input Public Output

η P ρ φ

ρ, η ∈ uco(℘(VL)),φ ∈ uco(℘(VH)): (η)P(φ ⇒ ρ): η(l1)=η(l2) and φ(h1)=φ(h2) ⇒ ρ(P(h1, η(l1))L)=ρ(P(h2, η(l2))L)

[Giacobazzi & Mastroeni ’04]

SAS’08 – Valencia – p.27/44

slide-79
SLIDE 79

OBSERVER VS OBSERVABLE

MODELLING ATTACKERS AS DOMAIN TRANSFORMERS Consider |

= (η)P(φ

[ ]ρ): In order to preserve non-interference...

SAS’08 – Valencia – p.28/44

slide-80
SLIDE 80

OBSERVER VS OBSERVABLE

MODELLING ATTACKERS AS DOMAIN TRANSFORMERS Consider |

= (η)P(φ

[ ]ρ): In order to preserve non-interference...

More concrete More concrete More abstract More abstract ρ φ

AND

uco(℘(VL)) uco(℘(VH))

SAS’08 – Valencia – p.28/44

slide-81
SLIDE 81

OBSERVER VS OBSERVABLE

MODELLING ATTACKERS AS DOMAIN TRANSFORMERS Consider |

= (η)P(φ

[ ]ρ): In order to preserve non-interference...

More concrete More concrete More abstract More abstract ρ φ

AND

uco(℘(VL)) uco(℘(VH))

SAS’08 – Valencia – p.28/44

slide-82
SLIDE 82

ANI AS COMPLETENESS

Let ρ ∈ uco(℘(VL)) ⇒ Hρ(X )def

= ⊤H, ρ(X L) ∈ uco(℘(V))

!

Narrow abstract non-interference: Hρ◦P◦Hη = Hρ◦P;

!

Abstract non-interference: Hρ◦Pη,φ◦Hη = Hρ◦Pη,φ

SAS’08 – Valencia – p.29/44

slide-83
SLIDE 83

ANI AS COMPLETENESS

Let ρ ∈ uco(℘(VL)) ⇒ Hρ(X )def

= ⊤H, ρ(X L) ∈ uco(℘(V))

!

Narrow abstract non-interference: Hρ◦P◦Hη = Hρ◦P;

!

Abstract non-interference: Hρ◦Pη,φ◦Hη = Hρ◦Pη,φ

!

PUBLIC OBSERVER AS COMPLETENESS CORE:

(η)P(φ [ ]CHη

Pη,φ(H))

SAS’08 – Valencia – p.29/44

slide-84
SLIDE 84

ANI AS COMPLETENESS

Let ρ ∈ uco(℘(VL)) ⇒ Hρ(X )def

= ⊤H, ρ(X L) ∈ uco(℘(V))

!

Narrow abstract non-interference: Hρ◦P◦Hη = Hρ◦P;

!

Abstract non-interference: Hρ◦Pη,φ◦Hη = Hρ◦Pη,φ

!

PUBLIC OBSERVER AS FORWARD COMPLETENESS CORE:

(η)P(φ [ ]CHη

Pη,φ(H))

Strongest harmless attacker

!

PRIVATE OBSERVABLE AS FORWARD COMPLETENESS SHELL:

(η)P(RHρ

Pη,id(Hη) ⇒ ρ)

Maximal information released

SAS’08 – Valencia – p.29/44

slide-85
SLIDE 85

ANI AS COMPLETENESS

!

ADJOINING ATTACKERS AND DECLASSIFICATION BY COMPLETENESS

The most concrete observer The most abstract observable Declassification Secure

id id ⊤

SAS’08 – Valencia – p.29/44

slide-86
SLIDE 86

DECLASSIFICATION

[Banerjee, Giacobazzi and Mastroeni ’07]

!

By exploiting the strong relation between completeness and non-iterference we can obtain the following results:

!

Model declassification as a forward completeness problem for the weakest precondition semantics;

!

Derive counterexamples to a given declassification policy;

!

Refine a given declassification policy (Shell);

SAS’08 – Valencia – p.30/44

slide-87
SLIDE 87

DNI: A COMPLETENESS PROBLEM

Let Hφ the abstract domain declassifying the property φ of the private input:

H◦P◦Hφ = H◦P ⇔ Hφ◦WlpP ◦H = WlpP ◦H

To release φ means to distinguish between elements in φ!

SAS’08 – Valencia – p.31/44

slide-88
SLIDE 88

DNI: A COMPLETENESS PROBLEM

Let Hφ the abstract domain declassifying the property φ of the private input:

H◦P◦Hφ = H◦P ⇔ Hφ◦WlpP ◦H = WlpP ◦H

φ(X H), X L Output H ⊤, xL xH, xL Input Hφ WlpP X H, X L SAS’08 – Valencia – p.32/44

slide-89
SLIDE 89

DNI: A COMPLETENESS PROBLEM

Let Hφ the abstract domain declassifying the property φ of the private input:

H◦P◦Hφ = H◦P ⇔ Hφ◦WlpP ◦H = WlpP ◦H

Counterexample

Output H ⊤, xL xH, xL Input Hφ WlpP X H, X L φ(X H), X L SAS’08 – Valencia – p.32/44

slide-90
SLIDE 90

DNI: A COMPLETENESS PROBLEM

Let Hφ the abstract domain declassifying the property φ of the private input:

H◦P◦Hφ = H◦P ⇔ Hφ◦WlpP ◦H = WlpP ◦H

Counterexample Leakeage

Output H ⊤, xL xH, xL Input Hφ WlpP X H, X L φ(X H), X L SAS’08 – Valencia – p.32/44

slide-91
SLIDE 91

DNI: A COMPLETENESS PROBLEM

Let Hφ the abstract domain declassifying the property φ of the private input:

H◦P◦Hφ = H◦P ⇔ Hφ◦WlpP ◦H = WlpP ◦H

Refinement

Output H ⊤, xL xH, xL Input Hφ WlpP X H, X L φ(X H), X L SAS’08 – Valencia – p.32/44

slide-92
SLIDE 92

SHELL:THE MAXIMAL RELEASED INFORMATION

Consider ρ =Paritydef

= {⊤, Even, Odd, ∅}, as the information observed by the

attacker.

P = h l := l ∗ h2;

SAS’08 – Valencia – p.33/44

slide-93
SLIDE 93

SHELL:THE MAXIMAL RELEASED INFORMATION

Consider ρ =Paritydef

= {⊤, Even, Odd, ∅}, as the information observed by the

attacker.

(l ∈ Even ∨ (l ∈ Odd, h ∈ Even)) (l ∈ Odd ∧ h ∈ Odd) l := l ∗ h2;

OR

l := l ∗ h2; (l ∈ Even) (l ∈ Odd)

Let l = 3, h = 2 ∈ Even:

HParP(2, 3) = ⊤, Even = ⊤, ⊤ = HParP(⊤, 3) = HParP(H(2, 3))

SAS’08 – Valencia – p.33/44

slide-94
SLIDE 94

SHELL:THE MAXIMAL RELEASED INFORMATION

Consider ρ =Paritydef

= {⊤, Even, Odd, ∅}, as the information observed by the

attacker.

(l ∈ Even ∨ (l ∈ Odd, h ∈ Even)) (l ∈ Odd ∧ h ∈ Odd) l := l ∗ h2;

OR

l := l ∗ h2; (l ∈ Even) (l ∈ Odd)

Let l = 3, h = 2 ∈ Even:

HParP(2, 3) = ⊤, Even = ⊤, ⊤ = HParP(⊤, 3) = HParP(H(2, 3))

WE RELEASE SOMETHING ABOUT THE PRIVATE INPUT!

SAS’08 – Valencia – p.33/44

slide-95
SLIDE 95

SHELL:THE MAXIMAL RELEASED INFORMATION

Consider ρ =Paritydef

= {⊤, Even, Odd, ∅}, as the information observed by the

attacker.

(l ∈ Even ∨ (l ∈ Odd, h ∈ Even)) (l ∈ Odd ∧ h ∈ Odd) l := l ∗ h2;

OR

l := l ∗ h2; (l ∈ Even) (l ∈ Odd)

Let us compute the shell of the input domain H:

H′def = R

HPar P (H) = H ⊓ (⊤, Even ∪ Even, Odd, Odd, Odd, Odd, Even)

SAS’08 – Valencia – p.33/44

slide-96
SLIDE 96

SHELL:THE MAXIMAL RELEASED INFORMATION

Consider ρ =Paritydef

= {⊤, Even, Odd, ∅}, as the information observed by the

attacker.

(l ∈ Even ∨ (l ∈ Odd, h ∈ Even)) (l ∈ Odd ∧ h ∈ Odd) l := l ∗ h2;

OR

l := l ∗ h2; (l ∈ Even) (l ∈ Odd)

Let us compute the shell of the input domain H:

H′def = R

HPar P (H) = H ⊓ (⊤, Even ∪ Even, Odd, Odd, Odd, Odd, Even)

Hence (NB: By reduced product in H′ we have the elements Even, l) Let l = 3, h = 2 ∈ Even:

HParP(2, 3) = ⊤, Even = HParP(Even, 3) = HParP(H′(2, 3))

SAS’08 – Valencia – p.33/44

slide-97
SLIDE 97

CORE:THE MOST POWERFUL ATTACKER

P = h

while (h = 0) do (h := 0; l := 2l) endw

SAS’08 – Valencia – p.34/44

slide-98
SLIDE 98

CORE:THE MOST POWERFUL ATTACKER

((l ∈ Even, h = 0) ∨ (h = 0)) (h = 0)

while (h = 0) do (h := 0; l := 2l) endw; OR while (h = 0) do (h := 0; l := 2l) endw

(l ∈ Even) (l ∈ Odd)

Let l = 5, h = 3:

HP(3, 5) = ⊤, 10 = ⊤, ⊤ = HP(⊤, 5) = HP(H(3, 5))

SAS’08 – Valencia – p.34/44

slide-99
SLIDE 99

CORE:THE MOST POWERFUL ATTACKER

((l ∈ Even, h = 0) ∨ (h = 0)) (h = 0)

while (h = 0) do (h := 0; l := 2l) endw; OR while (h = 0) do (h := 0; l := 2l) endw

(l ∈ Even) (l ∈ Odd)

Let l = 5, h = 3:

HP(3, 5) = ⊤, 10 = ⊤, ⊤ = HP(⊤, 5) = HP(H(3, 5))

WE RELEASE SOMETHING ABOUT THE PRIVATE INPUT!

SAS’08 – Valencia – p.34/44

slide-100
SLIDE 100

CORE:THE MOST POWERFUL ATTACKER

((l ∈ Even, h = 0) ∨ (h = 0)) (h = 0)

while (h = 0) do (h := 0; l := 2l) endw; OR while (h = 0) do (h := 0; l := 2l) endw

(l ∈ Even) (l ∈ Odd)

Let us compute the core of the output domain H:

H′def = CH

P(H) =

  • ⊤, L

˛ ˛ ˛ ∀l ∈ ⊤. l ∈ L ⇔ 2l ∈ L

  • =

“ n{2}N ˛ ˛ ˛ n ∈ Odd ”

SAS’08 – Valencia – p.34/44

slide-101
SLIDE 101

CORE:THE MOST POWERFUL ATTACKER

((l ∈ Even, h = 0) ∨ (h = 0)) (h = 0)

while (h = 0) do (h := 0; l := 2l) endw; OR while (h = 0) do (h := 0; l := 2l) endw

(l ∈ Even) (l ∈ Odd)

Let us compute the core of the output domain H:

H′def = CH

P(H) =

  • ⊤, L

˛ ˛ ˛ ∀l ∈ ⊤. l ∈ L ⇔ 2l ∈ L

  • =

“ n{2}N ˛ ˛ ˛ n ∈ Odd ”

Hence Let l = 5, h = 3 ∈ Even:

H′P(3, 5) = H′(⊤, 10) = ⊤, 5{2}N = H′({5, 10}) = H′P(⊤, 5) = H′P(H(3, 5))

SAS’08 – Valencia – p.34/44

slide-102
SLIDE 102

CAN WE EXPAND AND COMPRESS

DOMAINS?

SAS’08 – Valencia – p.35/44

slide-103
SLIDE 103

THE GEOMETRY OF DOMAIN TRANSFORMERS

!

"#$%&#'()$*#+,%-+(-.(! "#$%&#'(/-&*01,,%-+(-.(!

SAS’08 – Valencia – p.36/44

slide-104
SLIDE 104

THE GEOMETRY OF DOMAIN TRANSFORMERS

DISJUNCTIVE COMPLETION

!

Refinement: Forward Completeness for disjunction

R(X ) = W Y ˛ ˛ ˛ Y ⊆ X

  • ne step

The least X = (A) : X = A ⊓ R(X ) Disjunctive Completion

∅ − + −0 0+ Z

  • Sign

❧ ❧ ❧ ✱ ✱ ✱ ✔ ✔ ✔ ❚ ❚ ❚ ✔ ✔ ✔ ❚ ❚ ❚ ✔ ✔ ✔ ❚ ❚ ❚

∅ − + −0 0+ = 0 Z

  • (Sign)

❧ ❧ ❧ ✱ ✱ ✱ ✱ ✱ ✱ ❧ ❧ ❧ ✱ ✱ ✱ ❧ ❧ ❧ ✱ ✱ ✱ ❧ ❧ ❧

SAS’08 – Valencia – p.36/44

slide-105
SLIDE 105

THE GEOMETRY OF DOMAIN TRANSFORMERS

DISJUNCTIVE COMPLETION

!

Compressor: The domain of Join-Irreducible elements of X

∅ − + −0 0+ Z

  • Sign

❧ ❧ ❧ ✱ ✱ ✱ ✔ ✔ ✔ ❚ ❚ ❚ ✔ ✔ ✔ ❚ ❚ ❚ ✔ ✔ ✔ ❚ ❚ ❚

∅ − + −0 0+ = 0 Z

  • (Sign)

❧ ❧ ❧ ✱ ✱ ✱ ✱ ✱ ✱ ❧ ❧ ❧ ✱ ✱ ✱ ❧ ❧ ❧ ✱ ✱ ✱ ❧ ❧ ❧

SAS’08 – Valencia – p.36/44

slide-106
SLIDE 106

THE GEOMETRY OF DOMAIN TRANSFORMERS

False x ∧ y x x ↔ y y {x, x ↔ y} {y, x ↔ y} y → x x → y {x, x ↔ y, y} {y, y → x} x ∨ y {x, x → y} {y → x, x → y} True

❧ ❧ ❧ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ❧ ❧ ❧ ❧ ✱ ✱ ✱ ✱ ❧ ❧ ❧ ❧ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ❧ ❧ ❧ ❧ ❧ ❧ ❧ ✱ ✱ ✱ ✱ ❧ ❧ ❧ ❧

SAS’08 – Valencia – p.36/44

slide-107
SLIDE 107

THE GEOMETRY OF DOMAIN TRANSFORMERS

False x ∧ y x x ↔ y y {x, x ↔ y} {y, x ↔ y} y → x x → y {x, x ↔ y, y} {y, y → x} x ∨ y {x, x → y} {y → x, x → y} True

❧ ❧ ❧ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ❧ ❧ ❧ ❧ ✱ ✱ ✱ ✱ ❧ ❧ ❧ ❧ ✱ ✱ ✱ ✱ ✱ ✱ ✱ ❧ ❧ ❧ ❧ ❧ ❧ ❧ ✱ ✱ ✱ ✱ ❧ ❧ ❧ ❧

SAS’08 – Valencia – p.36/44

slide-108
SLIDE 108

THE EXPANDER IN ANI

Let l := 2h and E(X ) =

Y ˛ ˛ ˛ C(X ) = C(Y )

  • .

!

The most powerful harmless attacker for P is: H′ = ({Even, {1}, {3}, . . .})

!

Suppose the initial observer is ρ = {⊤, Even {0}, {0}, Odd, ∅}, then the most powerful harmless attacker more abstract than ρ is Par = H′ ⊔ ρ.

!

The expander provides the most powerful attacker such that the harmless simplification is Par: ({Odd, {0}, {2}, {4}, . . .});

!

WE OBTAIN THE MOST POWERFUL MALICIOUS ATTACKER, I.E., THE ONE

THAT IS ABLE TO EXPLOIT AS MUCH AS POSSIBLE THE FAILURE OF NON-INTERFERENCE!

!

Any more abstract (less powerful) attacker has to confuse some even inputs, for instance if it confuses l = 0 with l = 2 then it can not distinguish when h = 0 and h = 1.

SAS’08 – Valencia – p.37/44

slide-109
SLIDE 109

THE COMPRESSOR IN ANI

Let if h = 0 then l := 0 else l := |l|(h/|h|) and E(X ) = F

Y ˛ ˛ ˛ R(X ) = R(Y )

  • .

!

Suppose we let to flow φ = {⊤, ≥ 0, < 0, ∅};

!

The maximal information released by P, is the shell of φ:

φ ′ = {⊤, ≥ 0, = 0, ≤ 0, < 0, > 0, 0, ∅}

!

THE COMPRESSOR PROVIDES THE MOST ABSTRACT DECLASSIFICATION

POLICY WHICH CANNOT CAPTURE WHAT IS RELEASED BY AN ATTACKER

!

The compressor is λX . ⊤

!

This means that each policy between φ ′ and λX . ⊤ is not able to protect the program.

SAS’08 – Valencia – p.38/44

slide-110
SLIDE 110

THE COMPRESSOR IN ANI

Let if h = 0 then l := 0 else l := |l|(h/|h|) and E(X ) = F

Y ˛ ˛ ˛ R(X ) = R(Y )

  • .

!

Suppose we let to flow φ = {⊤, ≥ 0, < 0, ∅};

!

The maximal information released by P, is the shell of φ:

φ ′ = {⊤, ≥ 0, = 0, ≤ 0, < 0, > 0, 0, ∅}

!

THE COMPRESSOR PROVIDES THE MOST ABSTRACT DECLASSIFICATION

POLICY WHICH CANNOT CAPTURE WHAT IS RELEASED BY AN ATTACKER

λX.⊤

φ′

!"#$%&'$()*+,%- .*"%'$/$

SAS’08 – Valencia – p.38/44

slide-111
SLIDE 111

CAN WE MAKE COMPLETENESS BY

TRANSFORMING SEMANTICS?

SAS’08 – Valencia – p.39/44

slide-112
SLIDE 112

THE GEOMETRY OF SEMANTICS TRANSFORMERS

MAKING SEMANTICS COMPLETE (FROM ABOVE AND BELOW):

F↑

η,ρ(f ) = {h : C −→C | f ⊑ h, ρ ◦ h ◦ η = h ◦ η}

F↓

η,ρ(f ) = F{h : C −→C | f ⊒ h, ρ ◦ h ◦ η = h ◦ η}

F↑

η,ρ(f ) and F↓ η,ρ(f ) are (Forward) complete

MAKING SEMANTICS MAXIMALLY IN-COMPLETE (FROM ABOVE AND BELOW):

O↑

η,ρ(f ) = F{g : C −→C | F↓ η,ρ(g) = F↓ η,ρ(f )}

O↓

η,ρ(f ) = {g : C −→C | F↑ η,ρ(g) = F↑ η,ρ(f )}

O↑

η,ρ(f ) and O↓ η,ρ(f ) are generally in-complete

SAS’08 – Valencia – p.40/44

slide-113
SLIDE 113

THE GEOMETRY OF SEMANTICS TRANSFORMERS

+ + +

  • F↑

F↓

O↓ O↑

Minimal complete transformation from above Minimal complete transformation from below Maximal incomplete transformation from below Maximal incomplete transformation from above

(F↑)+ = F↓

and

(F↑)− = O↓

SAS’08 – Valencia – p.40/44

slide-114
SLIDE 114

THE GEOMETRY OF SEMANTICS TRANSFORMERS

! "

⊤ ⊤ ⊥

ρ η

"#

Making FORWARD COMPLETENESS: Transforming the semantics upwards

F↑

η,ρ = λf .λx.

  • ρ ◦ f (x)

if x ∈ η(C)

f (x)

  • therwise

SAS’08 – Valencia – p.40/44

slide-115
SLIDE 115

THE GEOMETRY OF SEMANTICS TRANSFORMERS

! "

⊤ ⊤ ⊥

ρ η

"# ρ+f(x) =

  • {ρ(y) | ρ(y) ≤ f(x)}

Making FORWARD COMPLETENESS: Transforming the semantics downwards

F↓

η,ρ = λf .λx.

  • ρ+ ◦ f (x)

if x ∈ η(C)

f (x)

  • therwise

SAS’08 – Valencia – p.40/44

slide-116
SLIDE 116

THE GEOMETRY OF SEMANTICS TRANSFORMERS

! "

⊤ ⊤ ⊥

ρ η

"# ρ++f(x) =

  • {y | ρ+(y) = ρf(x)}

Making FORWARD IN-COMPLETENESS: Transforming the semantics upwards

O↑

η,ρ(f )(x) =

  • (ρ+)+(f (x)) = W

y ˛ ˛ ˛ ρ+(y) = ρ+(f (x))

  • if x ∈ η

f (x)

  • therwise

SAS’08 – Valencia – p.40/44

slide-117
SLIDE 117

THE GEOMETRY OF SEMANTICS TRANSFORMERS

! "

⊤ ⊤ ⊥

ρ η

"# ρ−f(x)

Making FORWARD IN-COMPLETENESS: Transforming the semantics downwards

O↓

η,ρ(f )(x) =

  • ρ−(f (x)) = V

y ˛ ˛ ˛ ρ(y) = ρ(f (x))

  • if x ∈ η

f (x)

  • therwise

SAS’08 – Valencia – p.40/44

slide-118
SLIDE 118

MAKING SEMANTICS COMPLETE: AN EXAMPLE

while (h > 0) do (h := h − 1; l := h) endw

SAS’08 – Valencia – p.41/44

slide-119
SLIDE 119

MAKING SEMANTICS COMPLETE: AN EXAMPLE

(h > 0) ∨ (l = 0)

while (h > 0) do (h := h − 1; l := h) endw;

(l = 0)

OR

(h = 0)

while (h > 0) do (h := h − 1; l := h) endw

(l = 0)

Let l = 5, h1 = 3, h2 = 0:

HP(3, 5) = ⊤, 0 = ⊤, 5 = HP(0, 5)

SAS’08 – Valencia – p.41/44

slide-120
SLIDE 120

MAKING SEMANTICS COMPLETE: AN EXAMPLE

(h ≥ 0)

while (h > 0) do (h := h − 1; l := h) endw;

(l = 0)

OR

(h = 0)

while (h > 0) do (h := h − 1; l := h) endw

(l = 0)

Let l = 5, h1 = 3, h2 = 0:

HP(3, 5) = ⊤, 0 = ⊤, 5 = HP(0, 5)

WE RELEASE SOMETHING (THE EQUALITY WITH 0) ABOUT THE PRIVATE INPUT!

SAS’08 – Valencia – p.41/44

slide-121
SLIDE 121

MAKING SEMANTICS COMPLETE: AN EXAMPLE

(h ≥ 0)

while (h > 0) do (h := h − 1; l := h) endw;

(l = 0)

OR

(h = 0)

while (h > 0) do (h := h − 1; l := h) endw

(l = 0)

The upward transformation inducing completeness of WlpP is:

F↑(WlpP) : {l = 0 → h ∈ Z and l = 0 → h ∈ Z}

SAS’08 – Valencia – p.41/44

slide-122
SLIDE 122

MAKING SEMANTICS COMPLETE: AN EXAMPLE

(h ≥ 0)

while (h > 0) do (h := h − 1; l := h) endw;

(l = 0)

OR

(h = 0)

while (h > 0) do (h := h − 1; l := h) endw

(l = 0)

The upward transformation inducing completeness of WlpP is:

F↑(WlpP) : {l = 0 → h ∈ Z and l = 0 → h ∈ Z}

This is, for example, the semantics of the program

Q : l1 := l; P; l := l1

SAS’08 – Valencia – p.41/44

slide-123
SLIDE 123

DISCUSSION

!

Encoding AI problems as completeness problems:

!

Systematic transformations for optimal models

!

Better understanding of the limits of abstractions

!

Adequacy of the theory

!

Abstract interpretation is perfectly adequate to reason about itself

!

A calculational design of domain and code transformations can be done in abstract interpretation

!

Completeness is a driving force for understanding domain and code transformers

!

From semantics transformers to code transformations (and deformations) by AI [Cousot & Cousot ’02]

SAS’08 – Valencia – p.42/44

slide-124
SLIDE 124

FUTURE DIRECTIONS

!

Code obfuscation and sw watermarking

!

Completeness corresponds to maximal precision

!

Obfuscating P corresponds to make P maximally incomplete against a given attack (O?)

!

Watermarks and fingerprints can be hidden in completeness holes

!

Language-based security

!

F provides code protection against information release!

!

Can we design a monitor M such that F(P) = M ; P?

!

Models for active attackers as code transformations (code deformations)... and the corresponding completeness problem?

!

Abstract Model Checking

!

Isolate temporal sub-logics which are complete for a given abstract system to analyse.

SAS’08 – Valencia – p.43/44

slide-125
SLIDE 125

MANY THANKS!!

SAS’08 – Valencia – p.44/44