rvlsoft - Fotolia

Sécurité : comment Xen a pris de l’avance sur ESXi

D’importants travaux de recherche ont permis à l’hyperviseur ouvert de prendre une sérieuse avance sur son concurrent propriétaire en matière de sécurité des environnements virtualisés. Le fruit de son ouverture et des investissements d’Intel et de Bitdefender, notamment.

C’est un important pas en avant dont Bitdefender a annoncĂ© l’accomplissement fin juillet. A cette date, l’éditeur a en effet revendiquĂ© le dĂ©veloppement « d’une technologie exclusive d’introspection de la mĂ©moire basĂ©e sur l’hyperviseur Â».

Les observateurs attentifs du domaine de la sĂ©curitĂ© des environnements virtuels l’auront relevĂ© : le sujet n’est pas exactement nouveau. En juillet 2010, Matt Northam, expert technique sĂ©curitĂ© et conformitĂ© chez VMware pour l’Europe du Nord, faisait Ă©tat de capacitĂ©s comparables pour les API vSafe de son hyperviseur : celles-ci permettaient dĂ©jĂ  l’inspection du trafic rĂ©seau avant qu’il n’arrive Ă  la machine virtuelle ; elle devaient Ă©galement permettre d’inspecter mĂ©moire vive et stockage de l’extĂ©rieur, pour « par exemple dĂ©tecter un rootkit directement dans la mĂ©moire vive alors mĂŞme que le système d’exploitation ne sait pas qu’il est attaquĂ© Â».

Une promesse de longue date

Une jolie promesse, alléchante sur le papier, que VMware n’a toutefois pas complètement concrétisée.

Dans un entretien tĂ©lĂ©phonique, Rares Stefan, directeur de la division Solutions d’entreprises de Bitdefender explique : l’introspection du stockage est bien lĂ , avec ce que l’on appelle dĂ©sormais vShield, et l’introspection du trafic rĂ©seau a Ă©tĂ© rĂ©pliquĂ©e dans NSX, mais pour « l’introspection de la mĂ©moire vive et des tâches, il n’y a jamais eu d’API de lancĂ©e Â». Et Rares Stefan n’est pas Ă©tranger au domaine : il travaillait chez Third Brigade avant son rachat en mai 2009 par TrendMicro. Third Brigade venait alors d’annoncer une solution de sĂ©curisation des environnements virtualisĂ©s tirant profit des API vSafe.

En 2010, Matt Northam expliquait lui que « l’architecture de Xen, avec la machine virtuelle du Dom0, ne permet pas de proposer une API de type vSafe directement dans l’hyperviseur Â». De quoi laisse penser qu’il y avait lĂ  une impasse.

Ironie du sort, c’est bien avec Xen que se concrĂ©tise aujourd’hui l’introspection de la mĂ©moire vive, et pas avec ESXi. De quoi faire dire Ă  Rares Stefan qu’en la matière, « Xen est largement en avance Â».

Le fruit de 5 ans d’efforts pour Mihai Dontu et d’Andrei Lutas, « les deux chercheurs au cĹ“ur de ce projet Â» chez Bitdefender, explique Rares Stefan.

Et Mihai Dontu d’ajouter que Xen dispose aujourd’hui de capacitĂ©s d’introspection de la mĂ©moire « matures et peu intrusives Â», grâce aux contribution de l’éditeur, mais Ă©galement Ă  celles d’Intel ou encore plus largement de la communautĂ©.

Des défis importants

Mais pourquoi Xen ? Tout d’abord, parce que l’hyperviseur est open source. Dans une prĂ©sentation, Mihai Dontu, chef de projet technique chez Bitdefender, souligne en outre que Xen est « relativement facile Ă  modifier Â», profite d’une base de code « mature Â», et d’une communautĂ© très active. S’il fallait l’illustrer, rappelons que Xen est la base de… µ-Xen, le micro-hyperviseur que Bromium utilise pour sĂ©curiser les postes de travail.

Mais surtout, Xen est au cœur de nombreuses infrastructures Cloud comme celles d’Amazon, de Rackspace, d’Oracle. Et on le trouve bien sûr dans CloudStack et OpenStack.

Cela ne rend toutefois pas l’introspection de la mĂ©moire plus aisĂ©e. Plusieurs dĂ©fis bien connus s’imposent, Ă  commencer par l’écart sĂ©mantique : comment corrĂ©ler des accès en mĂ©moire vive avec des « structures de donnĂ©es qui ont un sens pour le système d’exploitation Â» de la machine virtuelle ? « Quels objets sont au sein de la machine virtuelle ? Quelles opĂ©rations sont rĂ©alisĂ©es au sein de la machine virtuelle ? Â» relève Andrei Lutas, directeur de recherche sĂ©nior Introspection chez Bitdefender.

