Kann eine virtuelle Maschine (VM) eine andere VM hacken, die auf derselben physischen Maschine ausgeführt wird?

12

Fragen:

  • Was riskiere ich bei einer beschädigten (gehackten) VM auf anderen VMs, die auf demselben physischen Computer ausgeführt werden?
  • Welche Art von Sicherheitsproblemen gibt es zwischen VMs, die auf demselben physischen Host ausgeführt werden?
  • Gibt es eine Liste dieser (potenziellen) Schwächen und / oder Probleme?

Warnung:

Ich weiß, dass viele Virtualisierungstypen / -lösungen existieren und unterschiedliche Schwächen aufweisen können. Ich interessiere mich jedoch hauptsächlich für allgemeine Sicherheitsprobleme in Bezug auf die Virtualisierungstechniken und nicht für einen bestimmten Herstellerfehler.

Bitte liefern Sie echte Fakten, (ernsthafte) Studien, erfahrene Probleme oder technische Erklärungen. Sei präzise. Geben Sie nicht (nur) Ihre Meinung ab.

  • Beispiele:

Vor zwei Jahren habe ich gehört, dass es Sicherheitsprobleme im Zusammenhang mit der MMU geben könnte (Zugriff auf den Hauptspeicher anderer Computer, glaube ich), aber ich weiß nicht, ob dies derzeit eine praktische Bedrohung ist oder nur eine theoretische Untersuchung Gegenstand.

BEARBEITEN: Ich habe auch festgestellt, dass dieser "Flush + Reload" -Angriff in der Lage ist, geheime GnuPG-Schlüssel auf derselben physischen Maschine abzurufen, indem der L3-CPU-Cache ausgenutzt wird, selbst wenn GnuPG auf einer anderen VM ausgeführt wird. GnuPG wurde seitdem gepatcht.

Totor
quelle
2
@MichaelHampton (und andere +3000 Mitarbeiter) Entschuldigung, ich bin nicht damit einverstanden, diese Frage zu schließen. Ich erwarte keine Antwort auf diese Frage und suche auch keine Debatte, sondern nur echte Fakten , zitierte Studien, Artikel oder Forschungsarbeiten. Ich teile erfahrene Themen, technische Erklärungen zur Isolation usw. Welche Art von Debatte könnte Ihrer Meinung nach entstehen? Ich frage nicht, ob Virtualisierung für die Sicherheit "gut" oder "schlecht" ist, sondern genau: "Was riskiere ich" und "welche Sicherheitsprobleme"! Fühlen Sie sich frei, meine Frage zu bearbeiten, wenn Sie glauben, dass sie spezifischer sein könnte, aber verbieten Sie sie bitte nicht .
Totor
2
Ich halte das für eine berechtigte Frage. In der Vergangenheit gab es berechtigte Bedenken, sodass Bedenken hinsichtlich der Sicherheit zu erwarten sind. informationweek.com/government/security/…
Stefan Lasiewski
3
Ich bin nicht wirklich abgeneigt, die Frage erneut zu öffnen, aber ich denke, Sie erhalten auf unserer Schwestersite Informationssicherheit bessere Antworten (und die Frage ist zu alt für eine Migration).
Michael Hampton
@MichaelHampton Du hast recht, ich werde dort nachfragen, ob hier nicht genügend nette Antworten erscheinen. Vielen Dank.
Totor

Antworten:

9

Natürlich ist es bei einem funktionierenden Exploit möglich, eine andere VM auszunutzen, die auf derselben Hardware läuft. Zusätzlich kann man existieren. Ihre Frage zitiert eine aktuelle Arbeit, die eine zeigt. Ich werde hier keine spezifischen Exploits oder PoCs veröffentlichen, aber ich sage gerne, wie sie erstellt werden können.

