Sandbox in der Software-Entwicklung? Keine Ahnung!

Ich erkläre Dir was eine Sandbox ist und wie Du diese für Dich nutzen kannst.
Starten wir!
Was ist eine Sandbox?
Eine Sandbox ist ein simulierter, isolierter Bereich in Deinem Computer, welcher unabhängig von dem physischen System läuft. Sandboxes sind virtuelle Maschine, welche Betriebssysteme als ein normales Programm in einem laufenden Basis-Betriebssystem ausführen können. Auf Deinem Computer befinden sich dann z. B. 2 Installationen von Windows. Alles was in der Sandbox passiert, kann (sollte) nicht herausdringen. Die Sandbox kann maximal beschädigt sein, während das Basis-Windows fröhlich weiterläuft.

Anwendung von Sandboxen
Neben dem Testen von Software verwenden Entwickler Sandboxen für …
- … das Überprüfen von Programme auf Malware-Eigenschaften
- … den Betrieben von verschiedenen Betriebssystemen parallel
- … die Trennung von Produktiv-Systemen
- … die Sicherstellung der Stabilität einer Systemlandschaft (Kubernetes)
- … das Vermeiden von Schaden am Hauptsystem
- … die Trennungen von Arbeits- (Office) und Entwicklungsumgebung (Programmieren)
- … das Nutzen von Betriebssystem-exklusiven Anwendungen: Office läuft nur auf Mac und Windows – auf Linux nur bedingt, macOS beansprucht Final Cut Pro und Xcode für sich alleine, Docker funktioniert nur „gut“ auf Linux…
Wie große Software-Unternehmen Sandboxes nutzen
Stell Dir vor, Du hast im Keller einen Streaming-Server für alle Deine Katzen-Videos.
Dieser bedient parallel 10.000 Clients. Hacker Heino sendet einen Killbefehl, der den Server zum Absturz bringt. Bei den anderen 9.999 Clients bricht die Streaming-Verbindung ab.
Du versuchst den Server wieder online zu bekommen. Das Hochfahren mit allen notwendigen Programmen dauert 5 Minuten. Die 9.999 Nutzer beschweren sich mit bösen E-Mails bei Dir …
Was passiert, wenn Du nur 1 Server pro Client nutzt? Wenn der Hacker Deinen Server 1 zu Fall bringt, dann bleiben die anderen 9.999 Server unberührt. Anstatt 10.000 physische Server aufzustellen, nutzen die Admins virutelle 10.000 Sandboxen, die auf einem großen physischen Server laufen.
Sandbox – alle Vor- und Nachteile
Wieso brauche ich eine Sandbox? Hier sind ein paar Gründe dafür und dagegen:

Vorteile – Gründe eine Sandbox zu nutzen
- Falls Du beim Testen das Betriebssystem zerstörst, tauschst Du die Sandbox (in wenigen Minuten) aus.
- Du musst nicht die anderen Nutzdaten auf dem Test-Computer riskieren, weil die Sandbox einen abgetrennten Festplatten-Speicher und Hauptspeicherbereich zu gewiesen bekommen hat.
- Teste mit verschiedenen Versionen eines Betriebssystems Deine Software, um die Up- und Down-Kompatibilität zu testen (Windows XP, Windows 7, Windows 10 usw.)
Nachteile – Sandboxen sind keine Universallösung
- Die Einrichtung ohne Sandbox-Datei kann länger dauert
- Die Sicherungsdateien einer Sandbox sind groß (ein Linux mit einer Entwicklungsumgebung entspricht bei mir 30 + GB)
- Die Sandboxen sind nur für leistungsstarke Maschinen geeignet, weil diese das Gast- und Host-Betriebssystem gleichzeitig ausführen. Dein Computer braucht min. 8 GB Hauptspeicher (RAM) und min. freie 50 GB Festplattenspeicher (am besten SSD).
- Das Anhalten einer virtuellen Maschine im laufenden Prozess dauert lange, weil der Hauptspeicher seinen gesamten Inhalt auf die Festplatte schreibt.
- Sandboxen und Virtualisierungen sind immer langsamer als eine echte native Installation, weil die Virtualiserungsschicht immer ein extra Aufgaben für den Computer ist.
Alternativen für Sandboxen
Verwende das Windows Subsystem für Linux (WSL) zum Programmieren, Testen und Spiel mit Linux.

