Sandbox unter Windows

Sandboxing ist ein neues leichtes Tool unter Windows, mit dem Sie Anwendungen in einer sicheren, isolierten Umgebung ausführen können.

Haben Sie sich jemals in einer Situation befunden, in der Sie ein Programm ausführen müssen, sich aber nicht ganz sicher sind, woher es stammt? Oder ein anderes Beispiel - die Notwendigkeit, etwas in einer "sauberen" Version von Windows zu überprüfen. In all diesen Fällen gab es zuvor nur einen Ausweg - das Betriebssystem auf einer separaten physischen oder virtuellen Maschine zu installieren und das erforderliche Experiment durchzuführen. Dies ist jedoch nicht mehr der Fall.

Microsoft hat einen neuen Mechanismus namens Sandbox (dt. Windows Sandbox) entwickelt. Dies ist eine isolierte temporäre Umgebung, in der Sie verdächtige Software ausführen können, ohne den PC zu beschädigen. In der Sandbox installierte Software verbleibt nur in der Sandbox und kann nicht mit dem Hauptbetriebssystem interagieren. Sobald Sie die Sandbox schließen, wird der gesamte Inhalt unwiederbringlich zerstört.

Hier sind die Hauptfunktionen der Sandbox:

  • Dies ist Teil des Windows-Betriebssystems. Wenn Sie Windows 10 Pro oder Enterprise haben, können Sie es bereits verwenden.
  • Aus einer sauberen Tafel. Jedes Mal, wenn Sie die Sandbox starten, erhalten Sie dieselbe saubere und unveränderliche Umgebung. Genau das, was Ihr Betriebssystem direkt nach der Installation war.
  • Keine Spur. Wenn Sie die Sandbox schließen, werden alle darin installierten Anwendungen und alle dort erstellten Dateien zerstört. Sie schlossen den Sandkasten - es gab keine Spuren seiner Existenz.
  • Sicherheit Es verwendet Hardware-Virtualisierung, die einen Hypervisor verwendet, um einen separaten Betriebssystemkernel auszuführen und ihn von Ihrem Hauptbetriebssystem zu isolieren
  • Effizienz Es verwendet einen integrierten Taskplaner, eine intelligente Speicherverwaltung und eine virtuelle GPU.

Systemanforderungen


  • Windows 10 Pro oder Enterprise, Build 18305 oder höher
  • AMD64-Architektur
  • BIOS-fähige Virtualisierung
  • Mindestens 4 GB (8 GB empfohlen) RAM
  • Mindestens 1 GB freier Speicherplatz (SSD empfohlen)
  • Dual-Core-Prozessor (4 empfohlen mit Hyper-Threading-Unterstützung)

Schnellstart


1. Installieren Sie Windows 10 Pro oder Enterprise Build 18305 oder höher

2. Aktivieren Sie die Virtualisierung:

  • Wenn Sie auf einem physischen Computer arbeiten, tun Sie dies im BIOS
  • Wenn Sie in einer virtuellen Maschine arbeiten, verwenden Sie den folgenden PowerShell-Befehl:

    Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true 

3. Öffnen Sie (über die Systemsteuerung) eine Liste der installierten Windows-Komponenten und aktivieren Sie die Sandbox darin. Klicken Sie auf OK. Wenn Sie eine Aufforderung zum Neustart des Computers sehen, bestätigen Sie diese.

Bild

4. Starten Sie die Sandbox über das Startmenü. Erlaube die Erhöhung von Rechten für ihren Prozess.

5. Kopieren Sie (über die Zwischenablage) die Binärdatei, die Sie ausführen möchten, in die Sandbox.

6. Starten Sie die Binärdatei in der Sandbox. Wenn dies ein Installationsprogramm ist, führen Sie das Installationsverfahren durch und führen Sie die installierte Anwendung aus.

7. Verwenden Sie die Anwendung wie vorgesehen.

8. Wenn Sie fertig sind, schließen Sie einfach die Sandbox. Der gesamte Inhalt wird gelöscht.

