robust is the new black - stanford cs...

89
Robust is the New Black new criteria for secure compilation Marco Patrignani th December

Upload: others

Post on 23-Jan-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust is the New Black

new criteria for secure compilation

Marco Patrignani11th December 2017

1

Page 2: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Special Thanks to:

2

Page 3: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Contents

Robust Compilation Lattice

Robustly-Safe Compilation

3

Page 4: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Background

Fully abstract compilation (FAC)de-facto standard for compiler

security

preservation (and reflection) ofcontextual equivalence

reduces target attackers to source

ones

4

Page 5: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Background

Fully abstract compilation (FAC)de-facto standard for compiler

security

preservation (and reflection) ofcontextual equivalence

reduces target attackers to source

ones

4

Page 6: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Background

Fully abstract compilation (FAC)de-facto standard for compiler

securitypreservation (and reflection) of

contextual equivalence

reduces target attackers to source

ones

4

Page 7: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Background

Fully abstract compilation (FAC)de-facto standard for compiler

securitypreservation (and reflection) of

contextual equivalencereduces target attackers to source

ones

4

Page 8: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Shortcomings for FAC

• inefficient code (memory consumption andruntime checks)

• poor support for multithreaded programs• complex proofs

5

Page 9: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Shortcomings for FAC

• inefficient code (memory consumption andruntime checks)

• poor support for multithreaded programs• complex proofs

5

Page 10: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Shortcomings for FAC

• inefficient code (memory consumption andruntime checks)

• poor support for multithreaded programs

• complex proofs

5

Page 11: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Shortcomings for FAC

• inefficient code (memory consumption andruntime checks)

• poor support for multithreaded programs• complex proofs

5

Page 12: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

What do we Want?

• security-aware criteria• efficient compiled code• more manageable proofs

6

Page 13: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice

Page 14: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice (RCL)

• based on hyperproperties (HP)

• capture all security properties• are organised in subclasses for expressiveness

• higher notions are stronger• and trickier to achieve

• each notion comes in two flavours• one with clear HP correspondence• one for simpler proofs

7

Page 15: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice (RCL)

• based on hyperproperties (HP)• capture all security properties• are organised in subclasses for expressiveness

• higher notions are stronger• and trickier to achieve

• each notion comes in two flavours• one with clear HP correspondence• one for simpler proofs

7

Page 16: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice (RCL)

• based on hyperproperties (HP)• capture all security properties• are organised in subclasses for expressiveness

• higher notions are stronger• and trickier to achieve

• each notion comes in two flavours• one with clear HP correspondence• one for simpler proofs

7

Page 17: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice (RCL)

• based on hyperproperties (HP)• capture all security properties• are organised in subclasses for expressiveness

• higher notions are stronger

• and trickier to achieve• each notion comes in two flavours

• one with clear HP correspondence• one for simpler proofs

7

Page 18: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice (RCL)

• based on hyperproperties (HP)• capture all security properties• are organised in subclasses for expressiveness

• higher notions are stronger• and trickier to achieve

• each notion comes in two flavours• one with clear HP correspondence• one for simpler proofs

7

Page 19: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice (RCL)

• based on hyperproperties (HP)• capture all security properties• are organised in subclasses for expressiveness

• higher notions are stronger• and trickier to achieve

• each notion comes in two flavours

• one with clear HP correspondence• one for simpler proofs

7

Page 20: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice (RCL)

• based on hyperproperties (HP)• capture all security properties• are organised in subclasses for expressiveness

• higher notions are stronger• and trickier to achieve

• each notion comes in two flavours• one with clear HP correspondence• one for simpler proofs

7

Page 21: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Notation

• C,C: components of S and T

• C⋅,C⋅: contexts• C [C] ,C [C]: whole programs• J⋅KST ∶ C→C : compiler from S to T

• β, β: traces (possibly infinite), I/O with anenvironment

