VM sandboxing - que se passe-t-il?

2

Comment fonctionne exactement le sandbox VM? Il utilise sûrement toujours les mêmes ressources matérielles et le même système d'exploitation sous-jacent? Je ne comprends pas pourquoi plusieurs ordinateurs virtuels sur un système d'exploitation sont sûrs mais que plusieurs applications / processus peuvent être dangereux?

Qu'est-ce qui rend l'architecture de la VM si spéciale?

Laimi
la source
Parce que la VM est un shim, une couche d'émulation entre le système d'exploitation / les programmes et le matériel. Lorsque le logiciel d’une machine virtuelle accède au matériel, il n’y accède pas directement, bien qu’il le pense. Au lieu de cela, il accède à du matériel virtuel qui semble réel au logiciel, mais il s’agit en réalité d’un code qui traite la demande et la transmet au matériel réel (ou la bloque éventuellement). Si vous pensez que cela signifie un coup dur pour les performances, alors vous avez raison, mais le coup n'est pas aussi grave avec un matériel plus contemporain, à la fois plus rapide et conçu pour la virtualisation.
Synetech

Réponses:

2

Le bac à sable agit comme un proxy. Au lieu que l'application ou le système d'exploitation soit exécuté directement sur la CPU, le bac à sable peut voir ce que l'application veut faire et intercepter les instructions pour lui faire faire autre chose. Ceci peut être utilisé pour l'empêcher de faire des choses qu'il ne devrait pas faire ou d'interférer avec d'autres applications.

Par exemple, supposons que le programme A veuille créer un fichier appelé document.txt

Normalement, ce fichier serait créé directement sur le disque dur. Mais que se passe-t-il si le programme B veut également utiliser document.txtpour autre chose?

À l'intérieur d'un bac à sable, le disque dur n'existe pas vraiment. Tout ce qu'il y a, c'est une interface qui prétend être un disque dur. L'application peut en lire et y écrire, et du point de vue de l'application, il semble que ce soit le seul programme qui l'utilise document.txt.

Mais comme le sandbox peut voir et intercepter tout ce qu'une application fait, les données sur lesquelles le programme A écrit document.txtsont stockées de manière sécurisée par le sandbox dans un fichier spécial réservé au programme A. Lorsque le programme A lit document.txt, le sandbox le charge données du fichier spécial du programme A.


Une machine virtuelle est similaire, mais à un niveau inférieur et à une plus grande échelle. Lorsqu'un sandbox d'application modifie les interfaces qu'une application utilise pour interagir avec l'hôte, une machine virtuelle est capable de mettre en sandbox un système d'exploitation complet, qui s'attend à disposer de tout son matériel. Cela nécessite la virtualisation d'une carte graphique, d'une mémoire, d'un processeur, de disques durs, de périphériques USB, de réseaux, de tout. Cependant, comme la VM peut surveiller et intercepter tout ce que le système d'exploitation tente de faire, elle peut imposer et appliquer des limites artificielles empêchant les conflits.

Voici un moyen plus facile d’y réfléchir:

Normalement, Windows indique à l'ordinateur quoi faire. Avec Windows dans une machine virtuelle en tant que "système d'exploitation invité", Guest-Windows indique à la machine virtuelle quoi faire, et si la machine virtuelle pense que c'est correct, la machine virtuelle se retournera et demandera à l'ordinateur de faire la même chose. Si la VM n'aime pas ce que Guest-Windows a essayé de faire, elle le bloquera. En raison de la manière dont cela est mis en œuvre, Guest-Windows ne sait pas avec certitude s'il s'exécute sur une machine virtuelle et, comme cette dernière dispose toujours d' un contrôle total, Guest-Windows doit respecter les règles imposées par la machine virtuelle.

Darth Android
la source
C'est une très grande simplification, mais j'espère que cela expliquera les concepts.
Darth Android