Sandbox
# Sandbox

Sandbox ist die englischsprachige Bezeichnung für Sandkiste oder Sandkasten und bezeichnet allgemein einen isolierten Bereich, innerhalb dessen jede Maßnahme keine Auswirkung auf die äußere Umgebung hat.

## Testbereich in der Informatik

Beim Testen von Software muss darauf geachtet werden, dass das System, auf dem getestet wird, durch diese Software nicht verändert, gestört oder in irgendeiner Form beschädigt wird. Bei Software, die zur Lauffähigkeit installiert werden muss, ist das nicht trivial. So werden beispielsweise in Windows-Betriebssystemen bei einer Installation meist Änderungen in der zentralen Registrierungsdatenbank (Registry) vorgenommen, was insbesondere Konflikte mit anderen Versionen dieser Software verursachen kann.
Die Sandbox steht nun für Besonderheiten der Laufzeitumgebung einer Software oder der lokalen Arbeitskopie eines in einem Versionsverwaltungssystem abgelegten Software-Moduls (siehe z. B. Apache Subversion, Git). Die Software wird vom Rest des Systems abgeschirmt, quasi in den Sandkasten gesetzt, in dem sie einerseits keinen Schaden anrichten kann und andererseits die Wirkungen der Software aufgezeichnet werden können. Dabei gibt es unterschiedlich tiefgehende Techniken, die vom Umbiegen eines Dateisystems und, wiederum im Fall von Microsoft Windows, der Registry wie z. B. bei Sandboxie, bis hin zur (kompletten) Simulation eines vollständigen Rechners, wie etwa VMware, Bochs oder FAUmachine, reichen.
Ein Anwendungsgebiet ist der Einsatz des DNS-Serverprogrammes BIND unter Unix. Der Prozess des Programmes wird in einer virtuellen Laufzeitumgebung gestartet, einem sogenannten jail (Englisch: Gefängnis), um es potenziellen Angreifern zu erschweren, bei erfolgreichen Attacken auf diese Software das Gefängnis zu verlassen und damit die eigentliche Betriebssystemumgebung zu erreichen.
Eine andere Anwendung ist die Softwareinstallation der Linux-Distribution Gentoo oder die Installation eines eigenen Linuxsystems (z. B. nach der LFS-Anleitung). Da die Softwareinstallation fehleranfällig ist und eine partielle Installation das ganze System beschädigt, wird zunächst in eine Sandbox installiert, und nur bei Erfolg werden die Änderungen auf das System übertragen.
Tägliche Anwendung findet die Abgrenzung von potenziell unsicheren Programmteilen in heutigen Webbrowsern, so arbeiten Chromium-basierte Browser für einzelne Webseiten und Plugins jeweils in unabhängigen Sandbox-Prozessen, wodurch die Stabilität erhöht wird und ein Browser-Exploit wesentlich schwieriger Kontrolle über das Anwender-System erhalten kann.
In der Webentwicklung spielen Sandboxen beispielsweise auch bei der Anbindung von Zahlungsanbietern in Online-Shops eine Rolle. Mit ihnen kann vor der Veröffentlichung geprüft werden, ob das angedachte Zahlverfahren wie gewünscht funktioniert und die notwendigen Aktionen (Kaufbestätigung, Bestellstatus, Zahlungszuordnung etc.) ausgelöst werden. Ein Beispiel dafür ist die Integration von Google-Payments in Form von „Order with Google“.