UNTRUSTEDCODE/etccredsnetSANDBOXno access outside

Sandboxen

10 Min. gelesenSicherheit

Sandboxing ist das Sicherheitsmuster, das es Ihrem Browser ermöglicht, JavaScript von jeder Website aus auszuführen, Ihr Telefon Apps von beliebigen Entwicklern auszuführen und Ihr Laptop E-Mail-Anhänge zu öffnen – und das alles, ohne dass diese Programme Ihre Bankkontodatei lesen können. Es ist die Technologieschicht, die nicht vertrauenswürdigen Code von einer Schwachstelle in eine Funktion verwandelt hat.

Der vollständige Artikeltext ist unten in englischer Sprache aufgeführt.

Sandboxing ist die Praxis, Code in einer eingeschränkten Umgebung auszuführen, die verhindert, dass er auf Ressourcen außerhalb seiner Grenzen zugreift. Die Sandbox begrenzt, welche Dateien sie lesen kann, welche Netzwerkverbindungen sie herstellen kann, mit welchen anderen Prozessen sie kommunizieren kann und welche Systemaufrufe sie aufrufen kann. Wenn sich herausstellt, dass der Code bösartig oder fehlerhaft ist, wird der Schaden eingedämmt.

XPLZ4 Erweiterungen, IDE-Plugins, Abhängigkeiten in Ihrem Code XPLZ15 Sandboxing ist es, was das Modell funktionieren lässt.

