33
CrashOS Recherche de vulnérabilités système dans les hyperviseurs SSTIC 2017 Anaïs GANTET - Airbus Group Innovations 8 juin 2017

CrashOS Recherche de vulnérabilités système dans les

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CrashOS Recherche de vulnérabilités système dans les

CrashOSRecherche de vulnérabilités système dans les hyperviseurs

SSTIC 2017

Anaïs GANTET - Airbus Group Innovations

8 juin 2017

Page 2: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Plan

1 CrashOS : motivations

2 CrashOS : présentation

3 CrashOS : recherche de vulnérabilités et résultats

8 juin 2017 2 SSTIC

Page 3: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Plan

1 CrashOS : motivations

2 CrashOS : présentation

3 CrashOS : recherche de vulnérabilités et résultats

8 juin 2017 3 SSTIC

Page 4: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

La virtualisation en bref

But : faire fonctionner plusieurs systèmes d’exploitation (OS) sur une même machinephysique

8 juin 2017 4 SSTIC

Page 5: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

La virtualisation en bref

But : faire fonctionner plusieurs systèmes d’exploitation (OS) sur une même machinephysique

8 juin 2017 4 SSTIC

Page 6: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

La virtualisation en bref

But : faire fonctionner plusieurs systèmes d’exploitation (OS) sur une même machinephysique

8 juin 2017 4 SSTIC

Page 7: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Rôle d’un hyperviseur

Fournir un environnement équivalentVirtualisation du processeur (Intel)

Laisser s’exécuter les instructions non sensiblesIntercepter et virtualiser les instructions sensibles

Virtualisation de l’accès aux ressources mémoire

Virtualisation des périphériques

Code complexe

Intervention niveau système

8 juin 2017 5 SSTIC

Page 8: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Risques de sécurité

Sans virtualisation :isolation physique

Avec virtualisation :isolation logicielle

8 juin 2017 6 SSTIC

Page 9: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Risques de sécurité

Sans virtualisation :isolation physique

Avec virtualisation :isolation logicielle

ProblématiqueLes hyperviseurs actuels sont-ils robustes ?

8 juin 2017 6 SSTIC

Page 10: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Notre approche

Recherche par analyse comportementaleConstruire une VM à configuration système atypique

Lancer des tests mettant en jeu un traitement de l’hyperviseur

Observer le comportement des hyperviseurs

Possibilités de mise en œuvreWindows, Linux : contrôle partiel de la communication avec le matériel

Simple Operating System, OSv, etc. : peu adaptés à la recherche de failles

VESPA : outil se limitant à la recherche de failles dans les périphériques

Solution retenue : proposer un outil adapté aux tests des hyperviseurs

8 juin 2017 7 SSTIC

Page 11: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Plan

1 CrashOS : motivations

2 CrashOS : présentation

3 CrashOS : recherche de vulnérabilités et résultats

8 juin 2017 8 SSTIC

Page 12: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

CrashOS : Le projet

OS minimaliste, open-source (licence GPLv2)

Langage C et assembleur (Intel)

2 mois de développement (API)

Lancé sur Ramooflax, VMware, Xen (HVM)

8 juin 2017 9 SSTIC

Page 13: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

8 juin 2017 10 SSTIC

Page 14: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

CrashOS : Core (API)

Fonctionnalités systèmeAccès à la mémoire physique

Mécanisme de protection mémoire

Gestion des interruptions

Communication avec les périphériques

Support de la paravirtualisation

Exemple :

8 juin 2017 11 SSTIC

Page 15: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

CrashOS : Core (API)

Fonctionnalités systèmeAccès à la mémoire physique

Mécanisme de protection mémoire

Gestion des interruptions

Communication avec les périphériques

Support de la paravirtualisation

Exemple :

Fonctionnalités de lancement des testsMacro DECLARE_TEST(test_x) sur chaque test

Lancement en série des tests répertoriés

Affichage de messages à l’écran ou sur le port série

8 juin 2017 11 SSTIC

Page 16: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

CrashOS : Principe de fonctionnement

8 juin 2017 12 SSTIC

Page 17: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

CrashOS : Format d’un test

