Des questions:
- si une machine virtuelle est corrompue (piratée), qu'est-ce que je risque sur d'autres machines virtuelles exécutées sur la même machine physique?
- Quel genre de problèmes de sécurité existe-t-il entre les machines virtuelles exécutées sur le même hôte physique?
- Existe-t-il (pouvez-vous dresser) une liste de ces faiblesses et / ou problèmes (potentiels)?
Avertissement:
Je sais que de nombreux types / solutions de virtualisation existent et peuvent présenter différentes faiblesses. Cependant, je recherche principalement des problèmes de sécurité généraux concernant les techniques de virtualisation, plutôt qu'un bug de fournisseur particulier.
Veuillez fournir des faits réels, des études (sérieuses), des problèmes rencontrés ou des explications techniques. Être spécifique. Ne donnez pas (seulement) votre avis.
- Exemples:
Il y a deux ans, j'ai entendu dire qu'il pourrait y avoir des problèmes de sécurité liés à la MMU (accéder à la mémoire principale d'autres machines, je pense), mais je ne sais pas si c'est une menace pratique à ce jour, ou juste une recherche théorique matière.
EDIT: J'ai également trouvé cette attaque "Flush + Reload" capable de récupérer des clés secrètes GnuPG sur la même machine physique, en exploitant le cache CPU L3, même si GnuPG fonctionne sur une autre VM. GnuPG a été corrigé depuis.
Réponses:
Bien sûr, il est possible d'exploiter une autre VM fonctionnant sur le même matériel, à condition qu'un exploit fonctionne. De plus, un peut exister. Votre question cite des travaux récents en montrant un. Je ne vais pas partager d'exploits spécifiques ou de PoC ici, mais je serai heureux de dire comment ils peuvent être réalisés.
Les exploits utilisés dans ce contexte sont naturellement différents de ceux qui fonctionnent lorsque vous exécutez sur la même machine sur laquelle vous essayez d'exploiter un service, et ils ont tendance à être un peu plus difficiles en raison de l'isolement accru. Cependant, certaines approches générales qui peuvent être utilisées pour accomplir un tel exploit incluent:
Des attaques spécifiques surviendront et seront corrigées au fil du temps, il n'est donc jamais valable de classer un mécanisme particulier comme étant exploitable, exploitable uniquement dans des conditions de laboratoire ou inexploitable. Comme vous pouvez le voir, les attaques ont tendance à être impliquées et difficiles, mais celles qui sont réalisables à un moment donné sont quelque chose qui change rapidement, et vous devez être prêt.
Cela dit, les vecteurs que j'ai mentionnés ci-dessus (à l'exception peut-être du dernier dans certains cas) n'existent tout simplement pas dans les environnements de métal nu. Alors oui, étant donné que la sécurité consiste à se protéger contre les exploits que vous ne connaissez pas et qui ne sont pas dans la nature ainsi que ceux qui ont été divulgués publiquement, vous pouvez gagner un peu de sécurité en exécutant en métal nu ou à au moins dans un environnement où l'hyperviseur n'héberge pas de VM pour tout le monde.
En général, une stratégie efficace pour la programmation d'applications sécurisées consisterait à supposer qu'un ordinateur a d'autres processus en cours d'exécution qui pourraient être contrôlés par des attaquants ou malveillants et à utiliser des techniques de programmation sensibles aux exploits, même si vous pensez que vous ne garantissez pas un tel processus existe dans votre VM. Cependant, en particulier avec les deux premières catégories, rappelez-vous que celui qui touche le matériel gagne en premier.
la source
En théorie, non. L'intérêt de l'hyperviseur est d'isoler les machines virtuelles les unes des autres.
Dans la pratique, il y a eu (et il pourrait y avoir à l'avenir) des bogues de sécurité dans divers hyperviseurs qui pourraient permettre à une machine virtuelle d'affecter l'hyperviseur ou d'autres machines virtuelles sur le même hôte. Des mesures de sécurité telles que sVirt (pour KVM / QEMU) sont destinées à résoudre ce problème.
la source
Edit: Je pensais que ce sujet avait été fait il y a des mois, mais il vient d'être relancé et maintenant OP demande plus de `` faits réels, d'études citées '', etc., alors j'ai compris ce que le diable.
Les exploits de cette nature sont:
Nous ne pouvons pas dire qu'il est impossible de pirater un hyperviseur et d'accéder à d'autres machines virtuelles. Nous ne pouvons pas non plus quantifier le risque, sauf que l'expérience nous montre qu'il est assez faible, étant donné que vous ne trouverez pas beaucoup d'histoires d'attaques utilisant des exploits d'hyperviseur.
Voici une sorte d'article intéressant à l'effet contraire qui suggère que plus de quelques attaques basées sur l'hyperviseur ont été exécutées.
Cependant, la technologie dépendant d'hyperviseurs maintenant plus que jamais, de tels exploits seraient corrigés et protégés contre plus d'urgence que presque tout autre type d'exploit.
Voici un extrait du rapport sur les tendances et les risques semestriels d'IBM X-Force 2010:
(Veuillez ouvrir cette image dans un nouvel onglet pour l'afficher en taille réelle.)
Remarquez le pourcentage mesuré des vulnérabilités "Escape to hypervisor", ce qui me semble assez effrayant. Naturellement, vous voudriez lire le reste du rapport car il contient beaucoup plus de données pour sauvegarder les revendications.
Voici une histoire sur un éventuel exploit réalisé sur l'hyperviseur Playstation 3, ce qui est amusant. Peut-être pas aussi impactant pour votre entreprise, sauf si votre entreprise est Sony, auquel cas c'est extrêmement impactant.
Voici un merveilleux article d'Eric Horschman de VMware, dans lequel il me vient un peu comme un adolescent complètement anti-Micro $ oft, mais c'est toujours un bon article. Dans cet article, vous trouverez des friandises comme celle-ci:
Chicanant entre concurrents. Mais probablement la chose la plus lucide qu'il dit dans tout l'article est la suivante:
la source
Le toujours cité Theo de Raddt du projet OpenBSD:
Un peu incendiaire mais son argument est bien pris. En théorie, la virtualisation est censée fournir une isolation complète entre les machines virtuelles et leur hôte. Dans la pratique, il existe des vulnérabilités de sécurité occasionnelles qui permettent aux attaquants avancés de contourner ces protections et d'accéder à d'autres machines virtuelles ou pire encore à leur hôte (voir Une étude empirique sur l'exposition de la sécurité aux hôtes des environnements virtualisés hostiles ). Comme Ryan Ries le mentionne, ces types de vulnérabilités sont assez rares (ce qui ne signifie pas qu'elles ne sont pas là) et souvent non divulguées par les fournisseurs, mais elles existent.
Si vous êtes préoccupé par le potentiel de ces types d'attaques (et je pense que vous devriez l'être dans une certaine mesure), je vous recommande de ne pas mélanger les zones de sécurité sur un seul hôte virtuel ou cluster d'hôte virtuel. Par exemple - vous auriez un cluster d'hôte virtuel dédié à deux hôtes pour les machines virtuelles DMZ, un cluster dédié pour le middleware et un cluster dédié pour les actifs protégés. De cette façon, dans le cas où une vulnérabilité est exploitée de manière à permettre à un attaquant de subvertir d'autres machines virtuelles ou pire, l'hyperviseur lui-même, votre modèle de sécurité est toujours intact.
la source