Verified translation validation of static analyses
Sandrine Blazy
- Univ. Rennes, CNRS IRISA, Inria
1
Verified translation validation of static analyses Sandrine Blazy - - PowerPoint PPT Presentation
Verified translation validation of static analyses Sandrine Blazy Univ. Rennes, CNRS IRISA, Inria joint work with Gilles Barthe, Vincent Laporte, David Pichardie and Alix Trieu IFIP WG 2.11 2018 6 8 1 How to check
1
2 program.c program.asm
CompCert compiler security analysis
Verasco static analyzer
3
CompCert compiler Verasco static analyzer
program.asm program.c
…
4
CompCert compiler Verasco static analyzer
program.asm program.c
simple constant-time analysis
5
CompCert compiler
program.asm program.c
improved Verasco static analyzer
6
Logical Framework
(here Coq)
Compiler Language Semantics
parser.ml pprinter.ml compiler.ml
Soundness Proof
7
8
Logical Framework
(here Coq)
Compiler Language Semantics
parser.ml pprinter.ml
Soundness Proof
9
Static Analyzer
analyzer.ml
Integer congruences
Integer & F .P . intervals
Nonrel→ Rel Nonrel→ Rel Symbolic equalities Convex polyhedra
CompCert compiler C#minor Clight CompCert C ...
11
CompCert compiler Verasco static analyzer
program.asm program.c
…
12
13
14
function modular_pow(base, exponent, modulus) if modulus = 1 then return 0 Assert :: (modulus - 1) * (modulus - 1) does not OVF base result := 1 base := base mod modulus while exponent > 0 if (exponent mod 2 == 1): result := (result * base) mod modulus exponent := exponent >> 1 base := (base * base) mod modulus return result
leaks how many bits
17
18
19
20