XPLZ22 Der Browser-Kernel entscheidet, was der Prozess tun darf. Die Sandbox deklariert die benötigten Systemaufrufe (Lesen, Schreiben, mmap usw.) und der Kernel lehnt alles andere ab.
  • Namespaces und Funktionen unter Linux – isolierte Ansichten des Dateisystems, der Prozesse, des Netzwerks usw. Aus diesen Grundelementen werden Container erstellt. Apps ohne Berechtigungen können nicht auf diese Funktionen zugreifen.
  • XPLZ44 gefunden.
  • Browser-Sandboxen im Detail

    Der Browser ist die öffentlichste und am häufigsten angegriffene Sandbox im Computerbereich. Der Browserkernel wird als vertrauenswürdiger Prozess ausgeführt. Jeder Renderer-Prozess – einer oder mehrere pro Registerkarte – wird als nicht vertrauenswürdiger Prozess mit minimalen Funktionen ausgeführt. Der Renderer kann: Kann nicht: Sandbox-Escape-Schwachstellen. Die lukrativste Einzelprämie auf Chrome (über 200.000 US-Dollar) gilt für eine vollständige Kette, die der Sandbox entgeht.

    XPLZ80 Android, URL-Schemata und AppExtensions auf iOS). Das Betriebssystem fordert den Benutzer zur Laufzeit zur Eingabe von Berechtigungen im Funktionsstil (Kamera, Mikrofon, Kontakte) auf. Das Ergebnis: Malware wird auf einem Telefon viel besser eingedämmt als auf einem Desktop.

    WebAssembly und die neue Sandbox

    WebAssembly wurde von Anfang an mit Sandboxing als erstklassiger Eigenschaft konzipiert. Ein WASM-Modul hat keine eigenen Systemaufrufe; Alles muss von der Host-Umgebung bereitgestellt werden (WASI für APIs im Systemaufrufstil, Web-APIs in Browsern). Dies macht WASM zu einem guten Kandidaten für die Ausführung nicht vertrauenswürdiger Plugins in vertrauenswürdigen Anwendungen – ein Anwendungsfall, der zuvor eine starke Prozessisolierung erforderte. Tools wie wasmtime und wasmer verwenden dieses Modell.

    Wenn Sandboxes ausfallen

    Sandbox-Escape-Schwachstellen sind real und wertvoll. Die wiederkehrenden Fehlermodi:

    • Bugs in der Kernel-Oberfläche. Selbst durch Seccomp eingeschränkte Prozesse können manchmal Kernel-Bugs ausnutzen, die über erlaubte Systemaufrufe erreichbar sind.
    • IPC-Bugs. Die Schnittstellen, die die Sandbox verwendet, um mit dem Broker-Prozess zu kommunizieren, sind selbst Angriffsfläche.
    • Seitenkanäle. Spectre und Meltdown zeigte, dass CPU-Optimierungen dazu führen können, dass Daten über Prozessgrenzen hinweg verloren gehen. Moderne Sandboxes mildern dies, aber das zugrunde liegende Problem bleibt ein Problem auf Hardwareebene. Defense-in-Depth kombiniert Sandboxing mit anderen Maßnahmen (speichersichere Sprachen, Sanitizer, Reduzierung der Angriffsfläche).

      Was Sandboxing für Sie bedeutet

      Für Endbenutzer ist Sandboxing größtenteils unsichtbar. Die praktische Implikation: Halten Sie Browser und Betriebssysteme auf dem neuesten Stand, da Sandbox-Escapes die Sicherheitskorrekturen mit der höchsten Priorität sind. Vermeiden Sie es, Sandbox-Funktionen zu deaktivieren (einige Linux-Benutzer deaktivieren Seccomp-Profile, einige Power-Benutzer deaktivieren die Sandbox-Flags von Chrome), es sei denn, Sie verstehen die Konsequenzen. Browser werden standardmäßig gehärtet ausgeliefert; Die Standardeinstellung ist für fast alle Benutzer korrekt.

    Häufig gestellte Fragen

    Ist Sandboxing dasselbe wie Virtualisierung?
    Sie überschneiden sich, sind aber nicht identisch. Durch die Virtualisierung werden ganze Betriebssysteme in einem Emulator ausgeführt. Die Isolation erfolgt auf Hardware-Virtualisierungsebene. Sandboxing führt normalerweise Prozesse innerhalb desselben Betriebssystems mit durch den Kernel erzwungenen Einschränkungen aus. Virtualisierung ist schwerer, sorgt aber für eine stärkere Isolation; Moderne Designs kombinieren oft beides (Firecracker-VMs für Serverless, gVisor für Container).
    Verlangsamt Sandboxing die Dinge?
    Bescheidener Overhead – typischerweise einstelliger Prozentwert für die Systemaufruffilterung, etwas mehr für die Prozessisolation. Die Leistungskosten wurden durch Hardwareunterstützung (Intel CET, ARM PAC) aktiv reduziert, sodass moderne Sandboxes für die meisten Workloads im Wesentlichen kostenlos sind.
    Kann ein VPN seiner Sandbox entkommen?
    VPN-Client-Software benötigt in der Regel mehr Berechtigungen als Sandbox-Apps – sie konfigurieren Routing und Netzwerkschnittstellen. Auf macOS und iOS verwenden sie spezielle APIs (NetworkExtension Framework), um dies sicher zu tun. Der VPN-Client selbst ist privilegiert; Die dadurch fließenden Daten sind für andere Apps undurchsichtig.
    Ist das Ausführen von Code in einem Docker-Container dasselbe wie Sandboxing?
    Docker-Container verwenden Linux-Namespaces und Seccomp zur Isolierung, was eine Form des Sandboxings ist. Die Isolation ist schwächer als bei virtualisierungsbasierten Sandboxen (Container teilen sich den Host-Kernel) und schwächer als bei User-Space-Sandboxen, die die meisten Systemaufrufe verbieten (Container lassen viele zu). Für nicht vertrauenswürdige Arbeitslasten sorgen Projekte wie gVisor oder Kata Containers für eine stärkere Isolierung der Docker UX.
    Warum verbraucht Chrome so viel Speicher?
    Standortisolation. Jeder Ursprung läuft in seinem eigenen Prozess – 50 Registerkarten verschiedener Sites bedeuten 50 Prozesse, jeder mit seinem eigenen Speicheraufwand. Die Kosten betragen RAM; Der Vorteil besteht darin, dass der Exploit eines Tabs die Daten eines anderen Tabs (Passwörter, Sitzungen) nicht lesen kann. Modernes Chrome investiert mehr Aufwand in die Optimierung der Speicherfreigabe, um die Auswirkungen zu reduzieren, aber die Architektur tauscht von Natur aus Speicher gegen Sicherheit ein.
    Sandboxing erklärt: Wie Browser und Betriebssysteme nicht vertrauenswürdigen Code enthalten