web-dev-qa-db-fra.com

Dual-bootting a-t-il un système d'exploitation plus ou moins sûr que d'exécuter une machine virtuelle?

J'exécute deux systèmes d'exploitation sur deux partitions de disque distinctes sur la même machine physique (un MacBook Pro). Afin de les isoler les uns des autres, j'ai pris les étapes suivantes:

  1. Configuré/etc/fstab avec ro, noauto (lecture en lecture seule, sans montage automatique)

  2. Entièrement chiffré chaque partition avec une clé de cryptage distincte (engagée à la mémoire)

Supposons qu'un virus infecte ma première partition à l'insu pour moi. Je me déconnecte de la première partition (qui crypte le volume), puis éteignez la machine pour effacer la RAM. J'ai ensuite un-chiffrer et démarrer dans la deuxième partition. Puis-je être raisonnablement confiant que le virus n'a pas/ne peut pas infecter les deux partitions, ni je joue avec le feu ici? Je me rends compte que les Mbps n'envoient pas avec un TPM, une infection de chargeur de démarrage qui passe inaperçue est toujours une possibilité théorique. Toutefois, ce risque semble égal au risque d'exploiter le risque d'exploitation de l'hyperviseur VMware/VirtualBox lors de la gestion d'un système d'exploitation invité, d'autant plus que la ligne MBP utilise UEFI au lieu de BIOS.

Cela conduit à ma question: L'approche à double partitionnement décrit-elle ci-dessus plus ou moins sécurisée que d'utiliser une machine virtuelle pour l'isolation des services? Cela changerait-il si mon ordinateur avait un TPM installé?

Fond:

Notez que je prends bien sûr toutes les précautions supplémentaires habituelles, telles que la vérification des mises à jour logicielles du système d'exploitation, ne vous connectez pas comme un utilisateur administrateur, sauf absolument nécessaire, en exécutant des programmes antivirus en temps réel sur les deux partitions, en exécutant un pare-feu à base d'hôtes, Surveillance des connexions de réseau sortant, etc. Ma question est vraiment une vérification publique de voir si je négligeait quoi que ce soit ici et essayez de déterminer si mon schéma Dual-Boot est en réalité plus sécurisé que la route de la machine virtuelle. Plus important encore, je cherche simplement à en apprendre davantage sur les problèmes de sécurité.

Edit # 1:

Comme indiqué dans les commentaires, le scénario est un peu du côté paranoïaque pour mon cas particulier. Mais réfléchissez aux personnes qui peuvent être dans des paramètres d'entreprise ou de gouvernement et envisagent d'utiliser une machine virtuelle pour exécuter des services ou des applications considérées comme "à risque élevé". Sont-ils mieux à l'aide d'un VM ou d'un scénario à double démarrage, comme je l'ai décrit? Une réponse qui pèse efficacement les avantages/inconvénients à ce compromis est ce que je cherche vraiment dans un Réponse à ce post.

Edit # 2:

Cette question a été partiellement alimentée par le débat sur la question de savoir si une machine virtuelle protège réellement un OS hôte du tout. Personnellement, je pense que cela le fait, mais considérons cette citation de Theo de Raadt sur la liste de diffusion OpenBSD:

la virtualisation X86 consiste essentiellement à placer un autre noyau presque complet, rempli de nouveaux bugs, au-dessus d'une architecture Nasty X86 qui a à peine une protection de page correcte. Ensuite, exécutez votre système d'exploitation de l'autre côté de cette nouvelle pile de merde. Vous êtes absolument gravé, sinon stupide, si vous pensez qu'une collection mondiale d'ingénieurs logiciels qui ne peut pas écrire des systèmes d'exploitation ni des applications sans trous de sécurité, peuvent ensuite se retourner et écrire soudainement des couches de virtualisation sans trous de sécurité.

-http: //kerneltrap.org/openbsd/virtualization_security

En citant l'argument de Theo, je ne l'en approuve pas. Je souligne simplement qu'il existe plusieurs perspectives ici, alors j'essaie d'en savoir plus sur la question.

8
Mark

Répondez en premier, alors pourquoi: une machine virtuelle peut être plus sécurisée.

D'un point de vue pratique, il existe du code et des logiciels malveillants pouvant infecter à la fois des partitions de démarrage, des BIOS et des périphériques matériels. Ainsi, A VM== a légèrement plus d'avantages dans une surface d'attaque réduite d'un point de vue générique - potentiel VM Hopping code est le plus important spécifique au VM . Ce code est susceptible d'être spécifique au type de VM étant utilisé tel que le récent http://www.kb.cert.org/vuls/id/649219 problème. Notez qu'il nécessitait une machine virtuelle spécifique (KVM ou XEN), une bague, etc.