Fonction d’initialisationSauvegarde de l’état courantDéfinition d’un contexte particulier

Fonction du test en lui-mêmeExécution de l’action à déclencherAffichage de logs adaptés au test

Fonction de restaurationRéinitialiser l’état sauvegardé

8 juin 2017 13 SSTIC

Page 18: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Plan

1 CrashOS : motivations

2 CrashOS : présentation

3 CrashOS : recherche de vulnérabilités et résultats

8 juin 2017 14 SSTIC

Page 19: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Démarche d’élaboration d’attaque

Élaboration de tests pertinentsCompréhension poussée des rouages duprocesseur Intel

Bonne connaissance du rôle des hyperviseurs

Points critiques identifiés (CVE)Désassemblage des instructions

Émulation des instructions sensibles

Virtualisation ou émulation des périphériques

etc.

8 juin 2017 15 SSTIC

Page 20: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Quelques cas de tests dans CrashOS

8 juin 2017 16 SSTIC

Page 21: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Un premier exemple : écriture d’un grand buffer sur le port série COM 1

8 juin 2017 17 SSTIC

Page 22: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Un premier exemple : écriture d’un grand buffer sur le port série COM 1

8 juin 2017 17 SSTIC

Page 23: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Un premier exemple : écriture d’un grand buffer sur le port série COM 1

Buffer overflow et corruption mémoire de la structure info de Ramooflax

8 juin 2017 18 SSTIC

Page 24: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Un premier exemple : écriture d’un grand buffer sur le port série COM 1

Analyse du bug : Monitor panic de Vmware lorsque @PTE mal configurée

8 juin 2017 19 SSTIC

Page 25: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Un deuxième exemple : changement de privilège (FAR JMP)

Rappels : fonctionnement du FAR JMP

8 juin 2017 20 SSTIC

Page 26: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Un deuxième exemple : changement de privilège (FAR JMP)

Rappels : fonctionnement du FAR JMP

8 juin 2017 20 SSTIC

Page 27: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Un deuxième exemple : changement de privilège (FAR JMP)

Rappels : fonctionnement du FAR JMP

Remarque : transfert réussi seulement si les paramètres respectent plus d’unevingtaine de conditions

But de l’attaque : s’assurer que les hyperviseurs vérifient bien chacune desconditions (inspiré de CVE-2014-8595 - Xen HVM)

8 juin 2017 20 SSTIC

Page 28: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Un deuxième exemple : changement de privilège (FAR JMP)

8 juin 2017 20 SSTIC

Page 29: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Un deuxième exemple : changement de privilège (FAR JMP)

Cas de Xen (HVM) :

8 juin 2017 21 SSTIC

Page 30: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Un deuxième exemple : changement de privilège (FAR JMP)

Cas de VMware :

8 juin 2017 22 SSTIC

Page 31: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Divers résultats

Crashs de la VMVMware et pagination

Monitor panic VERIFYVMware et périphériques

Monitor panic VERIFYMonitor panic NOT_IMPLEMENTEDMonitor panic NOT_REACHED

VMware et nested virtualizationMonitor panic EPT Misconfiguration

KVM : KVM internal error. Suberror : 3

AutresRamooflax : Contrôle de la VM (buffer UART)

Ramooflax : Mauvaise résolution d’adresse (V8086)

8 juin 2017 23 SSTIC

Page 32: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Conclusion et perspectives

CrashOS aujourd’huiOpensource

OS minimaliste configurable

Rédaction simple d’attaques système sur les hyperviseurs

Premiers résultats sous VMware et Ramooflax

Perspectives de l’outilDe nouveaux tests à élaborer

De nouvelles fonctionnalités à implémenter (64 bit, nested virtualization, etc.)

D’autres hyperviseurs à tester (Xen PV, KVM, Virtualbox, etc.)

8 juin 2017 24 SSTIC

Page 33: CrashOS Recherche de vulnérabilités système dans les

CrashOS : Recherche de vulnérabilités système dans les hyperviseurs

Merci pour votre attention

Des questions?

https://github.com/airbus-seclab/crashos

[email protected]

8 juin 2017 25 SSTIC