• Behav (P): set of traces of P• π,π: prefix (finite)• ≺ : prefixing• ≈ ∶ sth × sth : cross-language relation

8

Page 22: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice

Robust Hyperproperty Preservation

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

Robust Property Preservation

Robust Safety Preservation 9

Page 23: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Hyperproperty Preservation

Definition (RHP)

J⋅KST ∈ RHPdef= ∀C,H,H.

if (∀C.Behav (C [C]) ∈ H)

and H≈H H

then (∀C.Behav (C [JCKST]) ∈ H)

10

Page 24: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Hyperproperty Preservation

Definition (RHP)

J⋅KST ∈ RHPdef= ∀C,H,H.

if (∀C.Behav (C [C]) ∈ H)

and H≈H H

then (∀C.Behav (C [JCKST]) ∈ H)

10

Page 25: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Hyperproperty Preservation

Definition (RHP)

J⋅KST ∈ RHPdef= ∀C,H,H.

if (∀C.Behav (C [C]) ∈ H)

and H≈H H

then (∀C.Behav (C [JCKST]) ∈ H)

10

Page 26: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Hyperproperty Robust Compilation

Definition (HRC)

J⋅KST ∈ HRCdef= ∀C,C.∃C.∀β, β.β ≈β β

β ∈ Behav (C [JCKST])

⇐⇒ β ∈ Behav (C [C])

11

Page 27: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Hyperproperty Robust Compilation

Definition (HRC)

J⋅KST ∈ HRCdef= ∀C,C.∃C.∀β, β.β ≈β β

β ∈ Behav (C [JCKST])

⇐⇒ β ∈ Behav (C [C])

11

Page 28: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Hyperproperty Robust Compilation

Definition (HRC)

J⋅KST ∈ HRCdef= ∀C,C.∃C.∀β, β.β ≈β β

β ∈ Behav (C [JCKST])

⇐⇒ β ∈ Behav (C [C])

11

Page 29: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice

Robust Hyperproperty Preservation

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

Robust Property Preservation

Robust Safety Preservation 12

Page 30: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice

RHP = HRC (Theorem, Coq’d)

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

Robust Property Preservation

Robust Safety Preservation 12

Page 31: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

RPP: Robust Property Preservation

Definition (RPP)

J⋅KST ∈ RPPdef= ∀C,P,P.

if (∀C.Behav (C [C]) ⊆ P)

and P≈H P

then (∀C.Behav (C [JCKST]) ⊆ P)

13

Page 32: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

RC: Robust Compilation

Definition (RC)

J⋅KST ∈ RCdef= ∀C,C, β.∃C, β.β ≈β β

if β ∈ Behav (C [JCKST])

then β ∈ Behav (C [C])

14

Page 33: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

RC: Robust Compilation

Definition (RC)

J⋅KST ∈ RCdef= ∀C,C, β.∃C, β.β ≈β β

if β ∈ Behav (C [JCKST])

then β ∈ Behav (C [C])

14

Page 34: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

RC: Robust Compilation

Definition (RC)

J⋅KST ∈ RCdef= ∀C,C, β.∃C, β.β ≈β β

if β ∈ Behav (C [JCKST])

then β ∈ Behav (C [C])

14

Page 35: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice

RHP = HRC (Theorem, Coq’d)

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

Robust Property Preservation

Robust Safety Preservation 15

Page 36: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice

RHP = HRC (Theorem, Coq’d)

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

RPP = RC (Theorem, Coq’d)

Robust Safety Preservation 15

Page 37: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Safety Property Preservation

Definition (RSPP)

J⋅KST ∈ RSPPdef= ∀C,P ∈ SP,P ∈ SP.

if (∀C.Behav (C [C]) ⊆ P)

and P≈H P

then (∀C.Behav (C [JCKST]) ⊆ P)

16

Page 38: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Safety Compilation

Definition (SRC)

J⋅KST ∈ RCdef= ∀C,C, π.∃C, π.π ≈β π