Donc, du point de vue du code hostile, virtualisé est plus sécurisé.

Approchant de l'angle de réseau, de nombreux utilisateurs de solutions de virtualisation ont plus de flexibilité au niveau du réseau via NAT au sein de NAT, PAT ou d'autres fonctionnalités d'un système d'exploitation peuvent ne pas être un support indigène, ni de rouler leur propre sécurité améliorée. Grâce à l'utilisation de la machine virtuelle. Il est assez trivial d'améliorer une posture sécurisée via à l'aide d'un fichier spécifique VM pour inspecter tout le trafic d'E/S avec la virtualisation.

Donc, du point de vue de la sécurité du réseau, virtualisé est plus sécurisé.

Sur les opérations invitées. La beauté des systèmes d'exploitation de clonage dans une seconde ... Selon le type de solution de virtualisation étant utilisé, un épargned OFF VM peut être corrigé de manière transparente sans action par l'utilisateur. Il est trivial de prendre un VM à usage général et verrouillez-le à l'aide de divers guides de durcissement à l'endroit où il existe une fonctionnalité minimale, à l'exception d'applications spécifiques. VMS facilite la réalisation de niveaux extrêmes de durcissement, tels que l'exécution du moindre privilège sur les magasins de fiducies de certificats (par exemple, je supprime la plupart des certificats de commerce commercial. CAS sauf pour ceux que j'utilise) ces types d'activités peuvent être beaucoup plus rapides avec un VM en raison de la capacité d'instantané et de récupérer des changements catastrophiques. En outre, A VM En intégralité peut facilement être emballé dans un fichier et enregistré quelque part, sur une USB, etc. En outre, lorsque vous pensez à des compromis, réalisez que dans la virtualisation, un compromis peut être beaucoup moins privilégié que régulièrement. Dans un type 1 Hypervisor, par exemple, c'est l'hyperviseur Soi qui est l'instance la plus privilégiée sur l'ordinateur .. Augmentation des niveaux de cerceaux pour un attaquant. Il peut également être utilisé pour accorder des développeurs Accès administratif/root, sans accorder lesdits administrateurs de domaine du développeur, ni privilèges sur le LDAP de l'entreprise.

Donc, du point de vue des opérations invités, virtualisé est plus sécurisé.

Cependant, je vais me concentrer sur le principe d'une seconde - que les systèmes de type natif virtualisé et démarré sont soit des choix. Comme vous pouvez démarrer un système d'exploitation virtualisé à l'aide de solutions de 3ème partie comme s'il s'agissait d'une option à double démarrage. Le logiciel comme Vboot active le démarrage du format VHD/VMDK/VDI/RAW.

En ce qui concerne les types de virtualisation, il y a quelques-uns qui sont applicables à cette affaire. Celles-ci étant la virtualisation de type 1 (métal nu), la virtualisation de type 2 (OS hébergée) et je considère le système d'exploitation et la parabritualisation partielle. La solution de virtualisation X86 de type 1 de type 1, Hyperviseur VMware vSphere utilise une approche de microkernel avec une surface d'attaque minimale. La virtualisation de type 2 a des surfaces d'attaque plus importantes car elles s'appuient sur un système d'exploitation sous-jacent complet. Ainsi, les commentaires de Theo sur les systèmes d'exploitation complets sont incorrects lorsqu'ils sont appliqués à VMware.

Voici une certaine propagande VMware sur le sujet

http://www.vmware.com/technical-resources/security/overview.html

Bien entendu, la sécurité est le plus souvent un compromis entre la convivialité et la sécurité. Il est important d'envisager une situation de menace qu'un utilisateur est susceptible de rencontrer et qui déploiera des ressources contre vous pour vous attaquer. Si vous êtes une nation ou une banque, vous avez des protections approfondies. Sociétés, plus. Utilisateurs individuels de peu de notoriété - de bonnes protections. N'oubliez pas que une bonne solution de sécurité vous protège suffisamment, mais n'a pas d'impact négatif sur la convivialité dans l'ampleur d'un obstacle. La gestion globale des risques est un sujet différent, digne d'examen ailleurs.

