abyme : un voyage au c ur des hyperviseurs récursifs - sstic...abyme : un voyage au c˙ur des...

40
Introduction Analyse et conception Impl´ ementation Conclusion Abyme : un voyage au cœur des hyperviseurs r´ ecursifs Benoˆ ıt Morgan, Guillaume Averlant, Vincent Nicomette, ´ Eric Alata LAAS-CNRS, INSA Toulouse, Universit´ e Toulouse III 2 juin 2015 Abyme : un voyage au cœur des hyperviseurs r´ ecursifs 1 / 40

Upload: others

Post on 23-Jan-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

Abyme : un voyage au cœur des hyperviseurs recursifs

Benoıt Morgan, Guillaume Averlant,Vincent Nicomette, Eric Alata

LAAS-CNRS, INSA Toulouse, Universite Toulouse III

2 juin 2015

Abyme : un voyage au cœur des hyperviseurs recursifs 1 / 40

Page 2: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

1 Introduction

2 Analyse et conception

3 Implementation

4 Conclusion

Abyme : un voyage au cœur des hyperviseurs recursifs 2 / 40

Page 3: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

ContexteMotivation

Plan

1 IntroductionContexteMotivation

2 Analyse et conception

3 Implementation

4 Conclusion

Abyme : un voyage au cœur des hyperviseurs recursifs 3 / 40

Page 4: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

ContexteMotivation

Contexte des travaux

Projet SVC – Secured Virtual Cloud

Projet Investissement d’AvenirItrust, Bull, Eneed, Secludit, Eurogiciel, Val Informatique, BlueMind, LAAS-CNRS, IRIT

Coordinateur du projet : Bull

Contributions du LAAS – 3 theses

Evaluation de la surete de fonctionnement dans le cloud

Evaluation et analyse de la securite dans le cloud

Securisation de gestionnaires de machines virtuelles

Abyme : un voyage au cœur des hyperviseurs recursifs 4 / 40

Page 5: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

ContexteMotivation

Principe de separation des privileges

Tendance generales des noyaux monolithiques

Xen, KVM, VM Ware, Linux, NTGestion des peripheriques, scheduling, gestion memoire au memeniveau de privilegesCompromission d’un des composants du noyau ⇒ Controle dusysteme

Necessite de separation des fonctionnalites par niveau de criticite

Nombre de niveau de privilege limite par le materiel

Limitation des rings : seul le ring 0 controle les niveaux superieurs⇒ Les anneaux etendus par la virtualisation ?

Hyperviseurs existants pas forcement adaptes a etre ”empiles”

Implementation d’un hyperviseur recursif

Abyme : un voyage au cœur des hyperviseurs recursifs 5 / 40

Page 6: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

ContexteMotivation

La virtualisation recursive

Interets scientifiques et strategiques

Une fonction de securite par niveau de virtualisation

Fonction de securite specifique a un composant directement integredans sa ROM d’extension

Developpement d’une solution globale par des acteurs separes

Defis techniques

Peut-on utiliser le meme code pour les differents niveaux ?

Quel impact sur les performances (combien de niveaux peut-onenchaıner) ?

Les structures de donnees associees a la virtualisation recursive :quelle complexite ?

Abyme : un voyage au cœur des hyperviseurs recursifs 6 / 40

Page 7: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Plan

1 Introduction

2 Analyse et conceptionVirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

3 Implementation

4 Conclusion

Abyme : un voyage au cœur des hyperviseurs recursifs 7 / 40

Page 8: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Machines virtuelles

Definition

A virtual machine is taken to be an efficient, isolated duplicate of the real machine.

We explain these notions through the idea of a virtual machine monitor (VMM) [...]

the virtual machine monitor provides an environment for programs which is essentially

identical with the original machine ; second, programs run in this environment show at

worst only minor decreases in speed ; and last, the VMM is in complete control of

system resources.”Formal Requirements for Virtualizable Third Generation Architectures” G. Popek, R. Goldberg

Abyme : un voyage au cœur des hyperviseurs recursifs 8 / 40

Page 9: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Choix technologiques pour l’hyperviseur

Full virtualization : genericite et faible dependance inter-niveaux

Bare metal : meilleures performances

Extensions d’assistance materielle a la virtualisation

Choix d’Intel : VT-x, VT-d (DMA/IRQ Remapping)

⇒ representatif de la realite du marche

Autres technologies de fondeurs

