Sandbox: Zweck und Anwendung einfach erklärt
Ein neues Computerprogramm auf seine Funktionsfähigkeit zu überprüfen ist ein wichtiger Schritt in der Software-Entwicklung. Denn auch wenn der Quellcode keine sichtbaren Fehler aufweist, kann es bei der praktischen Anwendung zu unerwarteten Komplikationen kommen. Aber das Testen einer unausgereiften oder unbekannten Software birgt auch gewisse Risiken. So kommt es vor, dass das Programm bei seiner Installation durch fehlerhaften und dadurch schädlichen Code das jeweilige Betriebssystem verändert oder sogar beschädigt. Eine Sandbox schafft hier Abhilfe. Diese bietet Ihnen die Möglichkeit, Ihre Software oder fremden Code aus dem Internet in einer isolierten Umgebung ohne Auswirkungen auf das System zu testen.
Was ist eine Sandbox?
In der IT-Welt sind die Begriffe Sandbox oder Sandboxing immer häufiger zu hören. Aber was ist eine Sandbox genau und wie wird sie eingesetzt? Mit der Sandbox-Technik schaffen Sie ein isoliertes Testumfeld innerhalb eines Systems. So lassen sich bestimmte Aktionen durch ein Programm ausführen, ohne dass dieses Hardware-Schäden anrichten kann. Im Grunde geht es beim Sandboxing also darum, Ihr Betriebssystem vor fehlerhaftem Code oder Malware abzuschirmen und so zu schützen. In der Software-Entwicklung sowie der Cybersicherheit gehört Sandboxing mittlerweile zum Standardverfahren und bietet gerade größeren Unternehmen notwendigen Schutz vor Systemschäden und Cyberangriffen.
Sandboxing ist kein neues Konzept, sondern entstand bereits mit der Entwicklung der ersten PC-Systeme. In den 1970er Jahren verwendeten Programmierer Sandboxes zu Testzwecken und für Simulationen. So wollten sie feststellen, ob ein bestimmter Code in einem geschlossenen Umfeld funktioniert. Erste Sicherheitsmechanismen wie Hydra schützten dabei nicht nur die teure Hardware, sondern hatten noch einen weiteren Vorteil: Mit der Sandbox-Technik ließ sich nämlich aufzeichnen, welche Probleme ohne die Isolierung aufgetreten wären.
Heute geben Ihnen bestimmte Programme nicht nur die Möglichkeit, Zugriffe auf Ihre Registrierungsdatenbank abzufangen und umzuleiten. Mit virtuellen Maschinen (VM) können Sie sogar einen vollständigen Rechner simulieren.
Wie funktioniert eine Sandbox?
Sandboxes lassen sich auf verschiedene Weisen erzeugen. Während Programmierer früher ein eigenes abgeschirmtes Testumfeld entwickelten, stehen ihnen heute sofort einsetzbare Programme zur Verfügung. Je nach Betriebssystem und Zweck gibt es verschiedene Versionen mit entsprechendem Umfang und unterschiedlichen Vorgehensweisen. Und das aus gutem Grund: Ein Entwickler, der an einem neuen Computerprogramm arbeitet, hat andere Bedürfnisse als ein Unternehmen, das sein Betriebssystem vornehmlich vor unbekanntem Code und Cyberangriffen schützen möchte. In der Regel gilt: Je mehr vom realen Systemumfeld die Sandbox-Anwendung simulieren soll, desto größer ist auch der Ressourcenbedarf.
Im Folgenden ein kleiner Überblick zu verschiedenen Sandbox-Versionen und ihren Funktionsweisen:
- Sandbox-Programme: Ein beliebtes alleinstehendes Programm in der Sandbox-Technologie ist Sandboxie, das für Windows-Nutzer eine fertige Sandbox bereitstellt. Ist diese aktiviert, werden alle Schreibzugriffe durch das potenziell schädliche Programm auf die Hardware in einen Ordner umgeleitet, den Sie vor dem Test selbst definieren. Dateien, die in der Sandbox abgespeichert sind, können auf Befehl in das reale System übertragen werden. Innerhalb solcher Anwendungen haben Sie die Möglichkeit, mehrere Sandboxes gleichzeitig zu verwalten.
- Sandbox im Betriebssystem: Durch manche Applikationen nutzen Sie die Sandbox mithilfe von Layers und Ebenen direkt in Ihrem Programmcode. Diese Sandbox ist dann Teil Ihres Betriebssystems, aber eine in sich geschlossene Komponente. Wie bei anderer Sandbox-Software geben Sie bestimmte Parameter für die Laufzeit des jeweiligen Programms an, was eine gezielte Sandbox-Analyse ermöglicht. Mit Windows 10 (ab Version 1903, Build 18305) erhalten Sie gleich die integrierte Windows-Sandbox, die Sie selbst aktivieren oder deaktivieren können.
- Virtuelle Maschinen: Viel umfangreicher als einzelne Programme sind virtuelle Maschinen (VM). Eine VM lässt sich wie ein ganz normaler Rechner bedienen und befindet sich aufgrund ihrer Größe oft auf einem separaten Server. Es ist möglich, die VM-Virtualisierung in mehrere Gastsysteme aufzuteilen. Dabei bestehen diese Quasi-Systeme unabhängig voneinander und sind vollständig von der Hardware abgekapselt. Bekannte VMs mit komplettem Interface sind VMware, Java Virtual Machine sowie FAUmachine für Linux und macOS.
- Plug-in-Sandbox: Ein Beispiel für die Sandbox als Plug-in liefert die Programmiersprache Java. Hier wird die Sandbox durch die sogenannten Java-Applets genutzt. Applets sind Computerprogramme, die in einem Client-Webbrowser ausgeführt werden. Durch die integrierte Sandbox läuft der im Internet geladene Programmcode jedoch in einer abgeschotteten Umgebung ab, sodass Festplatten, der Arbeitsspeicher und die Funktionen Ihres Betriebssystems geschützt bleiben.
Neben den softwarebasierten Sandbox-Programmen gibt es auch sogenannte Micro-Virtualisierungen, die direkt in der Hardware ausgeführt werden. Anders als Sandboxes konzentrieren sich diese jedoch nicht auf das Auffinden von Schadcode, sondern auf den Schutz vor direkten Malware-Auswirkungen.
Wo wird Sandboxing eingesetzt?
Einsatzmöglichkeiten für das Sandboxing gibt es viele. Generell sind die Ziele, die mit dieser Technologie verfolgt werden, in zwei Bereichen angesiedelt: Software-Testing und Cybersicherheit. Welche Funktion sie dort erfüllen, finden Sie hier kurz zusammengefasst:
Software-Testing: Sandboxes spielen eine große Rolle im Zusammenhang mit dem Testen einer neu entwickelten Software. Die Virtualisierung von Rechnersystemen hilft Programmierern dabei, eine sichere und funktionstüchtige Anwendung zu entwickeln und diese in unterschiedlichen Umgebungen zu testen. Sandbox-Testing ist hier also ein Tool, das Entwicklern aufzeigt, wann sie einen Code umprogrammieren müssen. Manchmal wird Sandboxing verwendet, um parallel ausgeführte Programme voneinander abzuschotten, da sie untereinander nicht kompatibel sind. Da Code in der Sandbox sicher ausgeführt wird, nutzen IT-Experten diese Technologie auch, um Malware zu analysieren und deren Auswirkungen auf das Betriebssystem festzustellen.
Cybersicherheit: Auch wenn es um die Sicherheit von Browsern geht, sind Sandbox-Tools neben einem effektiven Firewall-Sicherungssystem eine beliebte Lösung. Sie schützen das Betriebssystem beim Start von kritischen Anwendungen vor Manipulation. Gerade Behörden und Unternehmen, die mit sensiblen Daten arbeiten, müssen sich vor Advanced Persistent Threats (APTs) schützen. Darunter versteht man verdeckte und wiederkehrende Hackingangriffe, die über einen längeren Zeitraum operieren. Auch der normale Internetnutzer kann mit einer Sandbox-Anwendung sicherer surfen. Tatsächlich arbeiten die heutigen Chromium-basierten Webbrowser bei jeder Webseite oder geladenen Plug-ins mit getrennten Sandbox-Prozessen, um Browser-Exploits zu verhindern.
Wie sicher ist das Sandboxing?
Es gibt viele Argumente, die für die Verwendung der Sandbox-Technologie sprechen. Es bleibt jedoch die Frage, wie sicher Sandboxes wirklich sind, wenn es um Cyberkriminalität geht. Generell sollten Sie sich als Sandbox-Anwender nicht in falscher Sicherheit wiegen. Denn genauso wie moderne Sicherheitsmechanismen entwickeln sich auch Hackerangriffe weiter. Intelligente Cyberangriffe erkennen klassische Sandboxing-Umgebungen und können diese einfach umgehen, indem der Schadcode vor der Installation zunächst harmlos erscheint. Aus diesem Grund empfehlen Experten nicht nur ein siloartig aufgebautes Standalone-System, sondern gleich mehrere Sandbox-Technologien auf unterschiedlichen Ebenen zu nutzen. Die Multi-Sandbox-Array-Technologie verwendet z. B. mehrere Sandboxen in derselben Cloud.
Hier sehen Sie die Vor- und Nachteile von Sandboxes noch einmal kurz zusammengefasst:
Vorteile | Nachteile |
---|---|
Kontrollierbare Testumgebung bei neuer Software | Nutzer wiegen sich in Sicherheit und werden nachlässig |
Schutz der Hardware / des Betriebssystems / der Registrierdatenbank | Besonders ältere Sandboxes weisen Sicherheitslücken auf |
Kein unerlaubter Datenzugriff auf das Hostsystem | Komplexe Sandbox-Tools sind ressourcenhungrig und kostspielig |
Keine Konflikte zwischen Programmen oder Betriebssystem und Programm | |
Sichereres Browsen im Internet durch Schutz vor Malware |
Sandboxes bieten Entwicklern eine sichere Umgebung, um noch nicht ausgereifte Software ausgiebig zu testen. In der Cybersicherheit sind Sandboxes am effektivsten, wenn sie in mehreren Schichten eingesetzt und mit anderen Sicherheitsmaßnahmen kombiniert werden.