if π ≺Behav (C [JCKST])

then π ≺Behav (C [C])

17

Page 39: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice

RHP = HRC (Theorem, Coq’d)

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

RPP = RC (Theorem, Coq’d)

Robust Safety Preservation 18

Page 40: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Compilation Lattice

RHP = HRC (Theorem, Coq’d)

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

RPP = RC (Theorem, Coq’d)

RSPP = SRC (Theorem, Coq’d) 18

Page 41: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Proof Techniques

Robust Hyperproperty Preservation

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

Robust Property Preservation

Robust Safety Preservation

19

Page 42: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Proof Techniques

Robust Hyperproperty Preservation

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

Robust Property Preservation

Robust Safety Preservation 19

Page 43: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Proof Techniques

Robust Hyperproperty Preservation

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

Robust Property Preservation

Robust Safety Preservation 19

Page 44: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Proof Techniques

Robust Hyperproperty Preservation

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

Robust Property Preservation

Robust Safety Preservation 19

Page 45: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Where is Fully Abstract Compilation?

Robust Hyperproperty Preservation

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

Robust Property Preservation

Robust Safety Preservation

?

?

?

RSC is very interesting

20

Page 46: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Where is Fully Abstract Compilation?

Robust Hyperproperty Preservation

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

Robust Property Preservation

Robust Safety Preservation

?

?

?

RSC is very interesting

20

Page 47: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Where is Fully Abstract Compilation?

Robust Hyperproperty Preservation

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

Robust Property Preservation

Robust Safety Preservation

?

?

?

RSC is very interesting

20

Page 48: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Where is Fully Abstract Compilation?

Robust Hyperproperty Preservation

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

Robust Property Preservation

Robust Safety Preservation

?

?

?

RSC is very interesting

20

Page 49: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Where is Fully Abstract Compilation?

Robust Hyperproperty Preservation

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

Robust Property Preservation

Robust Safety Preservation

?

?

?

RSC is very interesting

20

Page 50: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Where is Fully Abstract Compilation?

Robust Hyperproperty Preservation

Robust Subset-ClosedHyperproperty Preservation

Robust HypersafetyPreservation

Robust K-HypersafetyPreservation

Robust 2-HypersafetyPreservation

Robust K-Subset-ClosedHyperproperty Preservation

Robust 2-Subset-ClosedHyperproperty Preservation

Robust Property Preservation

Robust Safety Preservation

?

?

?

RSC is very interesting

20

Page 51: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robustly-Safe Compilation

Page 52: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Why RSC?

• integrity• weak secrecy• taint tracking (approx non-interference)

21

Page 53: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Why RSC?

• integrity• weak secrecy• taint tracking

(approx non-interference)

21

Page 54: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Why RSC?

• integrity• weak secrecy• taint tracking (approx non-interference)

21

Page 55: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Safety how?

• Monitors M, M enforce safety

• Equivalent to classic assume/assert

• Capture untrusted code scenario• Check heap conditions

(Abstract-monitor)

M = (s ,, s0 , l , sc) sc,H ∣l sf

M ′= (s ,, s0 , l , sf )

M ,H ▷monitor Ð→ M ′,H ▷ skip

(Abstract-monitor-fail)

M = (s ,, s0 , l , sc) sc,H ∣l/ _

M ,H ▷monitor Ð→ fail

22

Page 56: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Safety how?

• Monitors M, M enforce safety• Equivalent to classic assume/assert

• Capture untrusted code scenario• Check heap conditions

(Abstract-monitor)

M = (s ,, s0 , l , sc) sc,H ∣l sf

M ′= (s ,, s0 , l , sf )

M ,H ▷monitor Ð→ M ′,H ▷ skip

(Abstract-monitor-fail)

M = (s ,, s0 , l , sc) sc,H ∣l/ _

M ,H ▷monitor Ð→ fail

22

Page 57: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Safety how?

