virtualisation & sécurité vm
TRANSCRIPT
-
8/2/2019 virtualisation & scurit vm
1/64
HERV SCHAUER CONSULTANTSHERV SCHAUER CONSULTANTSCabinet de Consultants en Scurit Informatique depuis 1989Cabinet de Consultants en Scurit Informatique depuis 1989Spcialis sur Unix, Windows, TCP/IP et InternetSpcialis sur Unix, Windows, TCP/IP et Internet
OSSIR Groupe SUROSSIR Groupe SUR
8 juillet 20088 juillet 2008
VMware et scuritVMware et scurit
Julien RaeisJulien Raeis Nicolas CollignonNicolas Collignon
mailto:[email protected]:[email protected]:[email protected]:[email protected] -
8/2/2019 virtualisation & scurit vm
2/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite22/64/64
AgendaAgenda
Rappels sur la virtualisationMesures de scurit intgres VMware
Virtualisation et DMZ
Revue des vulnrabilits
Retour d'exprience HSC
-
8/2/2019 virtualisation & scurit vm
3/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite33/64/64
Rappels sur la virtualisation
-
8/2/2019 virtualisation & scurit vm
4/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite44/64/64
DfinitionsDfinitions
Virtuel : Se dit des lments (terminaux, mmoire...) d'unsystme informatique considrs comme ayant des proprits
diffrentes de leurs caractristiques physiques - GrandDictionnaire Encyclopdique Larousse
Virtualisation : abstraction des ressources d'un systme
informatique.
-
8/2/2019 virtualisation & scurit vm
5/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite55/64/64
HistoriqueHistorique
Concept introduit dans les annes 60But : partitionner les ressources des coteux mainframes de l'poque
IBM M44/44X, naissance du terme pseudo-machine
Premire implmentation de machines virtuelles
IBM CP-40Systme tournant sur S/360-40
Perte d'intrt dans les annes 80
Dport des applications sur des clients et serveurs x86
Architecture bon march Mais cots d'infrastructure physique levs, manque de protection encas de panne, maintenance des postes de travail coteuse, etc.
-
8/2/2019 virtualisation & scurit vm
6/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite66/64/64
Virtualisation de l'architecture x86Virtualisation de l'architecture x86
ProblmeArchitecture non-prvue pour la virtualisation
17 instructions ne peuvent tre virtualises simplement
1999 : VMware propose une solutionInterception ( trap ) et conversion de ces instructions
Excution directe des autres instructions par le processeur
-
8/2/2019 virtualisation & scurit vm
7/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite77/64/64
ChronologieChronologie
~1960IBM M44/44X
1999VMware
Workstation
2001Microsoft Virtual PC
VMware ESX
2003Xen
(para-virtualisation)
26 juin 2008Microsoft Hyper-V
2007KVM intgr
Linux
2005 et 2006Extensions VT-x
et AMD-V
-
8/2/2019 virtualisation & scurit vm
8/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite88/64/64
Virtualisation(s) - 1/6Virtualisation(s) - 1/6
Au moins 7 types diffrents !mulation
Virtualisation partielle
Virtualisation complte
Para-virtualisationVirtualisation native
Virtualisation par zones
Virtualisation applicative
etc.
-
8/2/2019 virtualisation & scurit vm
9/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite99/64/64
Virtualisation(s) - 2/6Virtualisation(s) - 2/6
mulationSimulation intgrale du matriel
QEMU, PearPC, Bochs
Principe des mulateurs des vieux ordinateurs/consoles de jeu
Amiga, Atari, etc.
Virtualisation partielle
Partage de ressources matrielles par abstraction
Implmentation rpandueAdressage virtuel des processus
Linux, Windows, etc.
-
8/2/2019 virtualisation & scurit vm
10/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite1010/64/64
Virtualisation(s) - 3/6Virtualisation(s) - 3/6
Excution classiqueApplications en Ring 1, 2 ou 3Systme d'exploitation en Ring 0
Excution indpendante
Couche matrielle
Systmed'exploitation (OS)
Applications
Ring 0
Ring 3
Ring 1
Ring 2
-
8/2/2019 virtualisation & scurit vm
11/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite1111/64/64
Virtualisation(s) - 4/6Virtualisation(s) - 4/6
Virtualisation complte
Applications en Ring 3
Systme invit en Ring 1
En Ring 0
Systme d'exploitation hteMoniteur de machines virtuelles
Technique de traduction binaire
la vole par VMware parexemple
Traduit les instructions non-virtualisables Couche matrielle
OS hte + VMM
OS invit
Applications
Ring 0
Ring 3
Ring 1
Ring 2
-
8/2/2019 virtualisation & scurit vm
12/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite1212/64/64
Virtualisation(s) - 5/6Virtualisation(s) - 5/6
Para-virtualisation
Applications en Ring 3
En Ring 0
Systme d'exploitation modifi pourraliser des appels ( hypercalls )
directement la couche devirtualisation
Couche de virtualisation tournantdans l'OS hte
Les instructions non-virtualisables
sont directement traduites par lebiais d'appels spciaux
Couche matrielle
OS invit modifi
Applications
Ring 0
Ring 3
Ring 1
Ring 2
Hyperviseur
-
8/2/2019 virtualisation & scurit vm
13/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite1313/64/64
Virtualisation(s) - 6/6Virtualisation(s) - 6/6
Virtualisation native
Applications en Ring 3
En Ring 0
Systme d'exploitation invit NON-modifi
Couche de virtualisation tourne sous le mode Ring 0
Traitement systmatique desinstructions problmatiques par lacouche de virtualisation
Extensions des processeurs jouentle rle des hypercalls
tat des invits stock dans desstructures ddies du mode racine Couche matrielle
OS invit
Applications
Ring 0
Ring 3
Ring 1
Ring 2
HyperviseurMode root
-
8/2/2019 virtualisation & scurit vm
14/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite1414/64/64
AgendaAgenda
Mesures de scuritintgres VMware
-
8/2/2019 virtualisation & scurit vm
15/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite1515/64/64
Deux types de produitsDeux types de produits
Deux types de produits
Hbergs ( hosted )
VMware Workstation, Server, Player, Fusion
Moniteur de machines virtuelles tourne sur l'OS hte
Hyperviseur
VMware ESX et ESXi
VMKernel pour le rapport avec le matriel et la virtualisation
Systme Linux pour le charger en mmoire, ensuite virtualis
-
8/2/2019 virtualisation & scurit vm
16/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite1616/64/64
VMware ESXVMware ESX
Avant la 3.0
Dmarrage sur un systme Linux comme support
Chargement de modules propritaires VMware
Moniteur de machines virtuelles
Gestion du systme de fichiers VMFS
Depuis la 3.0
Dmarrage sur un systme Linux
Chargement de modules propritaires
Pivot sur VMkernel qui prend la mainChargement des pilotes matriels par VMkernel (et non Linux)
Virtualisation du systme Linux sous-jacent ( Service console )
Lancement du moniteur de machines virtuelles, pilote VMFS, etc.
-
8/2/2019 virtualisation & scurit vm
17/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite1717/64/64
Mcanismes de scurit - 1/3Mcanismes de scurit - 1/3
Authentification et contrle d'accs
Utilisation de PAM pour VMware Server et ESX sous Linux
Interfaage possible avec Active Directory
Communications chiffres
Entre VMware Infrastructure Client/Server Console et le serveurIsolation entre hte et invits
Par l'hyperviseur, au niveau systme et rseau (virtuel, bien sr)
Bientt : VMSafe
API de communication avec l'hyperviseur
Prochaine version d'ESX
Tellement sr que VMware demande un NDA pour avoir des infos
-
8/2/2019 virtualisation & scurit vm
18/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite1818/64/64
Mcanismes de scurit - 2/3Mcanismes de scurit - 2/3
Options de configuration (pas toujours) documentes
http://sanbarrow.com/vmx.html
Notamment, pour la scurisation :
Restrictions d'authentification par PAM
Isolation.tools.copy.enable = FALSE # Copierisolation.tools.paste.enable = FALSE # Coller
isolation.tools.hgfs.disable = TRUE # Dossiers partagsisolation.tools.dnd.disable = TRUE # Drag'n'Drop...
#%PAM-1.0auth required pam_unix.so shadow nullokaccount required pam_listfile.so item=group sense=allow
file=/etc/vmware/vmwaregroup onerr=failaccount required pam_unix.so
http://sanbarrow.com/vmx.htmlhttp://sanbarrow.com/vmx.html -
8/2/2019 virtualisation & scurit vm
19/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite1919/64/64
Mcanismes de scurit - 3/3Mcanismes de scurit - 3/3
Service console de VMware ESX
Pare-feu par l'outil esxcfg-firewall
Bas sur netfilter/iptables
MAIS ! Interdiction de rajouter des rgles manuellement sous peine deperdre le support VMware
Autres mcanismes d'ESX
Propagation du bit NX aux processeurs virtuels
Dsactivation de l'Hyper-threading
Systme de rles (type RBAC) pour les utilisateurs de VIProtections rseau niveau 2
Segmentation rseau par VLANs (sur les commutateurs virtuels parexemple)
-
8/2/2019 virtualisation & scurit vm
20/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite2020/64/64
Revue des vulnrabilits
-
8/2/2019 virtualisation & scurit vm
21/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite2121/64/64
Historique des avis de scuritHistorique des avis de scurit
Diffusion de correctifs de scurit
De 2003 2005
Pas de centre de scurit VMware
10 vulnrabilits corriges
Puis mise en place d'un systme d'alertes et d'avis
2006 : 10 avis pour 17 vulnrabilits
2007 : 6 avis pour 25 vulnrabilits
2008 : 10 avis pour pour 31 vulnrabilits (au 16 juin 2008)
Avis touchent la fois
Les produits VMware
Les paquets tiers (Service Console de ESX Server)
-
8/2/2019 virtualisation & scurit vm
22/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite2222/64/64
Rcapitulatif des vulnrabilitsRcapitulatif des vulnrabilits
4 sorties d'isolation
Depuis l'invit vers l'hte
3 ncessitent des conditions particulires, non-prsentes par dfaut
2 sont uniquement valables sur VMware Workstation et PlayerQuelques lvations de privilges
Dans l'invit avec les VMware Tools notamment
Dans l'hte par des produits tiers ou vmware-authd
Anne Total ESX Virtual isationhberge
ProduitsVMware
Produits tiers Sortie de l'isolation
2003 3 3 1 0 3 0
2004 6 5 2 3 3 0
2005 2 0 2 2 0 1
2006 17 16 2 7 10 0
2007 25 23 8 8 17 1
2008 31 25 14 8 23 2
-
8/2/2019 virtualisation & scurit vm
23/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite2323/64/64
Retour d'exprience
-
8/2/2019 virtualisation & scurit vm
24/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite2424/64/64
Expriences HSCExpriences HSC
Audits sur plates-formes de virtualisation
ESX Server uniquement
Audit de configuration
Audit d'architecture
Intgration de la virtualisation en DMZTravaux de recherche
Communications avec l'hyperviseur
Protocoles de communication
Gestion des sessionsLes Shared Folders
Comment exploiter une vulnrabilit dans l'hyperviseur
-
8/2/2019 virtualisation & scurit vm
25/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite2525/64/64
Configuration - 1/2Configuration - 1/2
Correctifs de scurit
Pas d'automatisation
Dploiement rgulier tout de mme
Service console Minimisation des services dploys
Outils de supervision CIM
Activation du SNMP
Serveur HTTP de gestion dsactivActivation du pare-feu
Restriction du service SSH
-
8/2/2019 virtualisation & scurit vm
26/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite2626/64/64
Configuration - 2/2Configuration - 2/2
VMware Virtual Center
Cration d'utilisateurs et rles prcis
Administrateurs de machines virtuelles (avec droit de redmarrage)
Administrateurs ESX (accs la configuration des VMs)
Partage des ressources strict pour viter les dnis de service
Systmes invits
Dploiement des VMware Tools (minimiss)
Considrs comme des machines physiquesOptions d'isolation actives
Copier/coller, Drag'n'Drop, etc.
Suppression des priphriques virtuels inutiles
-
8/2/2019 virtualisation & scurit vm
27/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite2727/64/64
Architecture - 1/2Architecture - 1/2
Sparation stricte de la console de service
Pas bien !
Bien !
-
8/2/2019 virtualisation & scurit vm
28/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite2828/64/64
Architecture - 2/2Architecture - 2/2
Autres possibilits d'amlioration
Pare-feu de primtre
Pare-feu virtuel (cf. plus loin)
Utilisation de VLANs
Dans ce cas, premire architecture vue prcdemment peut tre OK
Trois niveaux :
Invits
Commutateurs virtuels
Commutateur physique la sortie du rseau virtuel
Dans tous les cas, filtrer les entres/sorties de la console de servicePoint critique : hte compromis == architecture compromise
-
8/2/2019 virtualisation & scurit vm
29/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite2929/64/64
Intgration en DMZ - 1/5Intgration en DMZ - 1/5
Trois possibilits
Chacune offre un degr supplmentaire de virtualisation :
1. Virtualisation de chaque DMZ
2. Virtualisation globale de toute les DMZ avec segmentation
3. Virtualisation globale, pare-feu inclus
-
8/2/2019 virtualisation & scurit vm
30/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite3030/64/64
Intgration en DMZ - 2/5Intgration en DMZ - 2/5
Schma classique
-
8/2/2019 virtualisation & scurit vm
31/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite3131/64/64
Intgration en DMZ - 3/5Intgration en DMZ - 3/5
-
8/2/2019 virtualisation & scurit vm
32/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite3232/64/64
Intgration en DMZ - 4/5Intgration en DMZ - 4/5
-
8/2/2019 virtualisation & scurit vm
33/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite3333/64/64
Intgration en DMZ - 5/5Intgration en DMZ - 5/5
-
8/2/2019 virtualisation & scurit vm
34/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite3434/64/64
Un peu de recherche
L i t ti
-
8/2/2019 virtualisation & scurit vm
35/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite3535/64/64
Les interrogationsLes interrogations
Comment l'hyperviseur peut-il obtenir des informations sur les
systmes virtualiss ?Adresses MAC
Adresses IP
...
Par o passent les I/O sur les Shared Folders ?
Copy/paste, DND, obscurit, ...
-
8/2/2019 virtualisation & scurit vm
36/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite3636/64/64
Backdoor : pourquoi ?Backdoor : pourquoi ?
Ncessit de communiquer entre l'invit et l'hyperviseur
Doit fonctionner sans que l'invit puisse tablir des connexionsrseaux vers l'hyperviseur
Qui ?
Driver HGFS
VMware Tools
API Vix
...
B kd
-
8/2/2019 virtualisation & scurit vm
37/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite3737/64/64
BackdoorBackdoor
Terminologie non fantasme :)
2 ports I/O0x5658 VX commandes
0x5659 VY lectures / critures
$ strings vmware-vmx | grep -i backdoor | wc -l23
B kd th tifi ti ?B kd th tifi ti ?
-
8/2/2019 virtualisation & scurit vm
38/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite3838/64/64
Backdoor : authentification ?Backdoor : authentification ?
Qui peut utiliser la backdoor depuis l'invit ?
Le kernel (ex: hgfs.sys)
Les applications (ex: VmwareHgfsClient.exe)
Aucun point de centralisation dans l'invitImpossible de dterminer les droits du client
Du point de vue de l'hyperviseur :
root = nobody
SYSTEM = Invit
B kd tili ti 86B kd tili ti 86
-
8/2/2019 virtualisation & scurit vm
39/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite3939/64/64
Backdoor : utilisation sur x86Backdoor : utilisation sur x86
Paramtres des commandes passs par les registres
Lecture (in) ou criture (out) sur les 2 ports d'I/O
Registre Contenu
eax Signature VMXh
ebx Argument spcifique la commande
ecx Commande
edx Descripteur de canal (Channel handle)
esiediebp
Dpend du type de commandeVX ou VY
movl $0x00005658, %edx /* VX */
movl $0xffff000a, %ecx
movl $0xa9b2a797, %ebx
movl $0x564d5868, %eax /* VMXh */
inl (%dx), %eax
B kd tili ti 86B kd tili ti 86
-
8/2/2019 virtualisation & scurit vm
40/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite4040/64/64
Backdoor : utilisation sur x86Backdoor : utilisation sur x86
C:\temp> vmrpc -v call "info-get guestinfo.ip"io[c] ebx=c9435052 ecx=0000001e edx=ffff5658 esi=00000000 edi=00000000 ebp=00000000
ebx=c9435052 ecx=00010000 edx=00050000 esi=9c0eefdb edi=7d721754 ebp=00000000 ==> 1io[c] ebx=00000015 ecx=0001001e edx=00055658 esi=9c0eefdb edi=7d721754 ebp=00000000
ebx=00000015 ecx=00810000 edx=00055658 esi=9c0eefdb edi=7d721754 ebp=00000000 ==> -127io[w] ebx=00010000 ecx=00000015 edx=00055659 esi=003d23cf edi=7d721754 ebp=9c0eefdb
ebx=00010000 ecx=00000000 edx=00055659 esi=003d23e4 edi=7d721754 ebp=9c0eefdb ==> 1io[c] ebx=00000015 ecx=0003001e edx=00055658 esi=9c0eefdb edi=7d721754 ebp=00000000
ebx=00000009 ecx=00830000 edx=00010000 esi=9c0eefdb edi=7d721754 ebp=00000000 ==> -125io[r] ebx=00010000 ecx=00000009 edx=00055659 esi=9c0eefdb edi=003d2510 ebp=7d721754
ebx=00010000 ecx=00000000 edx=00055659 esi=9c0eefdb edi=003d2519 ebp=7d721754 ==> 1io[c] ebx=00000001 ecx=0005001e edx=00055658 esi=9c0eefdb edi=7d721754 ebp=00000000
ebx=00000001 ecx=00010000 edx=00055658 esi=9c0eefdb edi=7d721754 ebp=00000000 ==> 1==> 1 192.168.0.11
io[c] ebx=00000000 ecx=0006001e edx=00055658 esi=9c0eefdb edi=7d721754 ebp=00000000ebx=00000000 ecx=00010000 edx=00055658 esi=9c0eefdb edi=7d721754 ebp=00000000 ==> 1
B kd tili tiBackdoor : utilisation annexe
-
8/2/2019 virtualisation & scurit vm
41/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite4141/64/64
Backdoor : utilisation annexe Backdoor : utilisation annexe
Dtecter si un systme est virtualis ou pas
Une mthode parmi beaucoup d'autres (IDT, GDT, ACPI ...)
Historique2002 Premiers virus dtectant VMware
2005 Premiers virus infectant les invits depuis l'hte2007 Une variante de Storm dtecte VMware et Virtual PC
Modification du flot d'excution
Bloquer le code malveillant pour viter l'analyse dans une sandbox Modifier la charge utile pour infecter l'environnement virtualis
Backdoor : protocolesBackdoor : protocoles
-
8/2/2019 virtualisation & scurit vm
42/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite4242/64/64
Backdoor : protocolesBackdoor : protocoles
2 ~protocoles~ de communication
RPCI
l'initiative du guest
TCLO
l'initiative de l'hte
Hypervisor
Guest
RPCI
TCLO
VMware Tools HGFS Server
... ...
ConceptsConcepts
-
8/2/2019 virtualisation & scurit vm
43/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite4343/64/64
ConceptsConcepts
Protocole connect
Principalement ASCII
Descripteur de canal
Cod sur 16 bits
~8 descripteurs disponibles (0-8)
Identifiant de sessionCod sur 64 bits
Gnr par l'hyperviseur (alatoire)
...
open channel
close channel
Select channel #+
Generate SID
Protocole RPCIProtocole RPCI
-
8/2/2019 virtualisation & scurit vm
44/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite4444/64/64
Protocole RPCIProtocole RPCI
~ 50 commandes
Rponse de l'hyperviseur : [data]
Ex : commande log
log tools.set.version upgrader.setGuestFileRoot info-get guestinfo.info-set guestinfo.
...
C:\temp> vmrpc call "log coucou c'est nous"==> 1
vcpu-0| Guest: coucou c'est nous
Protocole RPCIProtocole RPCI
-
8/2/2019 virtualisation & scurit vm
45/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite4545/64/64
Protocole RPCIProtocole RPCI
Possibilit de bloquerpresque toutes les commandes
Attention aux effets de bord ... :)
Commande Paramtre
tools.capability.resolution_set resolutionSetDisable
tools.capability.resolution_min resolutionMinDisable
tools.capability.printer_set printerSetDisable
vmx.capability.edit_scripts scriptEditDisable
copypaste.hg.copy.files copyDisable
disk.shrink diskShrinkDisable
... ...
Protocole TCLOProtocole TCLO
-
8/2/2019 virtualisation & scurit vm
46/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite4646/64/64
Protocole TCLOProtocole TCLO
Lecture de commandes TCLO intervalles prdfinis
~ 30 commandes gres par l'hyperviseur
Rponse de l'invit : [data]
Capabilities_RegisterSet_Option
Vix_1_Open_Url Time_Synchronize Resolution_Set OS_Suspend...
Protocole TCLO : flux d'excutionProtocole TCLO : flux d'excution
-
8/2/2019 virtualisation & scurit vm
47/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite4747/64/64
Protocole TCLO : flux d excutionProtocole TCLO : flux d excution
open channel
RPCI / guest
TCLO / guest
announce app. type open channel
announce app. type
TCLO / host
command
answer
reset
command(s)
tools.capability.hgfs_server toolbox 1resetOK ATR toolbox
Capabilities_Registertools.capability.statechangetools.capability.auto_upgrade 2tools.capability.guest_temp_directory 1 C:\tempvmx.capability.unified_loop toolboxOKSet_Option broadcastIP 1info-set guestinfo.ip 0.0.0.0OK
Les sessionsLes sessions
-
8/2/2019 virtualisation & scurit vm
48/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite4848/64/64
Les sessionsLes sessions
Secrets de sessions
gnr via /dev/urandom sous Linux (pas de #ifdef PURIFY)
64 bits rpartis sur 2 registres
esi + edi pour les requtes VX
ebp + edi pour les I/O VY
Expiration des sessions aprs inactivit : ~1 min
Certaines sessions sont quasi-permanentes
Ex: service VMware, HGFS, etc.
Attaques sur les sessions ?Attaques sur les sessions ?
-
8/2/2019 virtualisation & scurit vm
49/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite4949/64/64
Attaques sur les sessions ?Attaques sur les sessions ?
Pourquoi ?
Pas d'authentification
spoofer un client RPCI/TCLO depuis un compte non privilgi del'invit vis--vis de l'hyperviseur.
Intercepter les oprations de DND sur la console distance
Remonter des fausses informations dans la console de supervisiondepuis un compte non privilgi
Empcher le bon fonctionnement des agents VMware depuis uncompte non privilgi
Intrt limit si accs local privilgi
Sessions : pseudo DoSSessions : pseudo DoS
-
8/2/2019 virtualisation & scurit vm
50/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite5050/64/64
Sessions : pseudo DoSSessions : pseudo DoS
Blocage des canaux RPC disponibles
Seule les sessions permanentes sont utilisables
vcpu-0| GuestMsg: Too many channels opened
C:\temp> vmrpc blockblocked channel 5blocked channel 6blocked channel 7blocked channel 1blocked channel 0
C:\Program Files\VMware\VMware Tools> VMwareHgfsClient.exe[hgfsclient] WARNING: Failed to create RPC channel
Sessions : MITMSessions : MITM
-
8/2/2019 virtualisation & scurit vm
51/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite5151/64/64
Sessions : MITMSessions : MITM
Trouver l'identifiant de 64 bits ?
pour intercepter les messages mis par l'hyperviseur
pour usurper l'identit d'un client RPC de l'invit
Journalisation de l'attaque
rotation des journaux + commande log pour nettoyer les journaux ...
Trop long ... 100 000 tests / seconde
vcpu-0| GuestMsg: Channel 1, Wrong cookie. Man in the middle attack?vcpu-0| GuestMsg: Channel 1, Wrong cookie. Man in the middle attack?vcpu-0| GuestMsg: Channel 1, Wrong cookie. Man in the middle attack?vcpu-0| GuestMsg: Channel 1, Wrong cookie. Man in the middle attack?...
Sessions : identification applicativeSessions : identification applicative
-
8/2/2019 virtualisation & scurit vm
52/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite5252/64/64
Sessions : identification applicativeSess o s de t cat o app cat e
L'hyperviseur identifie les applications avec un label
Spcifi par l'invit
Permet souvent de filtrer les messages TCLO envoys l'invit
Quelques labels reconnus par l'hyperviseur
toolbox, toolbox-ui, toolbox-dnd
tools-upgrader, tools-sso, tools-hgfs
...
vmx.capability.unified_loop tools.capability.hgfs_server
Sessions : identification applicativeSessions : identification applicative
-
8/2/2019 virtualisation & scurit vm
53/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite5353/64/64
pppp
Journalisation des labels inconnus
Journalisation des identifications
L'hyperviseur vrifie si l'application est dj identifie
vcpu-0| Tools_SetAppRunningStatus: Unknown app name 'test'
C:\temp> vmrpc tclo "OK ATR test"> reset> Capabilities_Register
vcpu-0| GuestRpc: Channel 5, registration number 1, guest application tools-upgrader.
vcpu-0| GuestRpc: Channel 5, conflict: guest application toolbox-dnd tried to registerbut it is still registered on channel 2
HGFSHGFS
-
8/2/2019 virtualisation & scurit vm
54/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite5454/64/64
Host Guest File System
Partage plusieurs rpertoires entre l'invit et l'hyperviseur
I/O l'initiative de l'invit protocole RPCI
Commande : f
Messages binaires
~10 commandes HGFS
f 00 00 00 00 commande
+2 +6
arguments...
+10
HGFS : listage d'un rpertoireHGFS : listage d'un rpertoire
-
8/2/2019 virtualisation & scurit vm
55/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite5555/64/64
g pg p
f 00 00 00 00 05 00 00 00
+2 +6
descripteur
+10
index
+14
Commande HGFS
f 00 00 00 00 05 00 00 00 xx xx xx xx 00 00 00 00
f 00 00 00 00 05 00 00 00 xx xx xx xx 01 00 00 00
f 00 00 00 00 05 00 00 00 xx xx xx xx 02 00 00 00
f 00 00 00 00 05 00 00 00 xx xx xx xx ...
1 mta-informations 01 00 00 00 .
1 mta-informations 02 00 00 00 ..
1 mta-informations 03 00 00 00 tmp
Backdoor : en bref ...Backdoor : en bref ...
-
8/2/2019 virtualisation & scurit vm
56/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite5656/64/64
Impossible d'authentifier le client RPCI ou TCLO
2 protocoles de communication, ~90 commandes
Une soupe de messages ASCII, binaires, base64, ...
Un rve ...Un rve ...
-
8/2/2019 virtualisation & scurit vm
57/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite5757/64/64
Et si tout hasard ...
Une vulnrabilit dans l'hyperviseur ...
permettait d'crire dans la mmoire du processus hte
Et si ...
Une fuite d'information dans l'hyperviseur ...
permettait de localiser la mmoire de l'invit dans le processus hte
Alors ...
ExploitationExploitation
-
8/2/2019 virtualisation & scurit vm
58/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite
5858/64/64
Intrt
Obtenir un accs sur l'hyperviseur depuis un compte non privilgi del'invit
ProblmeS
Ne pas tout casser ...Rcuprer le rsultat d'un shellcode
Faits
1 processus dans l'hte / machine virtuelle1 thread / session RPCI moins de risques de bloquer l'invit
ExploitationExploitation
-
8/2/2019 virtualisation & scurit vm
59/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite
5959/64/64
Surcharge d'une commande RPCI dj enregistre
Commandes RPCI tableau dynamique
Commandes HGFS tableau statique
vtable
function #1
function #2
function #3
function #4
function #5
...
vtable
function #1
function #2
function #3
function #4
&shellcode
...
ExploitationExploitation
-
8/2/2019 virtualisation & scurit vm
60/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite
6060/64/64
HGFS
Localisation du tableau en identifiant la version de l'hyperviseurex: commandes RPCI, contenu de l'IDT ou de la GDT, ...
Pas disponibles sur toutes les versions de VMware
Dysfonctionnement de HGFS
RPCI
Localisation du tableau avec une vulnrabilit annexe
Impact minimal
Shellcode stock dans les tampons d'I/O RPCI
Adresse +/- stable
Toujours en mmoire tant que l'I/O n'est pas termine
-
8/2/2019 virtualisation & scurit vm
61/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite
6161
/64/64
Conclusion
Scurit de la virtualisationScurit de la virtualisationou virtualisation de la scurit ?ou virtualisation de la scurit ?
-
8/2/2019 virtualisation & scurit vm
62/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite
6262
/64/64
ou virtualisation de la scurit ?ou virtualisation de la scurit ?
G2
Security module
Hypervisor
G3G1
G2
Security module
Hypervisor
G3G1
G2
Security module
Hypervisor
G3G1
-
8/2/2019 virtualisation & scurit vm
63/64
Merci !Merci !
http://sanbarrow.com/http://sanbarrow.com/ -
8/2/2019 virtualisation & scurit vm
64/64
Copyright Herv Schauer Consultants 2008 - Reproduction Interdite6464/64/64
Merci de votre attention
Questions ?
http://www.hsc.fr/
http://sanbarrow.com/http://sanbarrow.com/http://sanbarrow.com/http://sanbarrow.com/http://sanbarrow.com/http://sanbarrow.com/http://sanbarrow.com/mailto:[email protected]:[email protected]://www.hsc.fr/http://www.hsc.fr/mailto:[email protected]:[email protected]