what is secure compilation?theory.stanford.edu/~mp/mp/teaching_files/l1-intro.pdf · •...

Post on 08-Sep-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

What is Secure Compilation?summer semester ��-��, block

Marco Patrignani1,2

�/�

Practicalities

• Monday, Tuesday, Wednesday, Friday,Monday, Tuesday

• �h��, � breaks remind me• Type of course: lectures � presentations• Course goal:

• understand background and motivationbehind SC

• learn reasoning techniques for SC• know the most recent developments in SC

• Evaluation: presentations, reports.

�/�

Practicalities

• Monday, Tuesday, Wednesday, Friday,Monday, Tuesday

• �h��, � breaks remind me

• Type of course: lectures � presentations• Course goal:

• understand background and motivationbehind SC

• learn reasoning techniques for SC• know the most recent developments in SC

• Evaluation: presentations, reports.

�/�

Practicalities

• Monday, Tuesday, Wednesday, Friday,Monday, Tuesday

• �h��, � breaks remind me• Type of course: lectures � presentations

• Course goal:• understand background and motivationbehind SC

• learn reasoning techniques for SC• know the most recent developments in SC

• Evaluation: presentations, reports.

�/�

Practicalities

• Monday, Tuesday, Wednesday, Friday,Monday, Tuesday

• �h��, � breaks remind me• Type of course: lectures � presentations• Course goal:

• understand background and motivationbehind SC

• learn reasoning techniques for SC• know the most recent developments in SC

• Evaluation: presentations, reports.

�/�

Practicalities

• Monday, Tuesday, Wednesday, Friday,Monday, Tuesday

• �h��, � breaks remind me• Type of course: lectures � presentations• Course goal:

• understand background and motivationbehind SC

• learn reasoning techniques for SC• know the most recent developments in SC

• Evaluation: presentations, reports.

�/�

Practicalities

• SC is a very active research field with manyunsolved difficult problems to work on

(for some questions there is no answer yet)• Pose questions• Course flavour: formal methods.• You think how to bridge the gap betweenformality and practicality

�/�

Practicalities

• SC is a very active research field with manyunsolved difficult problems to work on(for some questions there is no answer yet)

• Pose questions• Course flavour: formal methods.• You think how to bridge the gap betweenformality and practicality

�/�

Practicalities

• SC is a very active research field with manyunsolved difficult problems to work on(for some questions there is no answer yet)

• Pose questions

• Course flavour: formal methods.• You think how to bridge the gap betweenformality and practicality

�/�

Practicalities

• SC is a very active research field with manyunsolved difficult problems to work on(for some questions there is no answer yet)

• Pose questions• Course flavour: formal methods.

• You think how to bridge the gap betweenformality and practicality

�/�

Practicalities

• SC is a very active research field with manyunsolved difficult problems to work on(for some questions there is no answer yet)

• Pose questions• Course flavour: formal methods.• You think how to bridge the gap betweenformality and practicality

�/�

A Note on Flavour

Formal methods give you the tools to reasonabout things and to reason about themotivation why things are done in a certain way.

�/�

Couse Outline

• Develop a super toy formal compiler

• Prove it is correct, understand why it is notsecure

• Prove that it is Fully Abstract viaBacktranslations

• Understand why Full Abstraction yieldssecurity

• Prove that it is Robustly Safe• Understand why Robust Compilation yieldssecurity

�/�

Couse Outline

• Develop a super toy formal compiler• Prove it is correct, understand why it is notsecure

• Prove that it is Fully Abstract viaBacktranslations

• Understand why Full Abstraction yieldssecurity

• Prove that it is Robustly Safe• Understand why Robust Compilation yieldssecurity

�/�

Couse Outline

• Develop a super toy formal compiler• Prove it is correct, understand why it is notsecure

• Prove that it is Fully Abstract viaBacktranslations

• Understand why Full Abstraction yieldssecurity

• Prove that it is Robustly Safe• Understand why Robust Compilation yieldssecurity

�/�

Couse Outline

• Develop a super toy formal compiler• Prove it is correct, understand why it is notsecure

• Prove that it is Fully Abstract viaBacktranslations

• Understand why Full Abstraction yieldssecurity

• Prove that it is Robustly Safe• Understand why Robust Compilation yieldssecurity

�/�

Couse Outline

• Develop a super toy formal compiler• Prove it is correct, understand why it is notsecure

• Prove that it is Fully Abstract viaBacktranslations

• Understand why Full Abstraction yieldssecurity

• Prove that it is Robustly Safe

• Understand why Robust Compilation yieldssecurity

�/�

Couse Outline