ARM : Virtualization extensionsAMD : AMD-V

Abyme : un voyage au cœur des hyperviseurs recursifs 9 / 40

Page 10: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Intel VT-x

Terminologie Intel

Virtual Machine Monitor (VMM) : controleGuest software : execute dans un cœur virtuel

Modele de controle identique a celui des OS

2 modes d’execution supplementaires

VMX Root

VMX non Root

CPU core

Hardware

VMM

Guest software

VMX transition

VM Entry VM Exit

VMXON VMXOFF

Abyme : un voyage au cœur des hyperviseurs recursifs 10 / 40

Page 11: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

VMCS

Virtual Machine Control Structure

Controle des cœurs virtuels

1 par cœur physique

VMCS Region : cache memoire de VMCS

Guest state

Host state

Execution control

VM Entry control

VM Exit control

VM information

Abyme : un voyage au cœur des hyperviseurs recursifs 11 / 40

Page 12: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Virtualisation de la MMU

Extended Page Tables (EPT) : Niveau supplementaire devirtualisation de la memoire controle par le VMM

virtual address

linear address

physical address guest physical address

physical addressVM MMU

VM EPT

Abyme : un voyage au cœur des hyperviseurs recursifs 12 / 40

Page 13: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Intel VMX

13 instructions de gestion de VT-x

Entree et sortie de VMX Operation

VMXON, VMXOFF

Gestion de la VMCS

VMCLEAR, VMPTRLD, VMPTRST, VMREAD, VMWRITE

Ordonnancement des VMs

VMLAUNCH, VMRESUME

Paravirtualisation

VMFUNC, VMCALL

Gestion des caches MMU

INVVPID, INVEPT

Abyme : un voyage au cœur des hyperviseurs recursifs 13 / 40

Page 14: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Virtualisation d’un hyperviseur

Reduction des privileges de l’hyperviseur virtualise2 VMCS : pour l’hyperviseur virtualise (l1) et sa VM (l2)Guest state : l1 ou l2Host state : Hyperviseur hote (l0)

l1

l0

l2

Guest stateHost state

Instruction VMX executee par l’hyperviseur Guest ⇒ VM Exit

Abyme : un voyage au cœur des hyperviseurs recursifs 14 / 40

Page 15: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Virtualisation d’un hyperviseur

VM Exit durant l’execution de l2

l1

l0

l2

Guest stateHost state

Partie active

VM ExitNiveau actif

Abyme : un voyage au cœur des hyperviseurs recursifs 15 / 40

Page 16: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Virtualisation d’un hyperviseur

VM Exit au niveau l2

l1

l0

l2

Guest stateHost state

Partie active

VM ExitNiveau actif

Abyme : un voyage au cœur des hyperviseurs recursifs 16 / 40

Page 17: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Virtualisation d’un hyperviseur

Notification du VM Exit au niveau superieur l1

l1

l0

l2

Guest stateHost state

Partie active

VM ExitNiveau actif

Abyme : un voyage au cœur des hyperviseurs recursifs 17 / 40

Page 18: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Virtualisation d’un hyperviseur

Execution de VMRESUME par l1 ⇒ VM Exit

l1

l0

l2

Guest stateHost state

Partie active

VM ExitNiveau actif

Abyme : un voyage au cœur des hyperviseurs recursifs 18 / 40

Page 19: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Virtualisation d’un hyperviseur

Execution du VMRESUME de l2 demande par l1

l1

l0

l2

Guest stateHost state

Partie active

VM ExitNiveau actif

Abyme : un voyage au cœur des hyperviseurs recursifs 19 / 40

Page 20: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Emulation des instructions VMX

Principales instructions

VMXON : Rien a faire.

VMPTRLD : Sauvegarde du pointeur de VMCS region ⇔ shadowVMCS (S)

VMWRITE/VMREAD : Chargement de S , VMWRITE/VMREAD etrechargement de la VMCS en cours

VMRESUME, VMLAUNCH : Copie de la partie Guest de S dans uneVMCS interne et lancement ou reprise de celle-ci

Abyme : un voyage au cœur des hyperviseurs recursifs 20 / 40

Page 21: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Strategie de virtualisation recursive

Tout VM Exit genere par lx doit etre traite par lx−1

Les hyperviseurs lk |k < x delegueront au niveau superieur

⇒ Aucun evenement n’est manque par chaque niveau d’hyperviseur

l1

l0

l2

l3

Guest stateHost state