9. Optional - Sie können sicherstellen, dass sich in Ihrem Hauptbetriebssystem nichts geändert hat.

Bild

Was ist unter der Haube der Sandbox


Die Windows Sandbox basiert auf einer Technologie namens Windows Container. Container wurden entwickelt (und werden seit langem verwendet), um in der Cloud zu arbeiten. Microsoft hat bereits eine ziemlich ausgereifte und getestete Technologie für Benutzer von Desktop-Windows fertiggestellt.

Unter den wichtigsten Anpassungen können festgestellt werden:

Dynamisch erzeugtes Bild


Die Sandbox ist zwar leicht, aber immer noch eine virtuelle Maschine. Und wie jede virtuelle Maschine benötigt sie ein Image, von dem sie booten kann. Das wichtigste Merkmal der Sandbox ist, dass Sie dieses Bild nicht von irgendwoher herunterladen oder erstellen müssen. Es wird im laufenden Betrieb aus den Dateien Ihres aktuellen Windows-Betriebssystems erstellt.

Wir möchten immer die gleiche „saubere“ Umgebung für die Sandbox erhalten. Es gibt jedoch ein Problem: Einige Systemdateien können sich ändern. Die Lösung bestand darin, ein „dynamisch generiertes Bild“ zu erstellen: Für die geänderten Dateien werden die Originalversionen darin enthalten, unveränderliche Dateien werden jedoch nicht physisch in dieses Bild aufgenommen. Stattdessen verwenden sie Links zu realen Dateien auf der Festplatte. Wie die Praxis gezeigt hat, sind die meisten Dateien im Bild solche Links. Nur ein kleiner Teil davon (ca. 100 MB) wird vollständig in das Bild aufgenommen - dies entspricht seiner Größe. Wenn Sie die Sandbox nicht verwenden, werden diese Dateien in komprimierter Form gespeichert und belegen etwa 25 MB. Wenn Sie die Sandbox starten, werden sie auf einem sehr „dynamischen Image“ mit einer Größe von etwa 100 MB bereitgestellt.

Bild

Intelligente Speicherverwaltung


Die Sandbox-Speicherverwaltung ist eine weitere wichtige Verbesserung. Mit dem Hypervisor können Sie mehrere virtuelle Maschinen auf derselben physischen Maschine ausführen. Dies funktioniert im Allgemeinen gut auf Servern. Im Gegensatz zu Servern sind die Ressourcen normaler Benutzercomputer jedoch viel begrenzter. Um ein akzeptables Leistungsniveau zu erreichen, hat Microsoft einen speziellen Speichermodus entwickelt, in dem das Hauptbetriebssystem und die Sandbox in einigen Fällen dieselben Speicherseiten verwenden können.

Tatsächlich: Da das Hauptbetriebssystem und die Sandbox dasselbe Betriebssystemabbild ausführen, sind die meisten darin enthaltenen Systemdateien identisch, was bedeutet, dass es keinen Sinn macht, dieselben Bibliotheken zweimal in den Speicher zu laden. Sie können dies einmal im Hauptbetriebssystem tun. Wenn dieselbe Datei im Sandbox-Speicher benötigt wird, können Sie ihr einen Link zu derselben Seite geben. Natürlich sind einige zusätzliche Maßnahmen erforderlich, um die Sicherheit dieses Ansatzes zu gewährleisten, aber Microsoft hat sich darum gekümmert.

Bild

Integrierter Planer


