Isolieren Sie eine VirtualBox-Maschine vollständig

17

Ich möchte VirtualBox verwenden, um eine Software zu installieren, die keinen Zugriff auf meinen Host-Computer haben soll (und umgekehrt). Ich stelle mir jedoch auch die Möglichkeit vor, "gefährlichere" Dinge zu versuchen, beispielsweise Zero-Day-Exploits auszuführen und zu sehen, was sie können.

Wie isoliert kann eine virtuelle Maschine vom Host erstellt werden? Soll (oder kann ich?) Eine Firewall zwischen Gast und Host einrichten? Sind Gast-Add-Ons ein Sicherheitsrisiko? Was ist mit freigegebenen Verzeichnissen?

Im Moment läuft auf dem Gastrechner ein GNU / Linux Debian-Test.

giusti
quelle
7
Stack Exchange verfügt über eine Gruppe für Informationssicherheit , wenn Sie detaillierte Sicherheitsfragen stellen möchten.
Cybernard
Stellvertretend für @cybernard hier. Nach einigem Ausarbeiten wäre dies eine äußerst angemessene Frage für Security.SE, vorausgesetzt, es handelt sich nicht um ein Duplikat (was meiner Meinung nach angesichts des Wachstums der Community durchaus der Fall sein könnte).
0xdd
1
Sie sollten VirtualBox nicht verwenden, da es über ein Kernelmodul mit Ihrem System interagiert, was ein viel höheres Risiko darstellt als reine User-Space-Implementierungen. Und besonders das Kernel-Modul der virtuellen Box wird von den Kernel-Entwicklern als Mist angesehen . Eine bessere Wahl ist ein Emulator wie qemu, der als nicht privilegierter Benutzer ausgeführt wird und keinen Zugriff auf interessante und Firewall-Regeln hat, die den Netzwerkzugriff für diesen Benutzer verhindern. (Als Kommentar posten, da die Frage zu VirtualBox nicht direkt beantwortet wird)
allo

Antworten:

36

Ich beginne mit der Feststellung, dass diese Frage sehr weit gefasst ist und sehr wenig originelle Forschung zeigt und dass diese Antwort nicht als Anregung für diese Art von Frage gesehen werden sollte. Stattdessen hofft diese Antwort, einige äußerst grundlegende Sicherheitstipps für Leute zu liefern, die gerade erst mit der Malware-Analyse beginnen.

Unter der Annahme, dass Sie bekannte, zuvor recherchierte Malware verwenden, hängt die Art und Weise, wie Sie Ihre Umgebung isolieren, stark von der Fähigkeit dieser Malware ab. Einige allgemeine Regeln, die für die meisten modernen Schadprogramme gelten, könnten sein:

  • Isolieren Sie Ihre VM vom Internet. Dies kann so einfach sein, wie keine Schnittstellenweiterleitung zum Gastcomputer einzurichten, und verhindert, dass die Malware mit potenziellen Befehls- und Steuerknoten kommuniziert, die sie möglicherweise anweisen, unvorhersehbar zu handeln.

  • Verwenden Sie einen geeigneten Hypervisor. Es gibt einige wichtige auf dem Markt, darunter VirtualBox, HyperV, QEMU und macOS Hypervisor.framework, um nur einige zu nennen. Einige von ihnen werden aktiv von Malware angegriffen und sind je nach Version möglicherweise anfällig für das Ausbrechen von Malware auf dem Gastcomputer.

  • Installieren Sie auf keinen Fall Guest Additions oder das Analogon einer anderen Plattform. Das eigentliche Ziel dieser Art von Software ist es, die Integration zwischen Gast und Host herzustellen und die Trennung zwischen diesen effektiv zu schwächen. Ich bin kein Malware-Forscher, aber ich wäre überrascht, wenn es keine Malware gäbe, die speziell auf diese Art von Oberfläche abzielt.

So sprechen Sie einige Ihrer Punkte direkt an:

Wie isoliert kann eine virtuelle Maschine vom Host erstellt werden?

Zu diesem Zeitpunkt kann eine VM ziemlich vollständig isoliert sein, aber einige Funktionen müssen noch mehr oder weniger direkt mit wenig Hypervisor-Schutz über den Host ausgeführt werden. Auf Anhieb teilen sich die meisten virtuellen Maschinen (wie VirtualBox), die keine KVM-Maschinen sind, keinen Kernel mit dem Host-Betriebssystem. Dies allein dient als Blocker für zahlreiche Exploit-Klassen, insbesondere für die Blockierung der Fähigkeit, beliebige Systemaufrufe für Ihren Host-Kernel auszuführen (mit dem bemerkenswerten Sternchen, dass eine defekte VM-Layer-Implementierung es Malware ermöglichen kann, dies auf weniger offensichtliche Weise zu umgehen).