Partie active

VM ExitNiveau actif

Abyme : un voyage au cœur des hyperviseurs recursifs 21 / 40

Page 22: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Strategie de virtualisation recursive

Un VM Exit de l3 a ete notifie a l1

l1

l0

l2

l3

Guest stateHost state

Partie active

VM ExitNiveau actif

Abyme : un voyage au cœur des hyperviseurs recursifs 22 / 40

Page 23: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Strategie de virtualisation recursive

l1 n’est pas responsable du VM Exit de l3⇒ l1 donne la main a l2 via un VMRESUME

⇒ Generation d’un VM Exit

l1

l0

l2

l3

Guest stateHost state

Partie active

VM ExitNiveau actif

Abyme : un voyage au cœur des hyperviseurs recursifs 23 / 40

Page 24: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Strategie de virtualisation recursive

Le VM Exit associe au VMRESUME de l2 est traite par l0

⇒ l0 donne la main a l2 en reconfigurant la partie Guest de sa VMCS

l1

l0

l2

l3

Guest stateHost state

Partie active

VM ExitNiveau actif

Abyme : un voyage au cœur des hyperviseurs recursifs 24 / 40

Page 25: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Strategie de virtualisation recursive

Le VM Exit associe au VMRESUME de l2 est traite par l0

⇒ l0 donne la main a l2 en reconfigurant la partie Guest de sa VMCS

l1

l0

l2

l3

Guest stateHost state

Partie active

VM ExitNiveau actif

Abyme : un voyage au cœur des hyperviseurs recursifs 25 / 40

Hypothese

Plus le nombre de niveaux augmente, plus le nombrede transitions augmente

Peut-on evaluer la complexite de cette approche ?

⇒ Modelisation du comportement de l’hyperviseur

Page 26: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Modelisation simplifiee de l’hyperviseur

Modele simple proche du materiel

Implementation en Prolog

Generation de graphes de traces d’execution

⇒ Evaluation de la complexite du nombre de transitions en fonction dunombre d’hyperviseurs

⇒ Validation de la strategie theorique de virtualisation

Abyme : un voyage au cœur des hyperviseurs recursifs 26 / 40

Page 27: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Demarrage d’un hyperviseur

l0vmxon

vmclearvmptrld

vmwrite

l1

vmlaunch

Abyme : un voyage au cœur des hyperviseurs recursifs 27 / 40

Page 28: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Demarrage de cinq hyperviseurs

l0l1

l2l3

l0l1l2l3

l4

l0l1l2l3l4

l0l1l2l3l4

l0l1l2l3l4

l0l1l2l3l4

l0l1l2l3l4

l5

Abyme : un voyage au cœur des hyperviseurs recursifs 28 / 40

Page 29: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Demarrage de cinq hyperviseurs

l0l1

l2l3

l0l1l2l3

l4

l0l1l2l3l4

l0l1l2l3l4

l0l1l2l3l4

l0l1l2l3l4

l0l1l2l3l4

l5

VMXON

VMCLEAR

VMPTRLDVMWRITE

VMLAUNCH

Abyme : un voyage au cœur des hyperviseurs recursifs 29 / 40

Page 30: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

VirtualisationIntel VT-xVirtualisation de VT-xModelisation du comportement de l’hyperviseur recursif

Demarrage de cinq hyperviseurs

l0l1

l2l3

l0l1l2l3

l4

l0l1l2l3l4

l0l1l2l3l4

l0l1l2l3l4

l0l1l2l3l4

l0l1l2l3l4

l5

VMXON

VMCLEAR

VMPTRLDVMWRITE

VMLAUNCH

Abyme : un voyage au cœur des hyperviseurs recursifs 30 / 40

Constat

Strategie de virtualisation donnant lecomportement attendu

Caractere exponentiel du nombre de transitions

Page 31: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

Fonctionnalites de l’hyperviseurVirtualisation recursiveDemonstration

Plan

1 Introduction

2 Analyse et conception

3 ImplementationFonctionnalites de l’hyperviseurVirtualisation recursiveDemonstration

4 Conclusion

Abyme : un voyage au cœur des hyperviseurs recursifs 31 / 40

Page 32: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

Fonctionnalites de l’hyperviseurVirtualisation recursiveDemonstration

Chargement et demarrage

Chargement au plus tot pour ne pas perdre le controle du materiel

⇒ Driver UEFI

