Upload
vukhue
View
228
Download
4
Embed Size (px)
Citation preview
Modeling and Abstraction of Memory Management in a Hypervisor
Modeling and Abstraction of MemoryManagement in a Hypervisor
Pauline Bolignano 1,2 Thomas Jensen 1 Vincent Siles 2
1Inria, Rennes, France
2Prove & Run, Paris, France
April 6th, 2016
Modeling and Abstraction of Memory Management in a Hypervisor
Problem Overview
Hypervisors
Hypervisors
I Allow to run several OSeson the same platform.
I Allow to run legacy OS.
I Are security criticalcomponents.
I Bugs are severe.I Xen bug in Page Tables
Management [1].
Gu
est
OS
2
Gu
est
OS
3
Gu
est
OS
4
Gu
est
OS
1
Gu
est
OS
0
Hypervisor
Hardware
[1] https://github.com/QubesOS/qubes-secpack/blob/master/QSBs/qsb-022-2015.txt
2 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Problem Overview
Hypervisors
Targeted Properties
Isolation:
I Integrity.
I Confidentiality.
On:
I Memory.
I Registers.
Out of the model:
I Side Channels.
Gu
est
OS
2
Gu
est
OS
3
Gu
est
OS
4
Gu
est
OS
1
Gu
est
OS
0
Hypervisor
Hardware
3 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Problem Overview
Shadow Page Tables
Memory Management for an OSI The MMU translates virtual addresses to physical addresses
with the Page Tables.
I Each Page Table defines an address space.
Virtual Address Space
OS Physical Memory
Page Table Pointer PT level 1
PT level 2
Addr Space A Addr Space B Addr Space C
OS Physical Memory
Page Tables
4 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Problem Overview
Shadow Page Tables
Memory Management for an OSI The MMU translates virtual addresses to physical addresses
with the Page Tables.I Each Page Table defines an address space.
Virtual Address Space
OS Physical Memory
Page Table Pointer PT level 1
PT level 2
Addr Space A Addr Space B Addr Space C
OS Physical Memory
Page Tables
4 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Problem Overview
Shadow Page Tables
Memory Management for a Hypervisor
Shadow Page Tables combine Guest Page Tables and HypervisorPage Tables.
Addr Space A Addr Space B Addr Space C
Guest 0
GPT
Addr Space A Addr Space B Addr Space C
Guest 1
GPT
Guest 0 Guest 1 Hypervisor
Hypervisor Guest 0Guest 1
HPT
SPT
GVA
IPA
HVA
PA
5 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Problem Overview
Shadow Page Tables
Memory Management for a Hypervisor
Shadow Page Tables combine Guest Page Tables and HypervisorPage Tables.
Addr Space A Addr Space B Addr Space C
Guest 0
GPT
Addr Space A Addr Space B Addr Space C
Guest 1
GPT
Guest 0 Guest 1 Hypervisor
Hypervisor Guest 0Guest 1
HPT
SPT
GVA
IPA
HVA
PA
5 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Problem Overview
Shadow Page Tables
Memory Management for a Hypervisor
Shadow Page Tables combine Guest Page Tables and HypervisorPage Tables.
Addr Space A Addr Space B Addr Space C
Guest 0
GPT
Addr Space A Addr Space B Addr Space C
Guest 1
GPT
Guest 0 Guest 1 Hypervisor
Hypervisor Guest 0Guest 1
HPT
SPT
GVA
IPA
HVA
PA
5 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Problem Overview
Shadow Page Tables
Memory Management for a Hypervisor
Shadow Page Tables combine Guest Page Tables and HypervisorPage Tables.
Addr Space A Addr Space B Addr Space C
Guest 0
GPT
Addr Space A Addr Space B Addr Space C
Guest 1
GPT
Guest 0 Guest 1 Hypervisor
Hypervisor Guest 0Guest 1
HPT
SPT
GVA
IPA
HVA
PA
5 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Problem Overview
Context
Context
Prove & Run:
I Develops Tools:I Language (Smart).I Prover.
I Develops and proves highly secure systems:I Micro-kernels.I Hypervisors.
6 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Problem Overview
Context
Our Work
Which hypervisor?
I Developed by SecT team (TU Berlin).
I Para-virtualized.
I With Shadow Page Tables.
I With static configuration of memory access rights.
Which tools?
I Prove & Run Language and Prover.
7 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Outline
Problem OverviewHypervisorsShadow Page TablesContext
Proving Properties on a HypervisorMethodologyAbstract State Transition SystemConcrete State Transition System
ImplementationSmartState of the ProofConclusions
8 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Methodology
Proof by Abstraction
σ σ′
α(σ) α(σ)’=α(σ′)
concrete transition
abstract transition
abstraction
abst
raction
I Isolation on the abstract system implies isolation on theconcrete system.
I The abstract state must be precise enough to express ourproperties on it.
9 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Methodology
Correspondence between Concrete and AbstractTransitions
Flow:
1
0 2
Guest Trans
Hyp Trans
Restore
Privileged
Unprivileged
Hypervisor Transitions:
Concrete Abstract
SwitchPage Fault with MMUPage Fault without MMU MemoryFlush ManagementActivate MMUDeactivate MMU
Schedule Schedule
Inject SWIInject UNDInject ABT Modify RegistersAccess Privileged Registers
Handle IRQPassthrough IRQ NopFetch IRQ
10 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Abstract State Transition System
Abstract State
Abstract State :
σα = 〈curr , σ1, ...σn〉
Where, for all i :
σi = 〈regs, priv , 〈s1, ..., sn〉, 〈r1, ..., rn〉〉I priv : private segment of i .
I σi .sk : send segment from i to k.
I σi .rk : receive segment from k to i ,in particular σi .rk = σk .si .
041CFF5EBD6CA9priv
ABF4E75E229F6B
send
0DE389E913AB8D
receive
regs
σ1
965FD587EF524Apriv
0DE389E913AB8D
send
ABF4E75E229F6B
receive
regs
σ2
11 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Abstract State Transition System
Properties on the Abstract Model
Integrity Theorem: Let i and j be two guest indexes such thati 6= j . Consider a transition where j is the running guest. If
〈j , σ1, ..., σi , ..., σn〉 → 〈j ′, σ′1, ..., σ′i , ..., σ′n〉
then
I σ′i .priv = σi .priv
I ∀k , σ′i .sk = σi .skI ∀k 6= j , σ′i .rk = σi .rk
12 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Abstract State Transition System
Abstract Guest Transition
041CFF5EBD6CA9priv
ABF4E75E229F6B
send
0DE389E913AB8D
receive
regs
σ1
965FD587EF524Apriv
0DE389E913AB8D
send
ABF4E75E229F6B
receive
regs
σ2
guest trans
1435
E6
AD859A
16priv
78
7D
A5
42
56
41
12send
0DE389E913AB8D
receive
regsσ′1
965FD587EF524Apriv
0DE389E913AB8D
send
78
7D
A5
42
56
41
12receive
regs
σ′2
σ′i = run(σi )
∀k 6= i , σ′k = σk [riVAL←−− σ′i .sk ]
〈i ,σ1σ1σ1, ...σnσnσn〉 → 〈i ,σ′1σ′1σ′1, ...σ
′nσ′nσ′n〉
13 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Abstract State Transition System
Abstract Memory Management Transition
041CFF5EBD6CA9priv
ABF4E75E229F6B
send
0DE389E913AB8D
receive
regs
σ1
965FD587EF524Apriv
0DE389E913AB8D
send
ABF4E75E229F6B
receive
regs
σ2
mm trans
041CFF5EBD6CA9priv
ABF4E75E229F6B
send
0DE389E913AB8D
receive
regsσ′1
965FD587EF524Apriv
0DE389E913AB8D
send
ABF4E75E229F6B
receive
regs
σ′2
decode(σi .abs regs) = mm(σ′i )
〈i , σ1, ...σiσiσi , ...σn〉 → 〈i , σ1, ...σ′iσ′iσ′i , ...σn〉
14 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Concrete State Transition System
Concrete State
Concrete State:
σ = 〈σHW, σHYP, exception〉
Where:
I σHW = 〈mem, base, level , regsgp, regsmmu, regsgic〉I σHYP = 〈curr , σint, 〈σG1, ..., σGn〉〉I σGi = 〈vbase, vmode, vbnk, vregsgp, vregsmmu, vregsgic〉
15 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Concrete State Transition System
Page Fault Transition:decode(abt, σHW) = pf (gva) σGi .vregsmmu.pg = enabled
hpt(σGi .vbase) = (pbase, ) {(gva, (ipa, r0))} ∈ Γpt(mem,pbase)
hpt(ipa) = (pa, ) ∃r1 ≥ r0, allowed(pa, i , r1)Γpt(mem′,base) = Γpt(mem,base) ∪ {(gva, (pa, r0))}σ′HYP = σHYP[σint ← alloc(σint,mem, gva)]⟨ 〈memmemmem, base, regsmmu, regsgp, pl1, regsgic〉
σHYPσHYPσHYP
abt
⟩→
⟨ 〈mem′mem′mem′, base, regsmmu, regsgp, pl1, regsgic〉σ′HYPσ′HYPσ′HYP
abt
⟩
gva
Guest i
ipa, r0
GPT
Guest k
GPT
ipa, r0
Guest i Guest k Hypervisor
papapa, r0
r1 > r0
Hypervisor Guest iGuest k
HPT
SPT
GVA
IPA
HVA
PA
16 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Concrete State Transition System
Page Fault Transition:decode(abt, σHW) = pf (gva) σGi .vregsmmu.pg = enabled
hpt(σGi .vbase) = (pbase, ) {(gva, (ipa, r0))} ∈ Γpt(mem,pbase)
hpt(ipa) = (pa, ) ∃r1 ≥ r0, allowed(pa, i , r1)Γpt(mem′,base) = Γpt(mem,base) ∪ {(gva, (pa, r0))}σ′HYP = σHYP[σint ← alloc(σint,mem, gva)]⟨ 〈memmemmem, base, regsmmu, regsgp, pl1, regsgic〉
σHYPσHYPσHYP
abt
⟩→
⟨ 〈mem′mem′mem′, base, regsmmu, regsgp, pl1, regsgic〉σ′HYPσ′HYPσ′HYP
abt
⟩gva
Guest i
ipa, r0
GPT
Guest k
GPT
ipa, r0
Guest i Guest k Hypervisor
papapa, r0
r1 > r0
Hypervisor Guest iGuest k
HPT
SPT
GVA
IPA
HVA
PA
16 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Concrete State Transition System
Page Fault Transition:decode(abt, σHW) = pf (gva) σGi .vregsmmu.pg = enabled
hpt(σGi .vbase) = (pbase, ) {(gva, (ipa, r0))} ∈ Γpt(mem,pbase)
hpt(ipa) = (pa, ) ∃r1 ≥ r0, allowed(pa, i , r1)Γpt(mem′,base) = Γpt(mem,base) ∪ {(gva, (pa, r0))}σ′HYP = σHYP[σint ← alloc(σint,mem, gva)]⟨ 〈memmemmem, base, regsmmu, regsgp, pl1, regsgic〉
σHYPσHYPσHYP
abt
⟩→
⟨ 〈mem′mem′mem′, base, regsmmu, regsgp, pl1, regsgic〉σ′HYPσ′HYPσ′HYP
abt
⟩gva
Guest i
ipa, r0
GPT
Guest k
GPT
ipa, r0
Guest i Guest k Hypervisor
papapa, r0
r1 > r0
Hypervisor Guest iGuest k
HPT
SPT
GVA
IPA
HVA
PA
16 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Concrete State Transition System
Page Fault Transition:decode(abt, σHW) = pf (gva) σGi .vregsmmu.pg = enabled
hpt(σGi .vbase) = (pbase, ) {(gva, (ipa, r0))} ∈ Γpt(mem,pbase)
hpt(ipa) = (pa, ) ∃r1 ≥ r0, allowed(pa, i , r1)Γpt(mem′,base) = Γpt(mem,base) ∪ {(gva, (pa, r0))}σ′HYP = σHYP[σint ← alloc(σint,mem, gva)]⟨ 〈memmemmem, base, regsmmu, regsgp, pl1, regsgic〉
σHYPσHYPσHYP
abt
⟩→
⟨ 〈mem′mem′mem′, base, regsmmu, regsgp, pl1, regsgic〉σ′HYPσ′HYPσ′HYP
abt
⟩gva
Guest i
ipa, r0
GPT
Guest k
GPT
ipa, r0
Guest i Guest k Hypervisor
papapa, r0
r1 > r0
Hypervisor Guest iGuest k
HPT
SPT
GVA
IPA
HVA
PA
16 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Concrete State Transition System
Page Fault Transition:decode(abt, σHW) = pf (gva) σGi .vregsmmu.pg = enabled
hpt(σGi .vbase) = (pbase, ) {(gva, (ipa, r0))} ∈ Γpt(mem,pbase)
hpt(ipa) = (pa, ) ∃r1 ≥ r0, allowed(pa, i , r1)Γpt(mem′,base) = Γpt(mem,base) ∪ {(gva, (pa, r0))}σ′HYP = σHYP[σint ← alloc(σint,mem, gva)]⟨ 〈memmemmem, base, regsmmu, regsgp, pl1, regsgic〉
σHYPσHYPσHYP
abt
⟩→
⟨ 〈mem′mem′mem′, base, regsmmu, regsgp, pl1, regsgic〉σ′HYPσ′HYPσ′HYP
abt
⟩gva
Guest iipa, r0
GPT
Guest k
GPT
ipa, r0 Guest i Guest k Hypervisor
papapa, r0
r1 > r0
Hypervisor Guest iGuest k
HPT
SPT
GVA
IPA
HVA
PA
16 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Concrete State Transition System
Page Fault Transition:decode(abt, σHW) = pf (gva) σGi .vregsmmu.pg = enabled
hpt(σGi .vbase) = (pbase, ) {(gva, (ipa, r0))} ∈ Γpt(mem,pbase)
hpt(ipa) = (pa, ) ∃r1 ≥ r0, allowed(pa, i , r1)Γpt(mem′,base) = Γpt(mem,base) ∪ {(gva, (pa, r0))}σ′HYP = σHYP[σint ← alloc(σint,mem, gva)]⟨ 〈memmemmem, base, regsmmu, regsgp, pl1, regsgic〉
σHYPσHYPσHYP
abt
⟩→
⟨ 〈mem′mem′mem′, base, regsmmu, regsgp, pl1, regsgic〉σ′HYPσ′HYPσ′HYP
abt
⟩gva
Guest iipa, r0
GPT
Guest k
GPT
ipa, r0 Guest i Guest k Hypervisor
pa
papa, r0
r1 > r0
Hypervisor Guest iGuest k
HPT
SPT
GVA
IPA
HVA
PA
16 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Concrete State Transition System
Page Fault Transition:decode(abt, σHW) = pf (gva) σGi .vregsmmu.pg = enabled
hpt(σGi .vbase) = (pbase, ) {(gva, (ipa, r0))} ∈ Γpt(mem,pbase)
hpt(ipa) = (pa, ) ∃r1 ≥ r0, allowed(pa, i , r1)Γpt(mem′,base) = Γpt(mem,base) ∪ {(gva, (pa, r0))}σ′HYP = σHYP[σint ← alloc(σint,mem, gva)]⟨ 〈memmemmem, base, regsmmu, regsgp, pl1, regsgic〉
σHYPσHYPσHYP
abt
⟩→
⟨ 〈mem′mem′mem′, base, regsmmu, regsgp, pl1, regsgic〉σ′HYPσ′HYPσ′HYP
abt
⟩gva
Guest i
ipa, r0
GPT
Guest k
GPT
ipa, r0
Guest i Guest k Hypervisor
pa
pa
pa, r0
r1 > r0
Hypervisor Guest iGuest k
HPT
SPT
GVA
IPA
HVA
PA
16 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Concrete State Transition System
Page Fault Transition:decode(abt, σHW) = pf (gva) σGi .vregsmmu.pg = enabled
hpt(σGi .vbase) = (pbase, ) {(gva, (ipa, r0))} ∈ Γpt(mem,pbase)
hpt(ipa) = (pa, ) ∃r1 ≥ r0, allowed(pa, i , r1)Γpt(mem′,base) = Γpt(mem,base) ∪ {(gva, (pa, r0))}σ′HYP = σHYP[σint ← alloc(σint,mem, gva)]⟨ 〈memmemmem, base, regsmmu, regsgp, pl1, regsgic〉
σHYPσHYPσHYP
abt
⟩→
⟨ 〈mem′mem′mem′, base, regsmmu, regsgp, pl1, regsgic〉σ′HYPσ′HYPσ′HYP
abt
⟩gva
Guest i
ipa, r0
GPT
Guest k
GPT
ipa, r0
Guest i Guest k Hypervisor
papa
pa, r0
r1 > r0
Hypervisor Guest iGuest k
HPT
SPT
GVA
IPA
HVA
PA
16 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Concrete State Transition System
Invariants on SPTProperty ensuring isolation:if:
I base ∈ BSPT(σint, i)I (pa, r0) ∈ Im(pt(mem, base))
then:I ∃r1 ≥ r0 ∧ allowed(pa, i , r1)
Guest i
GPT
Guest k
GPT
Guest i Guest k Hypervisor
pa, r0
r1 > r0
Hypervisor Guest iGuest k
HPT
SPT ofGuest i
GVA
IPA
HVA
PA
17 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Concrete State Transition System
Invariants on SPTProperty ensuring isolation:if:
I base ∈ BSPT(σint, i)I (pa, r0) ∈ Im(pt(mem, base))
then:I ∃r1 ≥ r0 ∧ allowed(pa, i , r1)
Guest i
GPT
Guest k
GPT
Guest i Guest k Hypervisor
pa, r0
r1 > r0
Hypervisor Guest iGuest k
HPT
SPT ofGuest i
GVA
IPA
HVA
PA
17 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Concrete State Transition System
Invariants on SPTProperty ensuring isolation:if:
I base ∈ BSPT(σint, i)I (pa, r0) ∈ Im(pt(mem, base))
then:I ∃r1 ≥ r0 ∧ allowed(pa, i , r1)
Guest i
GPT
Guest k
GPT
Guest i Guest k Hypervisor
pa, r0
r1 > r0
Hypervisor Guest iGuest k
HPT
SPT ofGuest i
GVA
IPA
HVA
PA
17 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Proving Properties on a Hypervisor
Concrete State Transition System
Invariants on SPTProperty ensuring isolation:if:
I base ∈ BSPT(σint, i)I (pa, r0) ∈ Im(pt(mem, base))
then:I ∃r1 ≥ r0 ∧ allowed(pa, i , r1)
Guest i
GPT
Guest k
GPT
Guest i Guest k Hypervisor
pa, r0
r1 > r0
Hypervisor Guest iGuest k
HPT
SPT ofGuest i
GVA
IPA
HVA
PA
17 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Implementation
Outline
Problem OverviewHypervisorsShadow Page TablesContext
Proving Properties on a HypervisorMethodologyAbstract State Transition SystemConcrete State Transition System
ImplementationSmartState of the ProofConclusions
18 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Implementation
Smart
Characteristics of Prove & Run Tools
Smart:
I is a functional language.
I is pure.
I has an imperative syntax.
I allows to write both code and properties.
The Prover:
I is interactive.
I provides automatic resolution for simple goals.
19 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Implementation
Smart
Integrity Expressed in Smart
p u b l i c lemma t r a n s i t i o n i n t e g r i t y ( s t a t e s t , o r a c l e o ,i d x i )
program{{ s t a t e ns t , seg p r i v , s e g s t o r e send , s e g s t o r e r e c ,segment n p r i v , s e g s t o r e nsend , s e g s t o r e n rec , i d x c u r r }}{
s t a t e@c u r r g u e s t ( s t , c u r r +);i != cu r r => // [ i ] i s not the c u r r e n t gue s tv a l i d ( s t ) =>? t r a n s i t i o n ( s t , o , n s t+) =>
? g l o g e t s e gmen t s ( s t , i , p r i v +, send+, r e c+) =>? g l o g e t s e gmen t s ( n s t , i , n p r i v +, nsend+, n r ec+) &&np r i v = p r i v &&nsend = send &&d i f f e r o n l y o n c u r r ( r e c , n r e c , c u r r ) ;
}
20 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Implementation
Smart
Integrity expressed in Smart
”If
I curr is the index of the running guest.
I i is a guest index such that i 6= curr .
I 〈curr , σ1, ..., σi , ..., σn〉 → 〈curr ′, σ′1, ..., σ′i , ..., σ′n〉”
... in Smart :
s t a t e@c u r r g u e s t ( s t , c u r r +);i != cu r r => // [ i ] i s not the c u r r e n t gue s tv a l i d ( s t ) =>? t r a n s i t i o n ( s t , o , n s t+) =>
21 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Implementation
Smart
Integrity expressed in Smart
”then
I σ′i .priv = σi .priv
I ∀k , σ′i .sk = σi .skI ∀k 6= curr , σ′i .rk = σi .rk ”
... in Smart :
? g l o g e t s e gmen t s ( s t , i , p r i v +, send+, r e c+) =>? g l o g e t s e gmen t s ( n s t , i , n p r i v +, nsend+, n r ec+) &&np r i v = p r i v &&nsend = send &&d i f f e r o n l y o n c u r r ( r e c , n r e c , c u r r ) ;
22 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Implementation
State of the Proof
Implementation Details
Measure: a hint means an interaction with the prover.
State of the proof:I Properties of the concrete level: 5756 hints.
I 3413 of which for the proof of preservation of invariants overthe map operation.
I Proof of isolation at the abstract level: 336 hints forconfidentiality and 235 hints for integrity.
I Proof of commutation of the Guest transition:1779 hints.
I Proof of commutation of the Page Fault transition:1885hints.
23 / 25
Modeling and Abstraction of Memory Management in a Hypervisor
Implementation
Conclusions
Conclusions
Recent advances of Formal Methods in complex systems:
I Sel4, PROSPER, Verisoft XT project.
SPT management is:
I Complex.
I Error prone.
The work presented:
I Provides a formalization of a hypervisor, in particular of itsSPT management.
I Studies the properties needed on SPT to ensure isolation.
I Aims at simplifying further proofs by linking the hypervisormodel to an abstract model without SPT.
24 / 25