• Monitors M, M enforce safety• Equivalent to classic assume/assert

• Capture untrusted code scenario

• Check heap conditions

(Abstract-monitor)

M = (s ,, s0 , l , sc) sc,H ∣l sf

M ′= (s ,, s0 , l , sf )

M ,H ▷monitor Ð→ M ′,H ▷ skip

(Abstract-monitor-fail)

M = (s ,, s0 , l , sc) sc,H ∣l/ _

M ,H ▷monitor Ð→ fail

22

Page 58: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Safety how?

• Monitors M, M enforce safety• Equivalent to classic assume/assert

• Capture untrusted code scenario• Check heap conditions

(Abstract-monitor)

M = (s ,, s0 , l , sc) sc,H ∣l sf

M ′= (s ,, s0 , l , sf )

M ,H ▷monitor Ð→ M ′,H ▷ skip

(Abstract-monitor-fail)

M = (s ,, s0 , l , sc) sc,H ∣l/ _

M ,H ▷monitor Ð→ fail

22

Page 59: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Safety how?

• Monitors M, M enforce safety• Equivalent to classic assume/assert

• Capture untrusted code scenario• Check heap conditions

(Abstract-monitor)

M = (s ,, s0 , l , sc) sc,H ∣l sf

M ′= (s ,, s0 , l , sf )

M ,H ▷monitor Ð→ M ′,H ▷ skip

(Abstract-monitor-fail)

M = (s ,, s0 , l , sc) sc,H ∣l/ _

M ,H ▷monitor Ð→ fail

22

Page 60: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Safety how?

• Monitors M, M enforce safety• Equivalent to classic assume/assert

• Capture untrusted code scenario• Check heap conditions

(Abstract-monitor)

M = (s ,, s0 , l , sc) sc,H ∣l sf

M ′= (s ,, s0 , l , sf )

M ,H ▷monitor Ð→ M ′,H ▷ skip

(Abstract-monitor-fail)

M = (s ,, s0 , l , sc) sc,H ∣l/ _

M ,H ▷monitor Ð→ fail

22

Page 61: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Safety

⊢ C,M ∶ safedef= if ⊢ C ∶ whole

then C0 ,M /→∗ fail

⊢ A ∶ attackerdef= no monitor inside A

⊢ C,M ∶ rsdef= if ⊢ A ∶ attacker

then ⊢ A [C] ,M ∶ safe

Definition (RSC)

⊢ J⋅KST ∶ SRCdef= if M≈M

and ⊢ C,M ∶ rs

then ⊢ JCKST,M ∶ rs

23

Page 62: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Robust Safety

⊢ C,M ∶ safedef= if ⊢ C ∶ whole

then C0 ,M /→∗ fail

⊢ A ∶ attackerdef= no monitor inside A

⊢ C,M ∶ rsdef= if ⊢ A ∶ attacker

then ⊢ A [C] ,M ∶ safe

Definition (RSC)

⊢ J⋅KST ∶ SRCdef= if M≈M

and ⊢ C,M ∶ rs

then ⊢ JCKST,M ∶ rs

23

Page 63: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Languages

• S and T are while languages

• both are untyped• both have M, M and monitor instructions• S has an abstract heap

(E-s-alloc)

H▷ e → v ` ∉ dom (H)

C,H▷ let x = new e in sεÐ→ C,H; `↦ v▷ s[`/x]

• T has a concrete heap, abstractcapabilities (capabilities / sealing / PMA)

(E-t-new)

H = H1;n↦ (v, η) H▷ e → vH′ = H;n + 1↦ v ∶

C,H▷ let x = new e in sεÐ→ C,H′▷ s[n + 1/x]

(E-t-hide)

H▷ e → n k ∉ dom (H)

H = H1;n↦ v ∶ ;H2

H′ = H1;n↦ v ∶ k;H2;k

C,H▷ let x = hide e in sεÐ→ C,H′▷ s[k/x]

• !e with e x ∶= e with e

24

Page 64: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Languages

• S and T are while languages• both are untyped

• both have M, M and monitor instructions• S has an abstract heap

(E-s-alloc)

H▷ e → v ` ∉ dom (H)

C,H▷ let x = new e in sεÐ→ C,H; `↦ v▷ s[`/x]