Chargement de drivers pre bootChargement d’images complexes (PE32+ modifiee)Script shell de chargement successifs des hyperviseurs

load and execute

BootstrapUEFI

VMHost

UEFI Bootchain

Bootloader OSVMM

Abyme : un voyage au cœur des hyperviseurs recursifs 32 / 40

Page 33: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

Fonctionnalites de l’hyperviseurVirtualisation recursiveDemonstration

Traitement de la creation de VMs

Une VMCS par niveau virtualise⇒ Evite la copie systematique de certains champs speficiques et la

remise a zero de la VM entre chaque ordonnancementDemarrage d’une VM : VMLAUNCH par lx

Association a une VMCS localeCreation d’un contexte EPT protegeant par transitivite l0 a lxExemple avec VMLAUNCH de l2

l3

l2

l1

l0 l1

lx vmcs pour lx

l2 l3

l2 l3

l3

lx pages --- lx pages rwx

l0 l1 l2 l3

l0 l1 l2 l3

l0 l1 l2 l3l3

l2

l1

Abyme : un voyage au cœur des hyperviseurs recursifs 33 / 40

Page 34: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

Fonctionnalites de l’hyperviseurVirtualisation recursiveDemonstration

Optimisation du nombre de transitions

Gestion des interruptions

Masquage des interruptions lors des VM ExitsIDT configuree pour capturer et re-injecter les interruptions nonmasquables

Utilisation du VMCS shadowing

Interet : Diminution du nombre de transitions lors de VMREAD etVMWRITE des hyperviseurs virtualisesBitmaps de configuration des champs non generateurs de VM Exits

⇒ Amelioration des performances

Abyme : un voyage au cœur des hyperviseurs recursifs 34 / 40

Page 35: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

Fonctionnalites de l’hyperviseurVirtualisation recursiveDemonstration

Demo 1

3 Hyperviseurs virtualisant une distribution GNU/Linux

Execution d’instruction CPUID prouvant leur maıtrise du materiel

Machine cible

Switch Ethernet

Machine decontrôle

Abyme : un voyage au cœur des hyperviseurs recursifs 35 / 40

Page 36: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

Fonctionnalites de l’hyperviseurVirtualisation recursiveDemonstration

Demo 2

Hyperviseur l0 : protection de la carte Ethernet de debugHyperviseur l1 : verification du comportement d’un driver

Verification de la sequence d’initialisation d’un peripheriqueSi OK autorisation des lectures/ecritures dans le BAR0Si NOK blocage des lectures/ecritures dans le BAR0

OS

l1

l0

MatérielNIC FPGAModule Linux

Périphérique

Hyperviseur

Abyme : un voyage au cœur des hyperviseurs recursifs 36 / 40

Page 37: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

Plan

1 Introduction

2 Analyse et conception

3 Implementation

4 Conclusion

Abyme : un voyage au cœur des hyperviseurs recursifs 37 / 40

Page 38: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

Conclusion/perspectives

Conclusion

Implementation reussie d’un hyperviseur recursif simple

Pas de degradation significatif pour un nombre raisonnable deniveaux

MAIS performances largement en baisse pour beaucoup de niveaux

Perspectives

Optimisation du nombre de transitions :

Pas de propagation des VMRESUME

⇒ Possibilite d’enchaıner plus de niveaux sans degradation deperformances

Enrichir le modele avec les informations sur les donnees des VMCS

Abyme : un voyage au cœur des hyperviseurs recursifs 38 / 40

Page 39: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

Abyme : un voyage au cœur des hyperviseurs recursifs

Benoıt Morgan, Guillaume Averlant,Vincent Nicomette, Eric Alata

LAAS-CNRS, INSA Toulouse, Universite Toulouse III

2 juin 2015

Abyme : un voyage au cœur des hyperviseurs recursifs 39 / 40

Page 40: Abyme : un voyage au c ur des hyperviseurs récursifs - SSTIC...Abyme : un voyage au c˙ur des hyperviseurs r ecursifs Beno^ t Morgan, Guillaume Averlant, Vincent Nicomette, Eric Alata

IntroductionAnalyse et conception

ImplementationConclusion

Les sources !

Abyme : https://homepages.laas.fr/bmorgan/abyme.tgz

Demo 1 : https://youtu.be/Nax0SHUx9GQ

Demo 2 : https://youtu.be/1yz_ZUA2KGM

Abyme : un voyage au cœur des hyperviseurs recursifs 40 / 40