Ihre VM hat noch einen Prozessraum in Ihrem Host - Rechner-Hardware, obwohl - und obwohl dies nicht der Fall ist generell ein Risiko , weil moderne OSes anständig Prozessraum Isolation bieten, kann es immer noch verwendet werden , extrem Low-Level - Attacken wie ein auszubeuten Rowhammer , Dabei schreibt ein Prozess sequentiell auf eine bestimmte Weise in den Speicher, bis er benachbarte Speicherblöcke lesen kann, deren Eigentümer er nicht ist. Dadurch wird effektiv ein Speicherverlust zwischen den Prozessen ermöglicht.

Erwähnenswert ist auch, dass die Isolation tendenziell etwas nachlässt, wenn Sie im Wesentlichen jede Art von E / A ausführen möchten: Eingabe und Ausgabe bedeuten zwangsläufig Durchgang, wodurch eine Angriffsfläche verfügbar gemacht wird, die für die Ausführung von Hostaktionen genutzt werden kann. Dies umfasst HID-Passthrough wie Maus und Tastatur sowie Netzwerk-Passthrough - obwohl dies im Allgemeinen davon abhängt, wie gut das I / O-Passthrough in Ihrer VM implementiert ist.

Sollte (oder kann ich?) Ich eine Firewall zwischen dem Gast und dem Host einrichten?

Das kommt darauf an, ist aber im Allgemeinen keine schlechte Idee . Die meisten wichtigen Plattformen unterstützen Firewalls auf Hypervisor-Ebene. Diese sind höchstens so zulässig wie die Firewall auf Ihrem Host-Computer, die wiederum höchstens so zulässig ist wie die Firewall in Ihrem LAN oder VLAN. Wenn Sie diese Vorteile nutzen möchten, anstatt den Netzwerkzugriff vollständig zu unterbrechen, indem Sie die virtuellen Netzwerkschnittstellen trennen, sollten Sie nachforschen, welche Ports und Hosts Ihre ausgewählten Malware-Ziele haben und von dort aus vorgehen.

Sind Gast-Add-Ons ein Sicherheitsrisiko?

Ja . Sie ermöglichen alle Arten von Integrationen zwischen Ihrem Hostcomputer und dem Gastcomputer und enthalten nicht immer offene Spezifikationen, in denen Sie sehen können, was geöffnet wird. siehe oben.

Was ist mit freigegebenen Verzeichnissen?

Das hängt davon ab, wie Sie es machen, aber es ist oft eine schlechte Idee . Viele Hypervisoren erstellen dazu ein virtuelles Laufwerk auf dem Gastcomputer, dessen Stammverzeichnis sich in diesem Verzeichnis befindet. Abhängig von der Implementierung dieses Mechanismus, der zwischen den Frameworks geringfügig variieren kann, können Sie sicher sein oder auch nicht, je nachdem, welche Malware Sie testen möchten.


Ich mache mir Sorgen, dass Sie diesbezüglich nur sehr wenig Nachforschungen angestellt haben und dass Sie möglicherweise Ihren Computer oder Ihre Daten beschädigen. Bevor Sie fortfahren, sollten Sie die verschiedenen Isolationsmechanismen auf gängigen Betriebssystemen (KVMs) untersuchen, wie sie in übergeordnete Virtualisierungsframeworks ( ), Container ( ) und den zu benennenden chrootMechanismus ( ) integriert werden ein paar), wann jeder angebracht ist und was sie können und was nicht. An diesem Punkt können Sie besser beurteilen, ob Sie in einer entsprechend isolierten Umgebung sicher mit Malware spielen können oder nicht.

Schließlich sollten Sie nicht versuchen, mit neuer oder wenig bekannter Malware zu arbeiten (es sei denn, Sie sind ein erfahrener Sicherheitsforscher, aber diese Antwort richtet sich nicht an erfahrene Sicherheitsforscher). Böswillige Schauspieler sind äußerst kreativ, wenn es darum geht, was sie ausnutzen und wie sie es ausnutzen. Um sich ein Bild davon zu machen, werfen Sie einen Blick auf die jüngsten DEFCON-Gespräche, bei denen es nicht um Social Engineering oder den physischen Zugang über mechanische Mittel geht.

0xdd
quelle
3
Ich denke, es gibt im Prinzip keinen großen Unterschied in Bezug auf die Isolation zwischen KVM und VirtualBox / VMWare / ..., da alle von ihnen Kernel-Modul-Unterstützung erfordern und hardwaregestützte Virtualisierung verwenden. Vielleicht meintest du Container / Hafenarbeiter? Das besagte wohl reine QEMU-Exploits würde nur im Anwenderbereich vorkommen, aber heutzutage hat es wahrscheinlich viel weniger Kontrolle als KVM (siehe auch Exploit für Diskettenlaufwerke), aber weder KVM noch QEMU erlauben direkte Systemaufrufe in den Kernel, sondern beide erlauben indirekte (über Virtualisierung oder Paravirtualisierung). .
Maciej Piechotka
@MaciejPiechotka mein Fehler, das war falsch formuliert. Ich habe die Antwort aktualisiert, aber danke, dass du das angesprochen hast!
0xdd