SSTIC 2017 – Recherche de vulnérabilités système dans les hyperviseurs avec CrashOS

Olivier Chatail Conférences

Le SSTIC

Le SSTIC (Symposium sur la sécurité des technologies de l’information et des communications)  est une conférence Française qui s’est déroulée du 7 au 9 juin 2017 dans la ville de Rennes pour sa 15e édition.

Des consultants de Devoteam y ont participé et ont souhaité partager des résumés sur les sujets suivants :

  • WSUS pendu – Romain Coltel & Yves Le Provost
  • Désobfuscation binaire : Reconstruction de fonctions virtualisées – Jonathan Salwan, Marie-Laure Potet & Sébastien Bardin
  • CrashOS : Recherche de vulnérabilités système dans les hyperviseurs – Anaïs Gantet
  • Binacle : indexation « full-bin » de fichiers binaires – Guillaume Jeanne

 

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

Anaïs Gantet, de Airbus Group Innovations est venue présenter ses travaux sur la sécurité des hyperviseurs.

Ils se concentrent sur la recherche de vulnérabilités dans les hyperviseurs via des machines virtuelles entièrement maîtrisées.
L’expérimentation présentée ici se limite pour l’instant à la virtualisation des processeurs Intel.

Pour rappel, l’hyperviseur a pour responsabilité de :

  • Virtualiser le processeur (exécution ou interception des instructions)
  • Virtualiser les accès mémoire
  • Virtualiser les périphériques

Ce composant est crucial sur le plan de la sécurité car sa base de code est complexe et une exploitation de vulnérabilités à partir d’une VM peut avoir des conséquences sur toutes les VMs de l’hôte comme le schéma proposé le suggère.

Illustration du risque lié à la corruption d’un hyperviseur par Anaïs Gantet

Pour l’évaluation des hyperviseurs, une VM from scratch a été réalisée afin d’avoir un maximum de contrôle sur les instructions exécutées.
Avant d’arriver à cette solution les options suivantes ont été considérées :

  • Windows, Linux : complexité de la communication avec le matériel
  • Simple OS, OSv : peu adapté au périmètre de test souhaité
  • VESPA : limitation à la recherche de failles de périphériques

 

La VM CrashOS

CrashOS est né de cette réflexion et consiste en un OS minimaliste développé en C et assembleur Intel.

Les tests ont eu lieu sur Ramooflax (hyperviseur interne Airbus), VMware et Xen.
CrashOS réalise une batterie de tests à son démarrage, avec comme objectif de faire planter/crasher l’hyperviseur.

Le système d’exploitation fournit des interfaces pour les fonctionnalités suivantes :

  • Accès à la mémoire physique
  • Protection mémoire
  • Interruptions
  • Périphériques
  • Para-virtualisation

Les tests visent des fonctionnalités marginales ou atypiques, ils ciblent par exemple des blocs de parsing et d’émulation.
L’approche adaptée est qualitative (pas de fuzzing) et les tests sont architecturés très simplement :

  • Initialisation (sauvegarde de l’état courant, préparation du contexte)
  • Action & génération de logs
  • Restauration de l’état précédent

 

Expérimentations

Comme il peut être observé sur le tableau proposé par Anaïs Gantet, VMWare semble robuste face à ces tests tandis que la solution « maison » Ramooflax montre quelques faiblesses.

Premiers résultats de CrashOS par Anaïs Gantet

Les résultats actuels sont encore assez limités car ils ne concernent qu’un nombre réduit d’hyperviseur et n’ont pas amené à de potentielles exploitations (hors reproduction de CVE).

Cependant la démarche est aisément reproductible d’hyperviseur en hyperviseur et l’avancée de ces travaux peut avoir des résultats surprenants.

Quelques exemples de tests ont d’ailleurs été détaillés après ce tableau de résumé :

  • Buffer overflow sur le port série COM 1 sur Ramooflax
  • Conditions non vérifiées pour FAR JUMP (instruction permettant le passage de ring 3 vers ring 0) : Xen HVM vulnérable comme l’indique la CVE-2014-8595.

Bien qu’étant encore très jeune, le projet est très prometteur et pourrait à terme permettre d’identifier les vecteurs d’instabilité pour chaque hyperviseur.
Merci à Anaïs Gantet pour cette présentation et la qualité de son travail.

Liens et références :