Ubuntu, Open Suse, Debian und Kali Linux kannst Du in der WSL installieren und für jegliche Aufgaben nutzen. Viele Verbesserungen mit eigenen Kernel bringt WSL 2 mit sich (Windows 10 Version 2004).
Die WSL dient zur nativen Ausführung von Linux Programmen auf Windows. Wenn Du nach einer robusten Entwicklungsumgebung suchst und auf Office nicht verzichten kannst, nutze die WSL. Eine WSL arbeitet performanter mit weniger System-Ressourcen als ein komplettes Linux.
Linux User können sich in WSL 2 auf einen vollständigen Linux Kernel mit allen klassischen Linux-Befehlen freuen.
Tutorial für die Windows Sandbox
Bevor Du Dir VMware oder VirtualBox herunterlädst, verwende die Windows eigene Sandbox (ab Windows 10 Version 1903), wenn Du nur ein kleines Programm testen willst:
- Überprüfe mit dem Task-Manager, ob die Virtualisierung eingeschaltet ist
Leistung > CPU > Beschreibung unten - Optional: Aktivere die Virtualisierung in Deine BIOS (Geräte-spezifisch)
- Suche in den Programmen „Optionale Features“
- Setze den Harken bei Windows Sandbox
- Starte den Computer neu
- Suche nach der Windows Sandbox
- Starte die Sandbox mit den Admin-Rechten
- Beachte: Nach dem Schließen reinigt sich die Sandbox komplett und kein Programm oder Datei ist mehr verfügbar. Die Sandbox ist nur zum Testen gedacht
Voraussetzungen zur Nutzung von Sandboxen
Dein Windows-Rechner (Host-OS) sollte für ein virtualisiertes, durchschnittliches Linux (Linux Mint, Arch Linux, Debian usw.) mind. 8 GB Arbeitsspeicher und mind. 50 GB SSD mitbringen. Eine HDD verlangsamt das Starten, Stoppen und Bedienung des Linuxs.
Bedenkt: Wenn Du vorhast das Gast-OS länger zu nutzen, plane ausreichend Festplatten-Speicher (Programme + Nutzdaten) ein. Eine Speichervergrößerung ist nicht immer möglich bzw. nicht einfach durchzuführen.
Die Virtualisierung mit der Hyper-V in Windows muss angeschaltet sein.
Sandbox Software für die Praxis
Eine Auswahl an kostenlosen Sandboxen kannst Du im Internet downloaden und finden.
- VMware entwickelt Virtualisierungssoftware (Cloud-Computing) für Linux, Windows und Mac. Mit einem Umsatz von 9 Mrd. Dollar in 2018 stellt VMware den Hypervisor (Virtual Machine Monitor) her.
- VirtualBox gilt als die kostenfreie Alternative zur VMware für x86, AMD64 und Intel64. Die Software ist mit GPLv2 für alle bekannten Betriebssysteme lizenziert (Copyleft).
- KVM (Kernel-based Virutal Machine) ist eine Virtualisierungslösung für x86-Hardware mit Intel-VT- and AMD-V-Erweiterungen.
- Der Quick Emulator (QEMU) ist ein Open Source Hypervisor mit Hardware.
- Windows Sandbox ist ab Windows 10 Version 1903 für jeden verfügbar.
„Wie soll ich eine Sandbox in VMware erstellen?“ – Ich habe zu VMware ein ausführliches Schritt-für-Schritt-Tutorial entwickelt, welches Du für die Einrichtung Deiner Sandbox nutzen kannst.
Bevor Du anfängst, VMware oder VirtualBox einzurichten, überlege, ob ein fertiges Image mit allen Einstellungen für Deine Bedürfnisse ausreicht. Jemand anderes kann bereits ein VMware-Image mit Deinem Wunsch-Betriebssystem in der neusten Version hochgeladen.
Meine Tipps zum Testen verscheiden Betriebssysteme
Was sind gute Betriebssysteme, die nichts kosten? Teste doch mal …
- Du brauchst es modern, schnell und elegant? – Nutze Elementary OS.
- Hacker lieben Kali Linux mit vielen guten Configs.
- Ein vielseitiges Betriebssystem ist Linux Mint mit großer Community.
- Verwende das leicht gewichtiges Arch Linux zum Selbst werkeln
Bonus: Effektiver Schutz gegen Virus + Trjoaner – Malware Sandbox
Stell Dir vor, Du brauchst einen neuen Video-Player aus dem Netz. Du gehst auf eine Download-Plattform und lädst Dir den nächsten Player runter, der Deinen Vorstellungen entspricht.
- Wer sagt, dass der Download Malware-frei ist?
- Traust Du der Download-Plattform blind die Sicherheit Deines Computers an?
Wenn das Programm mit Admin-Rechten eine Malware ist, dann sage Bye-Bye zu Deinen Daten und Deinem Betriebssystem. Falls Du ein Offline-Backup hast, kannst Du viele Daten retten, aber nicht alle.
Nutze eine Malware Sandbox! Teste nicht-vertrauenswürdige Software auf einem isolierten System aus, bevor Du versuchst das Programm auf Deiner Host-OS zu installieren! Hier ein paar Malware-Sandboxen:
- Hybrid Analysis mit Falcon Sandbox
- Intezer Analyze
- SecondWrite Malware Deepview
- ViCheck für eine statische Analyse