- microsandbox bietet für die Ausführung von nicht vertrauenswürdigem Benutzer- und AI-Code eine sichere Isolierung auf Ebene virtueller Maschinen
- Mit ultraschnellem Start (unter 200 ms), OCI-Container-Kompatibilität und Self-Hosting überwindet es die Schwächen bestehender VMs und Container
- Mit SDKs für verschiedene Programmiersprachen und CLI-Tools wird die Effizienz bei der Integration für Entwickler und AI-Tools maximiert
- Geeignet für ein breites Spektrum an AI- und Entwicklungsanwendungen wie Code-Ausführung, Entwicklungsumgebungen, Datenanalyse, Web-Automatisierung und App-Hosting
- Alle Aufgaben lassen sich projektbasiert verwalten, einschließlich systemweiter Installation sowie Unterstützung für Sitzungsbeibehaltung und isolierte Ausführungsumgebungen
- microsandbox ist eine Open-Source-Self-Hosting-Plattform, die für die sichere Ausführung von nicht vertrauenswürdigem Benutzercode oder AI-Code (z. B. AI-Agenten, von Nutzern eingereichter Code oder experimenteller Code) entwickelt wurde
- Klassische lokale Ausführung hat Sicherheitslücken, Container bieten wegen des gemeinsam genutzten Kernels keine vollständige Isolierung, traditionelle VMs starten langsam und Cloud-Angebote sind oft unflexibel
- microsandbox unterstützt echte Prozessisolierung auf Basis von microVMs (ultraleichten virtuellen Maschinen) und bietet zugleich dieselbe schnelle Startgeschwindigkeit und entwicklerfreundliche Erfahrung wie Container
- Es hebt sich durch Boot-Zeiten unter 200 ms nach der initialen Umgebungseinrichtung, Kompatibilität mit Container-Images (OCI), MCP-basierte AI-Integration und Kontrolle über die Nutzung der eigenen Infrastruktur ab
Zusammenfassung der wichtigsten Merkmale
- Bulletproof Security: Auf Basis von microVMs wird Sicherheit auf Ebene virtueller Maschinen geboten, die Schwachstellen von Containern wie Kernel-Escapes grundsätzlich blockiert
- Instant Startup: Die anfängliche Boot-Zeit liegt unter 200 ms und ermöglicht damit einen im Vergleich zu VMs extrem schnellen Start der Code-Ausführung
- Self-Hosting & Full Control: Kann ohne Cloud-Abhängigkeit direkt lokal oder auf eigenen Servern aufgebaut und betrieben werden
- OCI-Kompatibilität: Kann unverändert mit Standard-Container-Images ausgeführt werden und bleibt damit mit bestehenden Docker- und Container-Workflows kompatibel
- AI-Ready (MCP-Unterstützung): Lässt sich mit MCP-basierten AIs wie Claude oder Agno nahtlos integrieren und erweitern
Schneller Entwicklungs- und Ausführungs-Workflow
1. Server starten
- Mit einfachen Befehlen lassen sich der microsandbox-Server starten und die Entwicklungsumgebung einrichten
- Der Server fungiert zugleich als MCP-Server und kann daher direkt von AI-Tools wie Claude aufgerufen werden
2. SDK installieren
- microsandbox SDKs stehen für wichtige Sprachen wie Python, JavaScript und Rust bereit
- Durch Unterstützung weiterer Sprachen und die Erweiterbarkeit der SDKs ergeben sich breite Integrationsmöglichkeiten für Entwickler und AI
3. Code sicher ausführen
- Sandbox-Umgebungen für verschiedene Sprachen wie Python, JavaScript und Rust können jeweils getrennt ausgewählt und ausgeführt werden
- Jede Sandbox ist eine unabhängige Laufzeitumgebung und gewährleistet damit auch bei der Ausführung externen Codes die Systemsicherheit
- Über SDK-Beispiele lassen sich asynchrone und automatisierte Prozesse zur sicheren Code-Ausführung leicht umsetzen
Projektbasierte Umgebungsverwaltung
- Ein Sandboxfile (Konfigurationsdatei) wird pro Projekt erstellt und verwaltet, ähnlich einem entwicklerfreundlichen Workflow mit Paketmanager-Charakter
- Mehrere Sandbox-Umgebungen (z. B. unterschiedliche Sprachen oder Konfigurationen) können zu einem Projekt hinzugefügt und nach Version bzw. Umgebung verwaltet werden
- Beim Ausführen von Projekt-Sandboxes werden Datei- und Installationsänderungen automatisch im lokalen Verzeichnis (
./menv) gespeichert
- Option zur Aktivierung temporärer Sandboxes, bei denen nach Sitzungsende alle Spuren und Zustände vollständig gelöscht und isoliert werden
Systemweite Sandbox-Installation
- Häufig genutzte Umgebungen oder Apps können als eigenständige ausführbare Dateien installiert und registriert werden
- Auch ohne Projektpfad lässt sich direkt im Terminal per Einzeiler in eine Sandbox-Ausführungsumgebung wechseln
- Für jede Sandbox können Namen vergeben und mehrere unterschiedliche Konfigurationen parallel betrieben werden; der Sitzungszustand bleibt ebenfalls erhalten
Wichtige Einsatzszenarien
AI-Code-Ausführung und Entwicklungsumgebungen
- Wenn AI den tatsächlichen Build, die Ausführung und das Debugging von Quellcode automatisiert, stellt microsandbox schnell eine isolierte und reproduzierbare Entwicklungsumgebung bereit
- Geeignet für Code-Automatisierung wie Web-App-Erstellung, Bugfixing und Prototyping
Datenanalyse
- Wichtige Data-Science-Bibliotheken wie NumPy, Pandas und TensorFlow lassen sich sicher innerhalb der Sandbox nutzen
- Ideal für Analyse-Workflows mit schützenswerten personenbezogenen oder sensiblen Daten
Web-Browsing-Agenten
- AI kann Automatisierungsaufgaben wie Website-Navigation, Formularübermittlung, Login und Datencrawling sicher ausführen
- Nützlich für Anwendungsfälle wie Content-Erfassung, Preisvergleich und automatisierte Tests
Sofortiges App-Hosting
- Von Nutzern erstellte Tools, Demos, Rechner oder Visualisierungen können sofort als Dienst geteilt werden
- Jede App läuft in einem separaten Isolationsraum und unterstützt die schnelle Erstellung und Beendigung temporärer Umgebungen
Systemarchitektur
- Nutzer rufen das microsandbox SDK aus ihrer eigenen Business-Logik heraus auf
- An den Serverprozess (
microsandbox server) wird die Übergabe und Ausführung nicht vertrauenswürdigen Codes angefordert
- Innerhalb des Servers wird jede Ausführungsanfrage in einer separaten microVM verarbeitet und damit voneinander isoliert
- Jede microVM kann eine unabhängige Python- oder Node-Umgebung bereitstellen
Open-Source-Richtlinie
- Open-Source-Veröffentlichung unter der Apache License 2.0
1 Kommentare
Hacker-News-Kommentare
Bei so einem Ansatz würden einfache permissions- oder jail-basierte Container wohl nahe 0 % liegen, Docker bei über 50 % und Microsandbox vielleicht nahe 100 %
Das könnte die intuitive Frage beantworten wie „Warum nicht einfach jail benutzen?“
Es wäre auch interessant, Honeypot-Container ins offene Web zu stellen und erfolgreiche Hacks mit Bargeld oder Coins zu belohnen, um zu „beweisen“, welcher Container 100 % erreicht
Wegen Schwachstellen wie Rowhammer oder Spectre muss man in letzter Zeit womöglich die Sicherheit konventioneller und Cloud-Computing-Systeme insgesamt neu definieren
Letztlich steckt dahinter der Wunsch nach Erkenntnissen darüber, wie man ohne perfekte Emulation einen zu 100 % sicheren Container bauen und die Basisdienste des OS absichern könnte
Denn eine Kernel-LPE-Schwachstelle (Local Privilege Escalation) führt direkt zu einem Container-Escape
Das wird meist nicht explizit als Container-Escape bezeichnet, aber in der Branche gilt ein Kernel-LPE selbstverständlich als Bruch der Containersicherheit
Die naheliegende Alternative ist, innerhalb der Sandbox die Nutzung von System Calls (APIs) massiv einzuschränken, aber dann ist der Container keine universelle Plattform mehr und muss jedes Mal fallweise neu abgestimmt werden
Deshalb halte ich Virtualisierung für notwendig
Solange es kein speichersicheres und robustes OS gibt, bleibt wohl nur dieser Weg, und selbst wenn es ein solches OS gäbe, ist offen, ob es schneller wäre, als eine MicroVM auf Host-Linux zu betreiben
Bei Docker oder systemd hängt das Sicherheitsniveau extrem von den jeweiligen Einstellungen ab
Ich denke, wir brauchen einen großen experimentellen Datensatz dazu, welche Konfiguration welches Risiko- bzw. Sicherheitsniveau ergibt
In der Praxis ist die reale Produktionsumgebung selbst Ziel zahlloser Hackerangriffe
So ein Incentive-Modell könnte unterhaltsam sein, aber die tatsächliche Attraktivität als Angriffsziel und die finanziellen Anreize wären vermutlich deutlich geringer als in der realen Welt
Wenn ich zum Beispiel unter Windows eine VM starte, warte ich mehrere Sekunden, bevor überhaupt irgendetwas losläuft
Mit „es läuft nichts“ meine ich den Zustand vor dem Start eines User-Programms, noch bevor überhaupt der erste Firmware-Befehl ausgeführt wird
Es gibt sogar lange Wartephasen noch bevor die virtuelle Festplattendatei geleert wird oder überhaupt ein VM-Fenster erscheint
Mich würde interessieren, warum
Mit einem Standardkernel gibt es aber viele zeitaufwendige Vorgänge wie Timeouts oder Polling
Auch auf UEFI-/CSM-Systemen kostet das Vorbereiten virtueller Hardware und das Initialisieren der Systemumgebung einiges an Zeit
Bei WSL2 wird vermutlich ein spezieller Kernel genutzt, um unnötigen Overhead zu entfernen
Auch das Starten diverser OS-Dienste, das Vorbereiten des Dateisystems, das Anlegen von Caches und die Netzwerkkonfiguration spielen hinein
Im traditionellen Ablauf werden Bootloader → initramfs → Haupt-OS jeweils separat geladen
Um Bootzeiten extrem zu verkürzen, nutzt man Verfahren wie bei Amazon Firecracker, bei denen ein vorinitialisiertes VM-Image direkt in den Speicher geladen wird
Einführung in Firecracker MicroVM
Unter Windows hängt die Bootgeschwindigkeit auch davon ab, welchen Hypervisor man verwendet, etwa HyperV
HyperV-UEFI ist recht langsam, und viele Linux-Distributionen liefern keine optimierten minimalistischen Kernel aus
Bei VirtualBox ist das beschriebene Verhalten deutlich zu sehen, ältere Versionen hatten diese Verzögerung aber nicht
Vielleicht ist das also keine grundsätzliche Grenze „traditioneller VMs“, sondern ein Problem dieser konkreten Software
Generell sind VMs langsam, weil sie auch unnötige Komponenten emulieren
Wenn man einen Hypervisor primär auf Bootgeschwindigkeit auslegt und Legacy-Kompatibilität ignorieren kann, sind wie bei Firecracker Starts in 125 ms möglich
Mit Zuweisung in 1-GB-Einheiten könnte es drastisch schneller werden
Unter Windows gibt es vermutlich etwas Ähnliches
Ich selbst habe auf Hyper-V schon Ubuntu 22 mit GUI per XRDP in 10 Sekunden und Ubuntu 22 Server per SSH in unter 3 Sekunden erreicht
Ungeachtet dessen ist die Grundidee selbst äußerst interessant
Eine offizielle Distributionsmethode soll bald bereitstehen
Ziel war es, MicroVMs so einfach zu machen wie Docker-Container
Bei Fragen jederzeit gern fragen
Ich bekomme gelegentlich Fehler wie „Sandbox is not started. Call start() first“
Das Muster in der offiziellen Doku ist
async with, ich würde aber lieber pro Klasse einmal instanziieren und sie dann über mehrere Methoden hinweg weiterverwendenMich würden empfohlene Vorgehensweisen oder Best Practices dafür interessieren
Mich interessiert, wie das Networking funktioniert
Kann man zum Beispiel einschränken, dass eine microVM nur auf öffentliche IPs zugreifen darf?
Also dass die microVM keine lokalen Netzwerk-IP-Adressen erreichen kann?
Mich interessiert, ob die eingebaute MicroVM-Funktionalität ein OCI-Runtime-Interface bereitstellt
Kann man sie statt
runc/crunauch in Docker/Podman verwenden?readmenur kurz überflogen, hätte aber ein paar Fragen mit mehr ErklärungsbedarfWie kann es so schnell sein?
Welche Trade-offs gibt es gegenüber traditionellen VMs?
Gibt es mögliche Wege, auf denen die VM-Isolation geschwächt werden könnte?
Kann man eine GUI starten?
Ist das als eine Art neues Vagrant gedacht?
Wie funktionieren Daten-Ein- und -Ausgabe?
Wenn ich es richtig verstehe, könnte man damit auch in Echtzeit Backends wie Server hochfahren?
Die Liste der unterstützten Sprachen ist beeindruckend Liste der von microsandbox unterstützten Sprachen
Ich wünschte, der Beitragenden-Leitfaden wäre ausführlicher contributor guide
Früher habe ich VMs als langsam und schwerfällig erlebt
Ich würde das gern mit Orbstack auf macOS vergleichen, vor allem mit der Funktion „Linux machines“
Ich frage mich auch, ob Orb nur eine einzige VM wiederverwendet
VMs in Millisekunden zu booten, ist ein enorm wichtiger Fortschritt
Allerdings lässt sich Ähnliches auch mit CloudHypervisor und Firecracker umsetzen
Container schlagen VMs bei der Runtime-Performance
Langsam werden VMs vor allem durch die Emulation von IO-Geräten
Gerade bei AI-Agent-Workloads dürfte der Overhead auf Anwendungsebene spürbar sein
Mich würde interessieren, wie ihr Performance-Probleme angehen wollt
Microsandbox nutzt
libkrun, undlibkrunverwendetvirtio-mmiofür block, vsock und virtio-fs, um Performance-Overhead zu reduzierenFirecracker ist im Kern ähnlich, und das E2B-Projekt nutzt Firecracker, um agentische AI-Workloads zu bedienen
Abgesehen von Dateisystemthemen gibt es aktuell keine größeren Performance-Verbesserungspläne
Wer einmal den Befehl
mountausführt, versteht vermutlich, was ich meineInformationen, die eigentlich verborgen bleiben sollten, liegen plötzlich offen, wodurch die Nützlichkeit bisher einfacher Kommandos sinkt
Noch gravierender ist, dass Nutzer interne Datenstrukturen direkt anfassen können
Das fühlt sich an, als gäbe man den Nutzern sowohl Peek- als auch Poke-Rechte
Die Container-Idee selbst ist gut, aber solange der Kernel nicht neu entworfen wird, ist die aktuelle Form nur ein Provisorium
Könntest du erklären, was an
mountinnerhalb eines Containers so problematisch ist?Werden Host-Mounts dem Container tatsächlich offengelegt?
Ich dachte, das passiert normalerweise nur, wenn man dem Container ausdrücklich etwa ein Volume anhängt
Ich hatte auch schon viel Spaß mit dem CodeSandbox SDK, E2B usw.; mich interessieren die Unterschiede zu diesen Angeboten und die weitere Richtung
Ich würde auch gern wissen, ob intern Firecracker verwendet wird
Es ist für Self-Hosting gedacht
Wie E2B soll es leicht machen, microVM-basierte Sandboxes in lokalen Umgebungen (Linux, macOS, Windows folgt) auszuführen und dann einfach in Produktion zu überführen
Statt Firecracker kommt
libkrunzum EinsatzIch frage mich, wie es um Wartungsthemen und fortlaufende Security-Audits bei microVM-Lösungen steht
Da Firecracker und das Einrichten von OCI-Images schwierig sind, begrüße ich das Auftauchen von Alternativen ausdrücklich
Auch Kata Containers ist nicht leicht zu handhaben
Der größte Vorteil von Containern ist, dass man sie schnell starten kann, ohne konkrete Ressourcen wie Plattengröße oder CPU-Kerne im Detail festzulegen
Man kann den Zustand außerdem mit dem Image und dem Diff vergleichen und so sehen, welche Änderungen ein laufendes Programm am System vorgenommen hat
Es wäre großartig, wenn sich mit einer so komfortablen Mini-VM sichereres Sandboxing umsetzen ließe
Manchmal nutze ich auch
bwrap, aber das ist kein Werkzeug, das sich besonders für die Kommandozeile eignetAuch Templates oder remote/automatisch erzeugte Varianten sind möglich
Dank microsandbox habe ich Hoffnung, solchen Code sicher isoliert laufen zu lassen
Selbst die Boot-Verzögerung von 200 ms ließe sich mit einem Pool aus Live-Sandboxes umgehen
Dank OCI-Kompatibilität könnte man sogar die vollständige Sandbox-Umgebung bereitstellen
Mich würde interessieren, ob das wirklich ein guter Anwendungsfall ist oder ob es bessere Alternativen gibt
runsc/gVisor könnte ebenfalls einen Blick wert seinDie
runsc-Engine lässt sich auch in Docker/Docker Desktop ausführenAllerdings liegt gVisor bei Dingen wie paralleler Netzwerkverarbeitung leistungsmäßig nur bei etwa einem Drittel von Docker
Ich habe keine bessere Alternative gefunden und deshalb microsandbox selbst gebaut