Je n'ai pas parlé de nouvelles approches de sécurité exotiques, telles que des clients légers pouvant être utilisés pour développer la sécurité de la virtualisation en réduisant davantage les surfaces d'attaque, ou le verrouillage TPM en conjonction avec un hyperviseur de type 1.

10
Brennan

Chacun est plus sécurisé en ce qui concerne.

Si vous souhaitez construire un environnement "Sandbox" où vous pouvez expérimenter avec un code dangereux, le faire dans une machine virtuelle est plus sécurisé qu'avec un environnement à double démarrage. Ceci apparaît de votre question pour être ce que vous demandez. la raison pour laquelle une machine virtuelle n'a pas accès direct à votre matériel, il fonctionne comme un programme émulé dans un programme tel que le L'ensemble de l'environnement d'exécution n'existe que dans la mesure où le système de virtualisation permet (n'ayant aucun bogue de sécurité dans votre hyperviseur). Si votre VM System déclare que l'accès du disque dur est impossible, le programme fonctionnant à l'intérieur ne peut pas accéder au disque dur.

Si, d'autre part, vous voulez "échapper à" votre environnement standard et créer un environnement sécurisé connu, le double démarrage est le seul moyen d'y arriver. La raison en est que, parce qu'un VM existe en tant que programme dans votre bureau standard, les défaillances de votre bureau dans votre bureau standard peuvent également s'étendre au VM lui-même - - Le bureau peut intercepter le trappe, les frappes de frappe, l'accès aux disques, etc., fait par la machine virtuelle. Donc, si votre bureau n'est pas sécurisé, votre VM ne peut pas être la solution. Ceci apparaît Pour ne pas être ce dont vous aviez besoin, mais il peut être utile de comprendre pour une utilisation future.

6
tylerl

Personnellement, cela ressemble à sa paranoïa pour les personnes qui ne font pas de recherche sur les logiciels malveillants.

Si vous utilisez 2 systèmes d'exploitation différents, vous auriez besoin de logiciels malveillants qui sait lire les deux systèmes de fichiers différences.

Si cela fonctionne dans une machine virtuelle, vous auriez besoin que les logiciels malveillants ciblent spécifiquement l'hyperviseur afin de pouvoir sortir du bac à sable.

Vous atténez déjà certains des moyens évidents de vous infecter en fonctionnant avec des privilèges plus bas etc. Sinon, vos meilleures tâches d'atténuation seraient des sauvegardes régulières, une numérisation pour les logiciels malveillants ou pour moi, lors de l'exécution d'un système Unix basé sur une base de fichiers qui utilisent des checkers de fichiers pour surveiller les modifications de fichier, puis vous écrivez lorsque des fichiers/changements suspects sont trouvés.

Aussi avec A VM Vous pouvez créer un dossier d'action dans lequel enregistrer des données permanentes, alors prenez simplement un instantané de votre VM, faites les cours, puis relancez l'instantané de sorte que tout ce qui aurait pu se produire. à votre VM serait effacé. Les logiciels malveillants devraient savoir spécifiquement de votre part afin de se copier à une action, et même à ce moment-là qu'il ne peut pas fonctionner.

Bien que la sécurité doit être superposée à être efficace, elle ne prend pas grand chose pour faire des soins de base pour votre utilisation moyenne. Personnellement, si vous avez peur d'une activité en particulier causer des problèmes, j'avais simplement un instantané et retiré dans ce travail. L'utilisation de la surveillance de différents systèmes d'exploitation et de contrôle de fichier doit vous dire si quelque chose est arrivé, la restauration des sauvegardes serait probablement plus que suffisante, comme tout ce qui est pour casser VM et affecterait différents systèmes d'exploitation devraient être très ciblés. juste pour toi.

4
Bart Silverstrim

Certains risques théoriques (qui n'ont pas encore été prouvés) qui rendraient l'approche à double démarrage moins sécurisée. Celles-ci impliquent un trocanal sur une pièce de matériel non standard. Par exemple, infectant le micrologiciel de la batterie avec quelque chose qui déborde ensuite le gestionnaire de puissance du noyau. Cela pourrait traverser les frontières de redémarrage et vous n'avez pas vraiment aucun mot à dire. L'approche VM ne souffrirait pas de cette faiblesse.

Au mieux de mes connaissances, ils sont à la preuve de concept au mieux, mais encore une fois, c'est dans le monde de Whitehat. Je ne serais pas surpris si le NSA a ce fonctionnement.

0
Bill McGonigle