• T has a concrete heap, abstractcapabilities (capabilities / sealing / PMA)

(E-t-new)

H = H1;n↦ (v, η) H▷ e → vH′ = H;n + 1↦ v ∶

C,H▷ let x = new e in sεÐ→ C,H′▷ s[n + 1/x]

(E-t-hide)

H▷ e → n k ∉ dom (H)

H = H1;n↦ v ∶ ;H2

H′ = H1;n↦ v ∶ k;H2;k

C,H▷ let x = hide e in sεÐ→ C,H′▷ s[k/x]

• !e with e x ∶= e with e

24

Page 65: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Languages

• S and T are while languages• both are untyped• both have M, M and monitor instructions

• S has an abstract heap

(E-s-alloc)

H▷ e → v ` ∉ dom (H)

C,H▷ let x = new e in sεÐ→ C,H; `↦ v▷ s[`/x]

• T has a concrete heap, abstractcapabilities (capabilities / sealing / PMA)

(E-t-new)

H = H1;n↦ (v, η) H▷ e → vH′ = H;n + 1↦ v ∶

C,H▷ let x = new e in sεÐ→ C,H′▷ s[n + 1/x]

(E-t-hide)

H▷ e → n k ∉ dom (H)

H = H1;n↦ v ∶ ;H2

H′ = H1;n↦ v ∶ k;H2;k

C,H▷ let x = hide e in sεÐ→ C,H′▷ s[k/x]

• !e with e x ∶= e with e

24

Page 66: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Languages

• S and T are while languages• both are untyped• both have M, M and monitor instructions• S has an abstract heap

(E-s-alloc)

H▷ e → v ` ∉ dom (H)

C,H▷ let x = new e in sεÐ→ C,H; `↦ v▷ s[`/x]• T has a concrete heap, abstract

capabilities (capabilities / sealing / PMA)

(E-t-new)

H = H1;n↦ (v, η) H▷ e → vH′ = H;n + 1↦ v ∶

C,H▷ let x = new e in sεÐ→ C,H′▷ s[n + 1/x]

(E-t-hide)

H▷ e → n k ∉ dom (H)

H = H1;n↦ v ∶ ;H2

H′ = H1;n↦ v ∶ k;H2;k

C,H▷ let x = hide e in sεÐ→ C,H′▷ s[k/x]

• !e with e x ∶= e with e

24

Page 67: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Languages

• S and T are while languages• both are untyped• both have M, M and monitor instructions• S has an abstract heap

(E-s-alloc)

H▷ e → v ` ∉ dom (H)

C,H▷ let x = new e in sεÐ→ C,H; `↦ v▷ s[`/x]

• T has a concrete heap, abstractcapabilities (capabilities / sealing / PMA)

(E-t-new)

H = H1;n↦ (v, η) H▷ e → vH′ = H;n + 1↦ v ∶

C,H▷ let x = new e in sεÐ→ C,H′▷ s[n + 1/x]

(E-t-hide)

H▷ e → n k ∉ dom (H)

H = H1;n↦ v ∶ ;H2

H′ = H1;n↦ v ∶ k;H2;k

C,H▷ let x = hide e in sεÐ→ C,H′▷ s[k/x]

• !e with e x ∶= e with e

24

Page 68: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Languages

• S and T are while languages• both are untyped• both have M, M and monitor instructions• S has an abstract heap

(E-s-alloc)

H▷ e → v ` ∉ dom (H)

C,H▷ let x = new e in sεÐ→ C,H; `↦ v▷ s[`/x]

• T has a concrete heap, abstractcapabilities (capabilities / sealing / PMA)