Bei Verwendung herkömmlicher virtueller Maschinen steuert der Hypervisor den Betrieb der darin ausgeführten virtuellen Prozessoren. Für die Sandbox wurde eine neue Technologie namens "Integrierter Scheduler" entwickelt, mit der das Hauptbetriebssystem entscheiden kann, wann und wie viele Ressourcen der Sandbox zugewiesen werden sollen. Das funktioniert so: Virtuelle Sandbox-Prozessoren funktionieren wie Threads im Sandbox-Prozess. Infolgedessen haben sie die gleichen "Rechte" wie die anderen Threads in Ihrem Hauptbetriebssystem. Wenn beispielsweise einige Threads mit hoher Priorität für Sie arbeiten, benötigt die Sandbox nicht viel Zeit, um ihre Aufgaben zu erledigen, die eine normale Priorität haben. Auf diese Weise können Sie die Sandbox verwenden, ohne die Arbeit kritischer Anwendungen zu verlangsamen und eine ausreichende Reaktionsfähigkeit der Benutzeroberfläche des Hauptbetriebssystems aufrechtzuerhalten, ähnlich wie bei Linux KVM .

Die Hauptaufgabe bestand darin, die Sandbox einerseits zu einer gewöhnlichen Anwendung zu machen und andererseits ihre Isolation auf der Ebene klassischer virtueller Maschinen zu gewährleisten.

Verwenden von Snapshots


Wie oben erwähnt, verwendet die Sandbox einen Hypervisor. Wir führen im Wesentlichen eine Windows-Kopie in einer anderen aus. Und das bedeutet, dass das Laden einige Zeit dauern wird. Wir können es jedes Mal ausgeben, wenn Sie die Sandbox starten, oder nur einmal, nachdem Sie nach dem Laden des gesamten Status des virtuellen Betriebssystems (geänderte Dateien, Speicher, Prozessorregister) auf der Festplatte gespeichert haben. Danach können wir die Sandbox von diesem Image aus starten und gleichzeitig ihre Startzeit speichern.

Grafikvirtualisierung


Die hardwarebasierte Virtualisierung von Grafiken ist der Schlüssel zu einer reibungslosen und schnellen Benutzeroberfläche, insbesondere für "schwere" Grafikanwendungen. Klassische virtuelle Maschinen sind jedoch zunächst nur eingeschränkt in der Lage, alle Ressourcen der GPU direkt zu nutzen. Und hier spielen Grafikvirtualisierungstools eine wichtige Rolle, mit denen dieses Problem behoben und in irgendeiner Form die Hardwarebeschleunigung in einer virtuellen Umgebung verwendet werden kann. Ein Beispiel für eine solche Technologie könnte beispielsweise Microsoft RemoteFX sein .

Darüber hinaus arbeitete Microsoft aktiv mit Herstellern von Grafiksystemen und Treibern zusammen, um Grafikvirtualisierungsfunktionen direkt in DirectX und WDDM (ein Treibermodell in Windows) zu integrieren.

Infolgedessen funktionieren die Grafiken in der Sandbox wie folgt:

  • Eine Anwendung in der Sandbox verwendet grafische Funktionen auf die übliche Weise, ohne zu wissen, wer und wie sie ausgeführt werden
  • Das Sandbox-Grafiksubsystem, das Befehle zum Rendern von Grafiken erhalten hat, überträgt diese an das Hauptbetriebssystem
  • Das Hauptbetriebssystem, das Befehle zum Rendern von Grafiken erhalten hat, nimmt diese als von einer lokal gestarteten Anwendung stammend wahr und führt sie entsprechend aus, wobei die erforderlichen Ressourcen zugewiesen und verwaltet werden.

Dieser Prozess kann wie folgt dargestellt werden:

Bild

Auf diese Weise kann die virtuelle Umgebung uneingeschränkt auf hardwarebeschleunigte Grafiken zugreifen, was sowohl eine Leistungssteigerung als auch einige Ressourcen (z. B. Batterieleistung für Laptops) zur Folge hat, da umfangreiche Berechnungen auf der CPU nicht mehr zum Rendern von Grafiken verwendet werden.

Batterieverbrauch


Die Sandbox hat Zugriff auf Informationen zur Batterieladung und kann ihre Arbeit optimieren, um sie zu speichern.

Bewertungen und Fehlerberichte


In jeder neuen Technologie können Fehler auftreten. Microsoft bittet Sie, über den Feedback Hub Nachrichten und Vorschläge für neue Funktionen zu senden.

Source: https://habr.com/ru/post/de433706/


All Articles