virtualisation & sécurité vm

Embed Size (px)

Citation preview

  • 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 ?

    [email protected]

    [email protected]

    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]