Skip to main content

WebAssembly-Sandboxing (Wasm / WASI)

FÜR AI-AGENTENChatGPTClaude

Technologie zur isolierten Ausführung von Fremdcode und Agent-Plugins innerhalb leichtgewichtiger WebAssembly-Runtimes (Wasmtime, Wasmer) mit Submillisekunden-Startzeit und null Zugriff auf das Betriebssystem.

1. Konzeptüberblick und systemisches Problem

Autonome Agenten erfordern häufig die Integration von Plugins, Erweiterungen und benutzerdefinierten Funktionen, die von Nutzern oder anderen Agenten geschrieben wurden:

  • Die Ausführung beliebiger Benutzerskripte über eval() oder einen Standard-Node.js-Prozess ist ein katastrophales Sicherheitsleck (Möglichkeit zum Auslesen von Serverdateien oder zum Stehlen von Tokens aus .env).
  • Das Starten eines separaten Docker-Containers für eine Funktion mit zehn Zeilen mathematischer Berechnungen ist zu langsam und verschwendet CPU-Ressourcen.

WebAssembly Sandboxing (Wasm / WASI) bietet eine mikroskopisch kleine Sandbox: Der binäre Bytecode wird mit nativer Prozessorgeschwindigkeit ausgeführt, ist jedoch vollständig in einer virtuellen Box isoliert, die ausschließlich auf einen zugewiesenen Block linearen Speichers Zugriff hat.

2. Architektonische Taxonomie und mentales Modell

┌─────────────────────────────────────────────────────────────┐
│                 WASM CAPABILITY-BASED SECURITY              │
├─────────────────────────────────────────────────────────────┤
│ 1. WASM GUEST MODULE (Untrusted Code / Agent Plugin)        │
│    • Linear Memory Space (Ізольована пам'ять, нуль вказівни)│
│    • Zero System Calls by default (Немає файлів, немає мере)│
├─────────────────────────────────────────────────────────────┤
│                          │                                  │
│                          ▼ WASI Capability Boundary         │
├─────────────────────────────────────────────────────────────┤
│ 2. HOST RUNTIME (Wasmtime / Wasmer in Rust/Go/Node)         │
│    • Explicitly Grants Capabilities:                        │
│      - Allow read: `/tmp/dataset.csv` ONLY                  │
│      - Block all network sockets                            │
│      - Execution fuel limit (захист від нескінченних циклів)│
├─────────────────────────────────────────────────────────────┤
│ 3. HOST OPERATING SYSTEM (Linux / macOS Kernel)             │
│    • 100% Protected from malicious execution                │
└─────────────────────────────────────────────────────────────┘

3. Praktische Engineering-Szenarien im Produktionsumfeld

01. Sichere Ausführung von Formeln und Benutzerskripten

Ein Tabellenkalkulationsdienst ermöglicht es Nutzern, eigene Python-Formeln hinzuzufügen. Diese Formeln werden zu WASM kompiliert und in 0,5 Millisekunden ausgeführt, ohne Risiko für den Server.

02. Ökosystem isolierter MCP-Tools (Wasm MCP Tools)

Model Context Protocol-Tools werden als Single-File .wasm-Module verteilt. Ein Agent lädt ein neues Tool aus dem Netzwerk herunter und führt es lokal aus, wobei er sicher sein kann, dass das Tool nicht heimlich SSH-Keys des Hosts lesen kann.

4. Fallstricke, typische Fehler und Sicherheit

  • Eingeschränkte Unterstützung für Systembibliotheken: Wenn Code spezifische Systemtreiber erfordert (z. B. komplexe CUDA-Kernel oder Low-Level-Grafikbibliotheken), kann die Kompilierung zu WASM erschwert oder unmöglich sein.
  • Overhead interpretierter Sprachen: Die Ausführung schwerer Python-Pakete (pandas, scikit-learn) in WASM erfordert das Laden der gesamten Python-Laufzeitumgebung in den Modulspeicher (50–100 MB), was den ersten Start verlangsamt.

5. Strategisches Fazit für Ingenieure im Jahr 2026

WebAssembly ist der Standard für sicheres Code-Inlining geworden. Für Architekten agentischer Systeme ermöglicht die Implementierung von WASM maximale Flexibilität bei der Systemerweiterung durch Agenten und Nutzer, gepaart mit einer mathematischen Garantie für die Sicherheit des Hosts.

/ Häufig gestellte FragenSchema.org FAQPage

FAQ: WebAssembly-Sandboxing (Wasm / WASI)

WASM ist ein universelles Binärformat mit einem strengen Capability-Based Security Modell. Ein WASM-Modul hat physisch keinen Zugriff auf das Dateisystem, Netzwerk oder die Systemuhr des Hosts, es sei denn, das Hostprogramm stellt explizit einen solchen Deskriptor bereit.
/ Interne Links
Alle Begriffe