Sandbox

Mit dem Begriff Sandbox wird eine Technik bezeichnet, Software innerhalb einer speziellen - d.h. von den übrigen Systemressourcen isolierten - Laufzeitumgebung auszuführen. Die Technik kann mit dem Prinzip von in sich geschlossenen, sicheren Containern verglichen werden, in denen Software ausgeführt werden kann, ohne andere Ressourcen eines Systems zu beeinflussen. Dabei sind Sandboxes keine Erfindung der Neuzeit, sondern beschäftigten Entwickler bereits seit den frühen 70er Jahren. Es gibt verschiedene Ansätze zur Realisierung von Sandboxen, die aber in jedem Fall Rückwirkung auf die Performance der Software haben.


Ein Beispiel aus der Historie der Software-Entwicklung - jedoch mit Wirkung auf Systeme der heutigen Zeit - ist das bereits 1975 entstandene System Hydra. Dort unterstützte ein Sicherheits-Kernel die Codierung von Sicherheits-Mechanismen in die mit dem Kernel kommunizierenden Anwendungsprogramme.

Heute wird der Begriff der Sandbox in verschiedenem Kontext verwendet:

  • Virtuelle Maschinen (VM) können spezielle Laufzeitumgebungen zur Verfügung stellen. Ein Beispiel ist hier die Java virtuelle Maschine (JVM).
  • Applikationen können Sandbox-Mechanismen direkt im Programmcode berücksichtigen. Proof Carrying Code (PCC) ist hier eine häufig angewandte Technik, die für die sichere Ausführung von unsicherem Code angewendet wird.
  • Eine spezielle Ebene ( Layer) kann im Anwendungsbereich beispielsweise in Form von Bibliotheks-Funktionen implementiert werden, die eigentliche System-Aufrufe abfangen.
  • Die Sandbox-Ebene kann als Teil des Betriebssystems implementiert sein.
Sandboxes haben aber nicht nur die Aufgabe eine entsprechende Testumgebung zur Verfügung zu stellen, auch verschiedene Laufzeit-Parameter können für eine anschließende Analyse aufgezeichnet werden.

Es gibt eine Reihe von Produkten, die "Sandboxing" ermöglichen. Davon nachfolgend einige Beispiele.

FAUmachine. Realisiert eine virtuelle Maschine und ist als Open-Source verfügbar.

Solaris Zones. Stellt virtuelle Services des Betriebssystems Solaris zur Verfügung, mit den voneinander getrennte Umgebungen - die Zonen - erzeugt werden können, in denen dann die Anwendungen isoliert ausgeführt werden. Dabei können sich die Prozesse unterschiedlicher Zonen nicht gegenseitig beeinflussen.

VMware Server. Verschiedene Typen von Workstations und Servermaschinen können erstellt und simuliert werden. Hierbei werden beispielsweise auch virtuelle Netzwerke unterstützt.

Klik. Eine Sandbox-Umgebung unter Linux.

BIND. Berkeley Internet Name Domain (BIND) ist eine Open-Source-Software zur Implementierung eines Domain Name Systems (DNS).

In der Programmiersprache Java wird der Begriff der Sandbox beispielsweise auch in Zusammenhang mit speziellen Applikationen - den sogenannten Applets - benutzt, die nur ganz bestimmte Rechte haben. Die Sandbox besteht dort aus dem spezifischen Klassenlader ( Klasse ClassLoader) und dem Sicherheitsmanager (SecurityManager). Der SecurityManager erlaubt zum Beispiel kein Ausführen von externen Programmen, da auf diese Weise Ressourcen des Systems wie das Dateisystem beeinflusst werden könnten.

Informationen zum Artikel
Deutsch: Sandbox
Englisch: sandbox
Veröffentlicht: 20.02.2019
Wörter: 427
Tags: #Software-Technologien
Links: Anwendungsprogramm, Applet, BS (Betriebssystem), BIND (Berkeley Internet name domain), Code