Die in diesem Zusammenhang verwendeten Exploits unterscheiden sich natürlich von denen, die funktionieren, wenn Sie auf demselben Computer ausgeführt werden, auf dem Sie versuchen, einen Dienst auszunutzen, und sie sind aufgrund der erhöhten Isolation in der Regel etwas schwieriger. Einige allgemeine Ansätze, die zur Erreichung eines solchen Exploits verwendet werden können, umfassen:

  • Greife den Hypervisor an . Wenn Sie auf dem Hypervisor eine ausreichend privilegierte Shell für eine VM erhalten, können Sie die Kontrolle über jede VM auf dem System erlangen. Um dies zu erreichen, müssen Sie nach Datenflüssen suchen, die von der VM in den Hypervisor gelangen und stark vom Hypervisor abhängig sind. Dinge wie paravirtualisierte Treiber, gemeinsame Nutzung der Zwischenablage, Anzeigeausgabe und Netzwerkverkehr erzeugen in der Regel diesen Kanaltyp. Beispielsweise kann ein böswilliger Anruf an ein paravirtualisiertes Netzwerkgerät dazu führen, dass im Hypervisor-Kontext willkürlicher Code ausgeführt wird, der für die Weiterleitung des Datenverkehrs an den physischen NIC-Treiber verantwortlich ist.
  • Greife die Hardware auf dem Host an . Auf vielen Geräten sind Firmware-Updates möglich. Wenn Sie von einer VM aus auf den entsprechenden Mechanismus zugreifen können, können Sie eine neue Firmware hochladen, die Ihren Absichten entspricht. Wenn Sie beispielsweise berechtigt sind, die Firmware auf der Netzwerkkarte zu aktualisieren, können Sie dafür sorgen, dass der Datenverkehr für eine MAC-Adresse (die des Opfers), jedoch für eine andere Ziel-MAC-Adresse (Ihre) dupliziert wird. Aus diesem Grund filtern viele Hypervisoren solche Befehle, wo dies möglich ist. ESXi filtert CPU-Mikrocode-Aktualisierungen, wenn sie von einer VM stammen.
  • Greife die Architektur des Hosts an. Der von Ihnen genannte Angriff, im Wesentlichen ein weiterer zeitbasierter Angriff zur Offenlegung von Schlüsseln, nutzt die Auswirkungen des Caching-Mechanismus auf das Betriebszeitverhalten, um die Daten zu erkennen, die von der VM des Opfers für ihre Operationen verwendet werden. Im Zentrum der Virtualisierung steht die gemeinsame Nutzung von Komponenten. Wenn eine Komponente gemeinsam genutzt wird, besteht die Möglichkeit eines Seitenkanals. In dem Maße, in dem eine andere VM auf demselben Host das Verhalten der Hardware beeinflussen kann, während sie im Kontext der betroffenen VM ausgeführt wird, wird die betroffene VM vom Angreifer gesteuert. Der Angriff, auf den verwiesen wird, nutzt die Fähigkeit der VM, das Verhalten des CPU-Cache (im Wesentlichen gemeinsamer universeller Status) zu steuern, sodass die Speicherzugriffszeiten des Opfers die Daten, auf die zugegriffen wird, genauer anzeigen. wo immer ein gemeinsamer globaler Staat existiert, es besteht auch die möglichkeit einer offenlegung. Stellen Sie sich einen Angriff vor, bei dem das VMFS von ESXi massiert wird und Teile der virtuellen Volumes auf dieselben physischen Festplattenadressen verweisen, oder einen Angriff, bei dem ein Speicher-Ballooning-System davon ausgeht, dass ein Teil des Speichers gemeinsam genutzt werden kann, wenn dies tatsächlich der Fall sein sollte private (dies ist sehr ähnlich wie Use-After-Free- oder Double-Allocation-Exploits). Stellen Sie sich ein hypothetisches CPU-MSR (modellspezifisches Register) vor, das vom Hypervisor ignoriert wird, auf das jedoch zugegriffen werden kann. Dies kann verwendet werden, um Daten zwischen VMs zu übertragen, wodurch die Isolation aufgehoben wird, die der Hypervisor bereitstellen soll. Berücksichtigen Sie auch die Möglichkeit, dass die Komprimierung verwendet wird, damit doppelte Komponenten virtueller Laufwerke nur einmal gespeichert werden. In einigen Konfigurationen kann ein (sehr schwieriger) Nebenkanal vorhanden sein, in dem ein Angreifer den Inhalt anderer virtueller Laufwerke erkennen kann, indem er auf seine eigenen schreibt und beobachtet Was macht der Hypervisor? Natürlich sollte ein Hypervisor sich davor hüten, und die hypothetischen Beispiele wären kritische Sicherheitslücken, aber manchmal rutschen diese Dinge durch.
  • Greife die andere VM direkt an . Wenn Sie einen proximalen Host für die betroffene VM haben, können Sie möglicherweise die entspannte Zugriffskontrolle oder die absichtliche Kommunikation zwischen VMs nutzen, je nachdem, wie der Host konfiguriert ist und welche Annahmen bei der Bereitstellung der Zugriffskontrolle getroffen werden. Dies ist nur wenig relevant, muss aber erwähnt werden.

Bestimmte Angriffe treten auf und werden im Laufe der Zeit ausgebessert. Daher ist es nicht immer gültig, einen bestimmten Mechanismus als ausnutzbar, nur unter Laborbedingungen ausnutzbar oder nicht ausnutzbar zu klassifizieren. Wie Sie sehen, sind die Angriffe in der Regel kompliziert und schwierig. Welche Angriffe zu einem bestimmten Zeitpunkt möglich sind, ändert sich jedoch schnell, und Sie müssen darauf vorbereitet sein.