(E-t-new)

H = H1;n↦ (v, η) H▷ e → vH′ = H;n + 1↦ v ∶

C,H▷ let x = new e in sεÐ→ C,H′▷ s[n + 1/x]

(E-t-hide)

H▷ e → n k ∉ dom (H)

H = H1;n↦ v ∶ ;H2

H′ = H1;n↦ v ∶ k;H2;k

C,H▷ let x = hide e in sεÐ→ C,H′▷ s[k/x]

• !e with e x ∶= e with e

24

Page 69: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Languages

• S and T are while languages• both are untyped• both have M, M and monitor instructions• S has an abstract heap

(E-s-alloc)

H▷ e → v ` ∉ dom (H)

C,H▷ let x = new e in sεÐ→ C,H; `↦ v▷ s[`/x]

• T has a concrete heap, abstractcapabilities (capabilities / sealing / PMA)

(E-t-new)

H = H1;n↦ (v, η) H▷ e → vH′ = H;n + 1↦ v ∶

C,H▷ let x = new e in sεÐ→ C,H′▷ s[n + 1/x]

(E-t-hide)

H▷ e → n k ∉ dom (H)

H = H1;n↦ v ∶ ;H2

H′ = H1;n↦ v ∶ k;H2;k

C,H▷ let x = hide e in sεÐ→ C,H′▷ s[k/x]

• !e with e x ∶= e with e

24

Page 70: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Languages

• S and T are while languages• both are untyped• both have M, M and monitor instructions• S has an abstract heap

(E-s-alloc)

H▷ e → v ` ∉ dom (H)

C,H▷ let x = new e in sεÐ→ C,H; `↦ v▷ s[`/x]

• T has a concrete heap, abstractcapabilities (capabilities / sealing / PMA)

(E-t-new)

H = H1;n↦ (v, η) H▷ e → vH′ = H;n + 1↦ v ∶

C,H▷ let x = new e in sεÐ→ C,H′▷ s[n + 1/x]

(E-t-hide)

H▷ e → n k ∉ dom (H)

H = H1;n↦ v ∶ ;H2

H′ = H1;n↦ v ∶ k;H2;k

C,H▷ let x = hide e in sεÐ→ C,H′▷ s[k/x]

• !e with e x ∶= e with e

24

Page 71: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Languages

• S and T are while languages• both are untyped• both have M, M and monitor instructions• S has an abstract heap

(E-s-alloc)