• Develop a super toy formal compiler• Prove it is correct, understand why it is notsecure

• Prove that it is Fully Abstract viaBacktranslations

• Understand why Full Abstraction yieldssecurity

• Prove that it is Robustly Safe• Understand why Robust Compilation yieldssecurity

�/�

Problems

• Programming abstractions are notpreserved by compilers (linkers etc)(security is an abstraction)

• what does preserving abstractions mean?• what tools are there to preserveabstractions?

�/�

Problems

• Programming abstractions are notpreserved by compilers (linkers etc)(security is an abstraction)

• what does preserving abstractions mean?

• what tools are there to preserveabstractions?

�/�

Problems

• Programming abstractions are notpreserved by compilers (linkers etc)(security is an abstraction)

• what does preserving abstractions mean?• what tools are there to preserveabstractions?

�/�

Solutions

• Study what preserving abstractions meansvia secure compilation criteria

• Devise efficient enforcement mechanismsto attain security

• Prove compilers can use these mechanismsfor security

�/�

Solutions

• Study what preserving abstractions meansvia secure compilation criteria

• Devise efficient enforcement mechanismsto attain security

• Prove compilers can use these mechanismsfor security

�/�

Solutions

• Study what preserving abstractions meansvia secure compilation criteria

• Devise efficient enforcement mechanismsto attain security

• Prove compilers can use these mechanismsfor security

�/�

Recommended Reading

•http://drops.dagstuhl.de/opus/volltexte/����/����/pdf/dagrep_v���_i���_p���_�����.pdf

•https://blog.sigplan.org/����/��/��/secure-compilation/

�/�

A First Example

(borrowed from Catalin Hritcu)

�/�

HACL* verified cryptographic library, in practice

3

HACL* library

~100.000 LOC in F*

HACL* verified cryptographic library, in practice

3

HACL* library Firefox web browser

~100.000 LOC in F* 16.000.000+ LOC in C/C++ 160x

, in practice

HACL* verified cryptographic library, in practice

3

HACL* library Firefox web browser

ASM ASM

~100.000 LOC in F* 16.000.000+ LOC in C/C++

KreMLin+ CompCert GCC

160x

, in practice

HACL* verified cryptographic library, in practice

3

HACL* library Firefox web browser

ASM ASM

Insecure interoperability: linked code can read and writedata and code, jump to arbitrary instructions, smash the stack, ...

~100.000 LOC in F* 16.000.000+ LOC in C/C++

KreMLin+ CompCert GCC

160x

, in practice

A Second Example

P1 P2. . . Pn

JP1K JP2K . . . JPnK

RustAsm

P P′

�/�

A Second Example

P1 P2. . . Pn

JP1K JP2K . . . JPnK

RustAsm

P P′

y = &mut

�/�

A Second Example

P1 P2. . . Pn

JP1K JP2K . . . JPnK

RustAsm

P P′

y = &mut

used linearly

�/�

A Second Example

P1 P2. . . Pn

JP1K JP2K . . . JPnK

RustAsm

P P′

y = &mut

used linearly

Jy = &mutK

�/�

A Second Example

P1 P2. . . Pn

JP1K JP2K . . . JPnK

RustAsm

P P′

y = &mut

Jy = &mutK

violate linearity�/�

A Second Example

P1 P2. . . Pn

JP1K JP2K . . . JPnK

RustAsm

P P′

y = &mut

Jy = &mutK

Preserve the security properties of

�/�

A Second Example

P1 P2. . . Pn

JP1K JP2K . . . JPnK

RustAsm

P P′

y = &mut

Jy = &mutK

Preserve the security properties of

when interoperating with�/�

A Second Example

P1 P2. . . Pn

JP1K JP2K . . . JPnK

RustAsm

P P′

y = &mut

Jy = &mutK

Preserve the security properties of

when interoperating with

PL sec

(e.g., no side channe

ls)

�/�

A Second Example

P1 P2. . . Pn

JP1K JP2K . . . JPnK

RustAsm

y = &mut

Jy = &mutK

Correct compilation

P P′

�/�

A Second Example

P1 P2. . . Pn

JP1K JP2K . . . JPnK

RustAsm

y = &mut

Jy = &mutK

Correct compilation

P P′

respect linearity�/�

A Second Example

P1 P2. . . Pn

JP1K JP2K . . . JPnK

RustAsm

y = &mut

Jy = &mutK

Secure compilation

P P′

�/�

A Second Example

P1 P2. . . Pn

JP1K JP2K . . . JPnK

RustAsm

y = &mut

Jy = &mutK

P P′

Enable source-level security reasoning

�/�

top related