Surtout, ce travail de corrélation doit pouvoir se faire rapidement, sans dégrader les performances ni de l’hôte ni des machines virtuelles qu’il abrite. Des travaux de recherche universitaires ont montré que cette question peut trouver des solutions, même avec des outils qui n’ont rien de particulièrement neuf, comme LibVMI. Mais Bitdefender s’appuie sur une librairie dérivée de LibVMI.

Dans un e-mail Ă  la liste de diffusion des dĂ©veloppeurs Xen, Razvan Cojocaru, lui aussi de Bitdefender explique que l’éditeur s’appuie sur Libbdvmi pour rĂ©pondre Ă  deux problèmes : rĂ©duire l’adhĂ©rence Ă  l’OS de la machine virtuelle – LibVMI collecte des informations Ă  son sujet via des outils Python – et Ă  des librairies externes comme glib, dont la librairie de Bitdefender parvient Ă  se passer.

Résoudre l’écart sémantique

Le code source de Libbdvmi est accessible publiquement sur l’entrepôt de code source GitHub de Rzvan Cojocaru. Mais c’est loin d’être la seule contribution de Bitdefender à la communauté Xen pour l’introspection de la mémoire basée sur l’hyperviseur.

Dans un entretien tĂ©lĂ©phonique, Andrei Lutas donne un aperçu des travaux de l’éditeur : « Il y a beaucoup de recherche acadĂ©miques sur l’écart sĂ©mantique. Dans notre cas, nous utilisons principalement la connaissance du système d’exploitation et la couplons avec la logique d’introspection. Nous utilisons des signatures invariables pour identifier des structures clĂ©s des systèmes d’exploitation, ce qui revient Ă  modĂ©liser des structures spĂ©cifiques au système d’exploitation Â». Ce qui revient Ă  « transposer certains aspects du système d’exploitation au sein de la logique d’introspection Â». D’autres, relève Andrei Lutas, prĂ©fère se reposer sur des Ă©lĂ©ments de code injectĂ©s dans la VM, comme des pilotes par exemple, mais Bitdefender a fait le choix de ne pas interfĂ©rer avec la VM.

L’un des points de l’approche de l’éditeur rĂ©side les extensions du sous-système de gestion des Ă©vĂ©nements de la VM, VM events, dĂ©veloppĂ©es par l’équipe de Mihai Dontu : « cette couche est utilisĂ©e pour communiquer avec l’hyperviseur Â», explique Andrei Lutas, « et pour accĂ©der Ă  des fonctions de bas niveau comme cartographier la mĂ©moire, interroger l’état du CPU et de ses registres, etc. Â»

De nombreuses contributions publiques

Pour aboutir Ă  cela, les Ă©quipes de Bitdefender ont apportĂ© d’importantes contributions Ă  Xen. Et cela commence, comme l’explique Andrei Lutas, par une capacitĂ© d’émulation d’instruction et d’empĂŞchement de modification de la mĂ©moire : « les rĂ©sultats de l’instruction ne sont pas effectivement Ă©crits en mĂ©moire. Cela permet d’empĂŞcher par exemple un rootkit de modifier une fonction du système d’exploitation. Celui-ci conserve donc son intĂ©gritĂ© Â».

La seconde est tout aussi importante pour l’introspection, renvoie encore Ă  l’écart sĂ©mantique et aux performances, en attachant l’état de la VM Ă  ses Ă©vĂ©nements mĂ©moire, ou plutĂ´t de violation des protections EPT : Â« avant, il fallait interroger l’hyperviseur pour avoir ces informations sur l’état du vCPU, ce qui Ă©tait extrĂŞmement lent Â». Mihai Dontu prĂ©cise que les correctifs apportĂ©s fournissent en outre des informations sur des Ă©vĂ©nements supplĂ©mentaires. A cela s’en ajoutent d’autres, permettant de cacher des contenus de la mĂ©moire, ou encore d’interdire certaines Ă©critures dans les registres Ă  partir de la VM.

L’un des enjeux, pour l’éditeur, consiste Ă  n’avoir aucune adhĂ©rence avec le système d’exploitation des VM, « ce qui permet un dĂ©ploiement rapide, au niveau de l’hyperviseur Â», souligne Rares Stefan. Et Andrei Lutas d’ajouter que ce dĂ©ploiement permet « de dĂ©tecter Ă  la voler les VM qui ont besoin de protection et de la leur fournir immĂ©diatement Â», sans rien installer manuellement sur les machines virtuelles.

Aujourd’hui, Bitdefender entend employer cette technologie sur tous les terminaux supportant la virtualisation – client lourd et terminaux mobiles – et bien sûr les infrastructures Cloud pour protéger notamment, et en particulier, contre les attaques avancées persistantes.

Pour approfondir sur Sécurité des environnements virtuels et des conteneurs