Comment cacher à un programme qu'il s'exécute sur une machine virtuelle?

13

Certains logiciels contiennent des tests pour voir s'ils fonctionnent sur une machine virtuelle.

Il est très désagréable de voir des messages d'alerte tels que «Désolé, cette application ne peut pas s'exécuter sous une machine virtuelle». et faites arrêter votre logiciel!

Il existe de nombreuses raisons légales de passer outre ces tests. De plus, ces limitations ne sont (la plupart du temps) pas écrites dans les contrats de licence utilisateur.

Alors ... comment masquer le fait qu'une machine virtuelle exécute le programme? Je ne veux pas que les programmes qui effectuent cette analyse détectent avec succès la machine virtuelle en cours d'exécution.

J'utilise un serveur privé virtuel (VPS) avec Hyper-V ... Je suis administrateur du système d'exploitation (Windows 2003) installé sur ce VPS, pas administrateur de Hyper-V.

Femto Trader
la source
1
Pouvez-vous clarifier ce que vous entendez par «cacher un programme»? De plus, quel logiciel essayez-vous d'exécuter spécifiquement?
Anderson Green
@AndersonGreen, ils signifient qu'ils veulent empêcher un programme de détecter qu'il s'exécute dans une machine virtuelle.
Synetech
Alors permettez-moi de clarifier les choses, votre logiciel en cours d'exécution dans la machine virtuelle et vous ne voulez pas que le logiciel sur l'hôte détecte qu'il existe certains logiciels en cours d'exécution dans la machine virtuelle, n'est-ce pas?
user88311
1
Vous devez être prudent. Si le programme vérifie délibérément s'il fonctionne dans un environnement débogué / virtuel, il est très possible qu'il essaie d' appliquer une certaine déclaration répertoriée dans son accord de licence . La falsification de VM peut constituer une violation directe du CLUF.
bytebuster
1
@bytebuster J'ai dit dans ma question "De plus, de telles limitations ne sont (la plupart du temps) pas écrites dans les contrats de licence utilisateur." ... Je sais donc que c'est parfois interdit de le faire ... et parfois c'est permis ... Je ne cherchez pas un avis juridique mais un avis technique!
Femto Trader

Réponses:

1

En bref, je pense que vous ne pouvez tout simplement pas. C'est la discussion sur les logiciels malveillants qui tentent de détecter s'ils s'exécutent sur une machine virtuelle pour éviter d'être détectés par les systèmes qui utilisent des machines virtuelles pour exécuter du code pour rechercher les logiciels malveillants.

Voici quelques références rapides: VRT: comment les logiciels malveillants connaissent-ils la différence entre le monde virtuel et le monde réel? et The Dead Giveaways of VM-Aware Malware .

scherand
la source
1
Fortement en désaccord, vous avez l'argument dans le mauvais sens. La détection qu'il s'agit d'un environnement virtualisé facilite considérablement la tâche des logiciels malveillants. Considérez également qu'il existe des laboratoires anti-malware et anti-virus qui doivent exécuter des machines virtuelles pour isoler leurs recherches et qui installent des logiciels malveillants dans ces machines virtuelles et doivent masquer le fait que l'instance est une instance virtualisée. C'est la raison précise pour laquelle ESXi / VSphere permet de définir un indicateur pour masquer le fait qu'une machine virtuelle est une machine virtuelle.
Matthias Wolf
Je suis également fortement en désaccord, que diriez-vous du passthrough NVidia GPU avec des cartes de qualité grand public. Les pilotes NVidia effectuent une vérification «VM» et ne parviennent pas à installer avec le code d'erreur 43, mais un rapide google trouve la solution. C'est un jeu constant de chat et de souris quand il s'agit de trucs comme ça.
FreeSoftwareServers
Je pense que cette réponse est correcte, ou plutôt si elle indiquait que tout ce qui s'avérait fonctionner "maintenant" ne fonctionnerait probablement pas après un certain temps, car il s'agit à bien des égards d'une sorte de "course aux armements" (en particulier en cas de logiciels malveillants concernés ) et les moyens de détection et les moyens de contrecarrer la détection évoluent et évoluent constamment au fil du temps.
Chuck van der Linden
0

Pour autant que je sache, cela dépend du type de virtualisation que vous utilisez.

Commençons par dire que vous pouvez sûrement atténuer certaines choses (EG changer l'adresse MAC, désinstaller les ajouts d'invités).

Cela dit, si vous exécutez une virtualisation complète, l'hyperviseur émule le matériel pour les invités. Un CPU émulé aura sa propre horloge (logicielle) qui, tôt ou tard, affichera des vitesses différentes, alors qu'il ne devrait pas.

C'est l'une des choses que vous ne pouvez en aucun cas réparer, et un programme (principalement des malwares) saura qu'il s'exécute sur une machine virtuelle.

Vous pouvez le faire directement en utilisant une paravirtualisation qui consiste à utiliser votre vrai matériel dans un environnement fermé.

ingroxd
la source
Je dirais que cela dépend également de l'hyper-visière que vous utilisez quant aux vérifications effectuées par le logiciel pour voir s'il se trouve dans une machine virtuelle.
FreeSoftwareServers