H▷ e → v ` ∉ dom (H)

C,H▷ let x = new e in sεÐ→ C,H; `↦ v▷ s[`/x]

• T has a concrete heap, abstractcapabilities (capabilities / sealing / PMA)

(E-t-new)

H = H1;n↦ (v, η) H▷ e → vH′ = H;n + 1↦ v ∶

C,H▷ let x = new e in sεÐ→ C,H′▷ s[n + 1/x]

(E-t-hide)

H▷ e → n k ∉ dom (H)

H = H1;n↦ v ∶ ;H2

H′ = H1;n↦ v ∶ k;H2;k

C,H▷ let x = hide e in sεÐ→ C,H′▷ s[k/x]

• !e with e x ∶= e with e 24

Page 72: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Compiler

• identity except for

tlet x = new e

in s

|S

T

= let xloc = new JeKST in

let xcap = hide xloc in

let x = ⟨xloc,xcap⟩ in JsKST

25

Page 73: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Proof Sketch

• if M,∅▷A [C]αÔ⇒ M′,H▷A [monitor] then

M′,H▷A [monitor]εÐ→ M′,H▷A [skip]

• M,∅▷A [JCKST]αÔ⇒M′,H▷A [monitor]

and we need to prove that

• M′,H▷A [monitor]εÐ→M′,H▷A [skip]

⟨⟨⋅⟩⟩ takes α and returns A

Plus:• no need of injective relation• no need of FA traces

Minus:• complex because of finegranularity

• still requires backtranslation

26

Page 74: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Proof Sketch

• if M,∅▷A [C]αÔ⇒ M′,H▷A [monitor] then

M′,H▷A [monitor]εÐ→ M′,H▷A [skip]

• M,∅▷A [JCKST]αÔ⇒M′,H▷A [monitor]

and we need to prove that

• M′,H▷A [monitor]εÐ→M′,H▷A [skip]

⟨⟨⋅⟩⟩ takes α and returns A

Plus:• no need of injective relation• no need of FA traces

Minus:• complex because of finegranularity

• still requires backtranslation

26

Page 75: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Proof Sketch

• if M,∅▷A [C]αÔ⇒ M′,H▷A [monitor] then

M′,H▷A [monitor]εÐ→ M′,H▷A [skip]

• M,∅▷A [JCKST]αÔ⇒M′,H▷A [monitor]

and we need to prove that

• M′,H▷A [monitor]εÐ→M′,H▷A [skip]

⟨⟨⋅⟩⟩ takes α and returns A

Plus:• no need of injective relation• no need of FA traces

Minus:• complex because of finegranularity

• still requires backtranslation

26

Page 76: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Proof Sketch

• if M,∅▷A [C]αÔ⇒ M′,H▷A [monitor] then

M′,H▷A [monitor]εÐ→ M′,H▷A [skip]

• M,∅▷A [JCKST]αÔ⇒M′,H▷A [monitor]

and we need to prove that

• M′,H▷A [monitor]εÐ→M′,H▷A [skip]

⟨⟨⋅⟩⟩ takes α and returns A

Plus:• no need of injective relation• no need of FA traces

Minus:• complex because of finegranularity

• still requires backtranslation

26

Page 77: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Extension

• Extend S with a RS type system

• We can statically know which locations themonitor observes (type τ ≠ UN) highlocations

• J⋅KST protects only high locations (efficient!)

27

Page 78: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Extension

• Extend S with a RS type system• We can statically know which locations themonitor observes (type τ ≠ UN)

highlocations

• J⋅KST protects only high locations (efficient!)

27

Page 79: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Extension

• Extend S with a RS type system• We can statically know which locations themonitor observes (type τ ≠ UN) highlocations

• J⋅KST protects only high locations (efficient!)

27

Page 80: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Extension

• Extend S with a RS type system• We can statically know which locations themonitor observes (type τ ≠ UN) highlocations

• J⋅KST protects only high locations

(efficient!)

27

Page 81: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Extension

• Extend S with a RS type system• We can statically know which locations themonitor observes (type τ ≠ UN) highlocations

• J⋅KST protects only high locations (efficient!)

27

Page 82: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Cross-language Bisimulation Ω≋Ω

`1 ↦ v1 ∶ τ1

`2 ↦ v2 ∶ τ2

`3 ↦ v3 ∶ τ3

`4 ↦ v4 ∶ τ4

`5 ↦ v5 ∶ τ5

`6 ↦ v6 ∶ τ6

S

n1 ↦ v1 ∶ k1

n2 ↦ v2 ∶ k2

n3 ↦ v3 ∶ k3

n4 ↦ v4 ∶

n5 ↦ v5 ∶ k5

n6 ↦ v6 ∶

k1

k2

k3

k5

T

high low

high low

τ ≠ UN

≈≈

Plus:• no need of injective relation• no need of any traces• no need of backtranslation• fairly simple• scales to multithreadedlanguages!

28

Page 83: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Cross-language Bisimulation Ω≋Ω

`1 ↦ v1 ∶ τ1

`2 ↦ v2 ∶ τ2

`3 ↦ v3 ∶ τ3

`4 ↦ v4 ∶ τ4

`5 ↦ v5 ∶ τ5

`6 ↦ v6 ∶ τ6

S

n1 ↦ v1 ∶ k1

n2 ↦ v2 ∶ k2

n3 ↦ v3 ∶ k3

n4 ↦ v4 ∶

n5 ↦ v5 ∶ k5

n6 ↦ v6 ∶

k1

k2

k3

k5

T

high low

high low

τ ≠ UN

≈≈

Plus:• no need of injective relation• no need of any traces• no need of backtranslation• fairly simple• scales to multithreadedlanguages!

28

Page 84: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Cross-language Bisimulation Ω≋Ω

`1 ↦ v1 ∶ τ1

`2 ↦ v2 ∶ τ2

`3 ↦ v3 ∶ τ3

`4 ↦ v4 ∶ τ4

`5 ↦ v5 ∶ τ5

`6 ↦ v6 ∶ τ6

S

n1 ↦ v1 ∶ k1

n2 ↦ v2 ∶ k2

n3 ↦ v3 ∶ k3

n4 ↦ v4 ∶

n5 ↦ v5 ∶ k5

n6 ↦ v6 ∶

k1

k2

k3

k5

T

high low

high low

τ ≠ UN

≈≈

Plus:• no need of injective relation• no need of any traces• no need of backtranslation• fairly simple• scales to multithreadedlanguages!

28

Page 85: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Cross-language Bisimulation Ω≋Ω

`1 ↦ v1 ∶ τ1

`2 ↦ v2 ∶ τ2

`3 ↦ v3 ∶ τ3

`4 ↦ v4 ∶ τ4

`5 ↦ v5 ∶ τ5

`6 ↦ v6 ∶ τ6

S

n1 ↦ v1 ∶ k1

n2 ↦ v2 ∶ k2

n3 ↦ v3 ∶ k3

n4 ↦ v4 ∶

n5 ↦ v5 ∶ k5

n6 ↦ v6 ∶

k1

k2

k3

k5

T

high low

high low

τ ≠ UN

≈≈

Plus:• no need of injective relation• no need of any traces• no need of backtranslation• fairly simple• scales to multithreadedlanguages!

28

Page 86: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Cross-language Bisimulation Ω≋Ω

`1 ↦ v1 ∶ τ1

`2 ↦ v2 ∶ τ2

`3 ↦ v3 ∶ τ3

`4 ↦ v4 ∶ τ4

`5 ↦ v5 ∶ τ5

`6 ↦ v6 ∶ τ6

S

n1 ↦ v1 ∶ k1

n2 ↦ v2 ∶ k2

n3 ↦ v3 ∶ k3

n4 ↦ v4 ∶

n5 ↦ v5 ∶ k5

n6 ↦ v6 ∶

k1

k2

k3

k5

T

high low

high low

τ ≠ UN

≈≈

Plus:• no need of injective relation• no need of any traces• no need of backtranslation• fairly simple• scales to multithreadedlanguages!

28

Page 87: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Cross-language Bisimulation Ω≋Ω

`1 ↦ v1 ∶ τ1

`2 ↦ v2 ∶ τ2

`3 ↦ v3 ∶ τ3

`4 ↦ v4 ∶ τ4

`5 ↦ v5 ∶ τ5

`6 ↦ v6 ∶ τ6

S

n1 ↦ v1 ∶ k1

n2 ↦ v2 ∶ k2

n3 ↦ v3 ∶ k3

n4 ↦ v4 ∶

n5 ↦ v5 ∶ k5

n6 ↦ v6 ∶

k1

k2

k3

k5

T

high low

high low

τ ≠ UN

≈≈

Plus:• no need of injective relation• no need of any traces• no need of backtranslation• fairly simple• scales to multithreadedlanguages!

28

Page 88: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Conclusion

• motivated the Robust Compilation Lattice• inspected elements of RCL• zoomed in an instance of Robustly SafeCompilation

• discussed proof techniques for RSC

29

Page 89: Robust is the New Black - Stanford CS Theorytheory.stanford.edu/~mp/mp/Publications_files/2017-12...Background Fully abstract compilation(FAC) de-facto standard for compiler security

Conclusion

29