Die oben erwähnten Vektoren (mit der möglichen Ausnahme der letzten in bestimmten Fällen) existieren jedoch in Bare-Metal-Umgebungen nicht. Ja, da es bei der Sicherheit um den Schutz vor Exploits geht, die Sie nicht kennen und die nicht in der Öffentlichkeit bekannt sind, können Sie ein wenig Sicherheit gewinnen, indem Sie in Bare-Metal- oder At-Modus arbeiten Zumindest in einer Umgebung, in der der Hypervisor VMs nicht für alle und für alle bereitstellt.

Im Allgemeinen besteht eine effektive Strategie für die sichere Anwendungsprogrammierung darin, davon auszugehen, dass auf einem Computer andere Prozesse ausgeführt werden, die möglicherweise von Angreifern gesteuert oder böswillig sind, und Exploit-fähige Programmiertechniken zu verwenden, selbst wenn Sie der Meinung sind, dass Sie keinen solchen Prozess auf andere Weise sicherstellen ist in Ihrer VM vorhanden. Denken Sie jedoch insbesondere bei den ersten beiden Kategorien daran, dass derjenige gewinnt, der zuerst die Hardware berührt.

Falcon Momot
quelle
Beste Antwort bisher, danke! Könnten Sie etwas mehr Details zu den verschiedenen Arten von Schwächen der "Host-Architektur" geben? Außerdem suche ich nicht nach bestimmten Exploits und bearbeite meine Frage entsprechend (ich möchte nur spekulative Antworten vermeiden).
Totor
Hey, sicher. Nur eine Sekunde und ich werde ein wenig näher darauf eingehen.
Falcon Momot
Und fertig. Es geht mehr in die Hypothese hinein, als ich möchte, aber es sollte veranschaulichend sein.
Falcon Momot
Insbesondere funktioniert der SSL / SSH-Schlüssel-Diebstahlsangriff auf mehrere VM-Gäste auf demselben Host, da es sich um einen direkten Angriff auf den CPU-Scheduler handelt.
Joshudson
13

Theoretisch nein. Der Sinn des Hypervisors besteht darin, virtuelle Maschinen voneinander zu isolieren.

In der Praxis gab es (und könnte es in Zukunft sein) Sicherheitslücken in verschiedenen Hypervisoren, die es einer virtuellen Maschine ermöglichen, entweder den Hypervisor oder andere virtuelle Maschinen auf demselben Host zu beeinflussen. Sicherheitsmaßnahmen wie sVirt (für KVM / QEMU) sollen dieses Problem lösen.

Michael Hampton
quelle
@RyanRies (und kce und MichaelHampton ) Vielen Dank für die netten Antworten, aber könnten Sie spezifischer und technischer sein, da die Frage wahrscheinlich wieder geschlossen wird, wenn es keine "echten Fakten" , zitierten Studien, Forschungsarbeiten, erfahrenen Probleme oder technischen Erklärungen gibt "beteiligte aber meist spekulative oder vage Antworten / Ratschläge. Ich habe meine Frage entsprechend bearbeitet.
Totor
8

Bearbeiten: Ich dachte, dass dieses Thema vor Monaten fertig war, aber es wurde gerade wiederbelebt und jetzt bittet OP um mehr "echte Fakten, zitierte Studien" usw., also habe ich herausgefunden, was zum Teufel.

Exploits dieser Art sind:

  1. Selten
  2. Sensibel in der Natur und daher nicht offen geteilt, und wenn dies der Fall ist, werden die Exploits vom Anbieter gepatcht, bevor irgendjemand auf dieser Website jemals davon erfahren hat
  3. Kompliziert und je nach Anbieter unterschiedlich

Wir können nicht sagen, dass es unmöglich ist, einen Hypervisor zu hacken und auf andere VMs zuzugreifen. Wir können auch nicht quantifizieren, wie hoch das Risiko ist, außer dass uns diese Erfahrung zeigt, dass es ziemlich niedrig ist, wenn man bedenkt, dass es nicht viele Berichte über Angriffe gibt, bei denen Hypervisor-Exploits eingesetzt wurden.

Hier ist eine Art interessanter Artikel im Gegenteil, der darauf hindeutet, dass mehr als ein paar Hypervisor-basierte Angriffe durchgeführt wurden.

Da die Technologie heute mehr denn je von Hypervisoren abhängt, werden solche Exploits mit größerer Dringlichkeit gepatcht und abgewehrt als bei fast jeder anderen Art von Exploit.

Hier ist ein Auszug aus dem IBM X-Force 2010 Mid-Year-Trend- und Risikobericht:

(Bitte öffnen Sie dieses Bild in einem neuen Tab, um es in voller Größe anzuzeigen.)

IBM X-Force 2010 Halbjahres-Trend- und Risikobericht.

Beachten Sie den gemessenen Prozentsatz der "Escape to Hypervisor" -Anfälligkeiten, der sich für mich ziemlich beängstigend anhört. Natürlich möchten Sie den Rest des Berichts lesen, da er viel mehr Daten enthält, um die Behauptungen zu sichern.

Hier ist eine Geschichte über einen möglichen Exploit, der auf dem Playstation 3-Hypervisor ausgeführt wird, was amüsant ist. Möglicherweise nicht so effektiv für Ihr Unternehmen, es sei denn, Ihr Unternehmen ist Sony. In diesem Fall ist es äußerst effektiv.

Hier ist ein wunderbarer Artikel von Eric Horschman von VMware, in dem er sich für mich wie ein Teenager anhört, der viele Anti-Mikros macht, aber er ist immer noch ein guter Artikel. In diesem Artikel finden Sie Leckerbissen wie folgt:

Die Bewohner von Microsofts Glashaus hatten noch ein paar andere Steine, die uns den Weg bahnten. Microsoft wies auf CVE-2009-1244 als Beispiel für eine Sicherheitsanfälligkeit in ESX und ESXi hin. Ein Gast-Breakout-Exploit ist eine ernste Angelegenheit, aber auch hier stellt Microsoft die Fakten falsch dar. VMware reagierte schnell auf das Korrigieren dieser Sicherheitsanfälligkeit in unseren Produkten, und ESX war weitaus weniger betroffen, als Microsoft Sie glauben machen würde:

Streit unter Mitbewerbern. Aber wahrscheinlich ist das Klarste, was er im gesamten Artikel sagt:

Die Wahrheit ist, dass Schwachstellen und Exploits für Unternehmenssoftware nie ganz verschwinden werden.

Ryan Ries
quelle
Was bedeuten die Prozentangaben auf dem Bild?
Totor
Es ist ein Histogramm, das den Prozentsatz der gefundenen Vulns nach Typ in jeder Zielklasse angibt. Mit anderen Worten, die 30,8% in der oberen Zeile des "Workstation-Prozentsatzes" bedeuten, dass 30,8% der Sicherheitslücken, die IBM X-Force für die Workstation-Virtualisierungssoftware verantwortlich befunden hat, das Host-Betriebssystem direkt angegriffen haben (z. B. die Workstation wurde angegriffen, und dies hatte wenig oder nichts zu tun mit der Virtualisierungssoftware oder VMs darauf). Und so weiter.
Falcon Momot
6

Der immer zitierte Theo de Raddt des OpenBSD-Projekts:

Sie sind absolut getäuscht, wenn nicht dumm, wenn Sie glauben, dass eine weltweite Sammlung von Softwareentwicklern, die keine Betriebssysteme oder Anwendungen ohne Sicherheitslücken schreiben können, sich dann umdrehen und plötzlich Virtualisierungsebenen ohne Sicherheitslücken schreiben können.


Ein bisschen entzündlich, aber sein Punkt ist gut aufgenommen. Theoretisch soll die Virtualisierung eine vollständige Isolation zwischen den virtuellen Maschinen und ihrem Host gewährleisten. In der Praxis gibt es gelegentlich Sicherheitslücken, die es fortgeschrittenen Angreifern ermöglichen, diese Schutzmechanismen zu umgehen und auf andere virtuelle Maschinen oder noch schlimmer auf ihren Host zuzugreifen (siehe Eine empirische Studie zum Sicherheitsrisiko für Hosts in feindlichen virtualisierten Umgebungen ). Wie Ryan Ries erwähnt, sind diese Arten von Schwachstellen ziemlich selten (was nicht bedeutet, dass sie nicht vorhanden sind) und werden von Anbietern häufig nicht bekannt gegeben, existieren jedoch.

Wenn Sie über das Potenzial für diese Art von Angriffen besorgt sind (und ich denke, dies sollte bis zu einem gewissen Grad der Fall sein), empfehle ich, keine Sicherheitszonen auf einem einzelnen virtuellen Host oder virtuellen Host-Cluster zu mischen. Beispielsweise verfügen Sie über einen dedizierten virtuellen Host-Cluster mit zwei Hosts für virtuelle DMZ-Maschinen, einen dedizierten Cluster für Middleware und einen dedizierten Cluster für geschützte Assets. Auf diese Weise bleibt Ihr Sicherheitsmodell erhalten, falls eine Sicherheitsanfälligkeit so ausgenutzt wird, dass ein Angreifer andere virtuelle Maschinen oder, schlimmer noch, den Hypervisor selbst untergraben kann.


quelle