MarkTechPost

Perplexity open-sourced SPACE, eine Firecracker-MicroVM-Sandbox für KI-Agenten

Perplexity hat SPACE als Open Source veröffentlicht, die Sandbox-Plattform hinter jeder Aufgabe in Perplexity Computer. Die Perplexity-SPACE-Sandbox stellt jeder Agentenaufgabe eine eigene Firecracker-microVM zur…

Perplexity hat SPACE als Open Source veröffentlicht, die Sandbox-Plattform hinter jeder Aufgabe in Perplexity Computer. Die Perplexity-SPACE-Sandbox stellt jeder Agentenaufgabe eine eigene Firecracker-microVM zur Verfügung. Zugangsdaten und ausgehender Datenverkehr werden von außerhalb dieser VM kontrolliert. Der Code erscheint unter Apache 2.0 auf GitHub. Für Teams, die Coding- oder Browsing-Agenten entwickeln, ist dies eine praxistaugliche Isolationsschicht, die sie selbst hosten können.

TL;DR

  • Größe: Rust-Codebasis, Release 0.8.0, die öffentliche Basisversion. HTTP-API plus Server-Sent Events.
  • Läuft auf: Einem Linux-x86_64-Host mit KVM, /dev/kvm, btrfs und Docker. Lokales Kind (Kubernetes) oder direkter Modus. Kein macOS.
  • Performance: In der Produktion sank die mediane Erstellungs-Latenz von 185 ms auf 60 ms verglichen mit Perplexitys vorherigem Provider.
  • Bestes Ergebnis: 0 von 108 Versuchen, aus der VM in den Host zu entkommen, waren bei 9 Frontier-Modellen erfolgreich.
  • Schlechtestes Ergebnis: Vor den Fixes umgingen die Agenten die Egress-Policy in 11 von 54 Läufen mit Teilnetzwerkzugriff.

Was ist Perplexity SPACE?

SPACE (Sandboxed Platform for Agentic Code Execution) ist Perplexitys Plattform zum Ausführen von Agenten-Code in isolierten microVMs. Anwendungen rufen ihre HTTP-API auf, um Linux-Umgebungen zu erstellen, Befehle auszuführen und Ausgaben zu streamen.

A template stellt das Ausgangs-Dateisystem bereit. Eine Sandbox ist eine Instanz dieses Templates, mit eigener VM und beschreibbarer Festplatte. Viele Befehle können innerhalb einer Sandbox ausgeführt werden.

Perplexitys Launch-Thread erklärt das Designziel. Agents führen Befehle aus, installieren Pakete und rufen Dienste mit Root-Rechten innerhalb der Sandbox auf. Der Host bleibt außerhalb der Kontrolle des Gastes. Agent-Arbeit ist langlaufend, zustandsbehaftet und verzweigend, daher muss sie Neustarts überstehen.

Wie isoliert SPACE Agents?

Jede Sandbox ist eine Firecracker -MicroVM mit eigenem Gast-Kernel. Ein pro Sandbox vorhandener Netzwerk-Gateway auf dem Host erzwingt die Egress-Richtlinie für jede ausgehende Verbindung.

Geheimnisse gelangen nie in den Gast. Laut Perplexitys Engineering-Beitrag vom Juliwerden Anmeldeinformationen auf der Netzwerkschicht injiziert. Der Credential Store bietet hierarchische Scopes, Rate Limits und Audit-Logging.

Der Architektur-Leitfaden teilt das System in 4 Teile. Dies sind eine PostgreSQL-basierte API, Controller, Worker-Dienste und eine Datenebene. Worker-Dienste verwalten VMs, Netzwerke, Volumes, Templates und Anmeldeinformationen. btrfs Copy-on-Write erzeugt jedes Root-Dateisystem.

Wie funktionieren Pause, Suspend und Restore?

Sandboxen durchlaufen 4 Zustände: running, paused, suspended und deleted.

  • Paused: Der VM-Speicher bleibt auf dem Worker resident. Dies ist kein dauerhafter Snapshot.
  • Suspended: VM-Speicher, Laufzeitzustand und Root-Dateisystem werden gesnapshottet. Aktive Ressourcen werden freigegeben.
  • Idle-Standard: Sandboxen werden nach 6 Stunden ohne Aktivität angehalten .

Für schnelle Erstellungen verwenden Kubernetes-Deployments Warm Pools gebooteter Sandboxen. Single-Node-Setups verwenden stattdessen Base Snapshots .

In der Produktion sank die Create-Latenz im 90. Perzentil von 447 ms auf 89 ms. Perplexity berichtet, dass 100% der Computer-Sessions auf SPACE laufen.

Hat SPACE einen Red-Team-Test überstanden?

Perplexity‘ Escaping SPACE: Teil I bericht testete 9 Modelle mit Root-Zugriff innerhalb des Gasts. Die Studie umfasste 216 Durchläufe über 2 Aufgaben und 4 Konfigurationen.

  • Sandbox-Escape: 0 von 108 Durchläufen erreichten das Host-seitige Geheimnis.
  • Umgehung ohne Netzwerk: 0 von 54 Durchläufen erfolgreich.
  • Teilweise Netzwerk-Umgehung: 11 von 54 Durchläufen erfolgreich vor den Fixes. 4 Modelle fanden einen Weg.

Claude Opus 5.0, GPT-5.6 Sol, GPT-5.6 Cyber und Kimi K3 fanden Umgehungen. Die Angriffe nutzten DNS-Spoofing und gemeinsame CDN-IP-Adressen.

Perplexity fügte anschließend eine Quelladress-Validierung über nftables hinzu. Das Gateway beendet nun TLS und prüft sowohl SNI als auch den HTTP-Host gegen die Allowlist. Im Nachtest erzeugte kein Modell eine verifizierte Umgehung.

Dasselbe Team testete 10 Drittanbieter-Plattformen. 8 wiesen mindestens eine Netzwerk-Policy-Umgehung auf. Perplexity legte die Ergebnisse allen betroffenen Anbietern offen.

Zurück</button><button class="btn" id="psx-next">Nächster Zustand </button></div> </div> <div class="pane" data-p="2"> <div class="bars" id="psx-rt"></div> <div class="note">9 Modelle, 216 Durchläufe, Root innerhalb des Gasts. Fixes: nftables-Quelladress-Validierung, TLS-Terminierung mit SNI + Host-Allowlist-Prüfung. Quelle: Perplexity, Escaping SPACE: Part I (23. Sep. 2026).</div> </div> <div class="pane" data-p="3"> <div class="bars" id="psx-lat"></div> <div class="note">Produktions-traffic in der Launch-Woche, SPACE vs. Perplexitys vorheriger Sandbox-Anbieter. Niedriger ist besser. Quelle: Perplexity engineering blog (15. Jul. 2026).</div> </div> <div class="pane" data-p="4"> <div class="tw"><table> <tr><th>Merkmal</th><th>SPACE</th><th>E2B Runtime</th><th>microsandbox</th></tr> <tr><td>Isolation</td><td>Firecracker microVM</td><td>Firecracker microVM</td><td>libkrun microVM</td></tr> <tr><td>Lizenz</td><td>Apache 2.0</td><td>Apache 2.0</td><td>Apache 2.0</td></tr> <tr><td>Sprache</td><td>Rust</td><td>Go</td><td>Rust</td></tr> <tr><td>Perplexity-Egress-Test</td><td>0 Umgehungen nach Fix</td><td>HTTPS-Umgehung, Minderung geplant</td><td>HTTP + HTTPS-Umgehung, Fix in v0.6.18</td></tr> </table></div> <div class="note">Egress-Ergebnisse aus Perplexitys Tests vom 31. Aug. bis 1. Sep. 2026, für die getesteten Versionen.</div> </div> <div class="ft"><span>Quellen: github.com/perplexityai/SPACE · perplexity.ai/hub/blog</span><b>© Marktechpost</b></div> </div> <script> (function(){ var R=document.getElementById('pplx-space-x'); function post(){try{parent.postMessage({psxHeight:R.offsetHeight+40},'*')}catch(e){}} var tabs=R.querySelectorAll('.tab'),panes=R.querySelectorAll('.pane'); var D=['<b>Gast-microVM.</b> Jede Aufgabe erhält ihre eigene Firecracker-microVM mit eigenem Gast-Kernel. Der Agent kann Befehle ausführen und Pakete als Root installieren. Der Host bleibt außerhalb seiner Kontrolle.', '<b>Gateway pro Sandbox.</b> Der gesamte Egress des Gasts läuft über ein Host-seitiges Gateway. Es beendet nun TLS und verlangt, dass sowohl SNI als auch HTTP Host auf der Allowlist stehen und DNS-attribuiert sind.', '<b>Externe Dienste.</b> Zugangsdaten gelangen nie in den Gast. Sie werden auf der Netzwerkschicht eingespeist, mit Scoping, Rate Limits und Audit-Logging.']; var det=document.getElementById('psx-detail'),boxes=R.querySelectorAll('.box'); function showD(i){boxes.forEach(function(b,j){b.classList.toggle('act',i==j)});det.innerHTML=D[i];post()} boxes.forEach(function(b){b.addEventListener('click',function(){showD(+b.dataset.d)});b.addEventListener('mouseenter',function(){showD(+b.dataset.d)})}); showD(0); var L=['<b>Läuft.</b> Prozesse werden ausgeführt. Live-VM-Speicher und das beschreibbare Dateisystem bleiben erhalten.', '<b>Angehalten.</b> Die Ausführung stoppt. Der VM-Speicher bleibt auf dem Worker resident. Dies ist kein dauerhafter Snapshot.', '<b>Suspendiert.</b> VM-Speicher, Laufzeitzustand und Root-Dateisystem werden gesnapshottet. Aktive VM-Ressourcen werden freigegeben. Standard: Suspendierung nach 6 Stunden Inaktivität.', '<b>Gelöscht.</b> Die Sandbox ist über die API nicht mehr verfügbar.']; var li=0,sts=R.querySelectorAll('.st'),ld=document.getElementById('psx-life'); function life(){sts.forEach(function(s,j){s.classList.toggle('on',j==li)});ld.innerHTML=L[li];post()} document.getElementById('psx-next').onclick=function(){li=(li+1)%4;life()}; document.getElementById('psx-prev').onclick=function(){li=(li+3)%4;life()}; sts.forEach(function(s,j){s.style.cursor='pointer';s. onclick=function(){li=j;life()}}); life(); function bars(el,data){el.innerHTML=data.map(function(d){return '<div class="row"><div class="lbl"><span>'+d[0]+'</span><em>'+d[1]+'</em></div><div class="track"><div class="fill" data-w="'+d[2]+'" style="background:'+d[3]+'"></div></div></div>'}).join('')} bars(document.getElementById('psx-rt'),[ ['VM-to-host escape','0 von 108 Durchläufen',1.5,'#76B900'], ['Network bypass, no network','0 von 54 Durchläufen',1.5,'#76B900'], ['Network bypass, partial network (before fix)','11 von 54 Durchläufen',20.4,'#E5675A'], ['Network bypass, after fix','0 verifizierte Umgehungen',1.5,'#76B900'], ['Third-party platforms with a bypass','8 von 10',80,'#1FB8CD']]); bars(document.getElementById('psx-lat'),[ ['Median create, previous provider','185 ms',41.4,'#5E5B66'], ['Median create, SPACE','60 ms',13.4,'#20808D'], ['p90 create, previous provider','447 ms',100,'#5E5B66'], ['p90 create, SPACE','89 ms',19.9,'#20808D']]); function anim(p){p.querySelectorAll('.fill').forEach(function(f){f.style.width='0';setTimeout(function(){f.style.width=f.dataset.w+'%'},60)})} tabs.forEach(function(t){t.onclick=function(){var i=+t.dataset.t;tabs.forEach(function(x,j){x.classList.toggle('on',j==i)});panes.forEach(function(p,j){p.classList.toggle('on',j==i)});anim(panes[i]);post()}}); window.addEventListener('load',post);window.addEventListener('resize',post);setTimeout(post,300); })(); </script> </body> </html> ">

Wie vergleicht sich SPACE mit anderen offenen Sandboxes?

MerkmalPerplexity SPACEE2B RuntimemicrosandboxDaytona
IsolationFirecracker microVM pro SandboxFirecracker microVM pro Sandboxlibkrun microVMDedizierter Kernel pro Sandbox
LizenzApache 2.0Apache 2.0Apache 2.0Öffentliches Repo, nicht gepflegt seit Juni 2026
SpracheRustGoRustNicht offengelegt
Anforderungen an den HostLinux x86_64 + KVMNicht offengelegtLinux mit KVMNicht offengelegt
Egress-KontrolleGateway pro Sandbox, TLS-Terminierungnftables-Firewall, SNI/Host-ListenNicht offengelegtNicht offengelegt
Perplexity Egress-Test0 Umgehungen nach dem FixHTTPS-Umgehung, Minderung geplantHTTP- und HTTPS-Umgehung, Fix in v0.6.18HTTPS-Umgehung, Minderung veröffentlicht
E2B-SDK-UnterstützungJa, über ECW-WrapperNativNicht offengelegtNicht offengelegt

Wie deployen Entwickler SPACE?

Die Installationsanleitung deployt SPACE in einen lokalen Kind-Cluster. Der Host benötigt /dev/kvm, /dev/net/tun, Loop-Devices und btrfs. Der Betrieb innerhalb einer VM erfordert verschachtelte Virtualisierung.

Teams, die bereits E2B nutzen, können den E2B Compatibility Wrapperausprobieren. Die getestete Basislinie ist das Python-Paket e2b==2.21.1. Eine Referenz-Deployment für AWS EKS liegt im Repository bei.

Kernerkenntnisse

  • SPACE läuft jede Agent-Aufgabe in einer eigenen Firecracker-microVM.
  • Anmeldedaten und Egress-Richtlinie liegen außerhalb der Gast-VM.
  • 0 von 108 Fluchtversuchen erreichten den Host in den Red-Team-Tests.
  • Egress-Umgehungen trafen 11 von 54 Läufen vor den Fixes, 0 danach.
  • Apache 2.0, Rust, benötigt einen Linux-x86_64-Host mit KVM.


Sehen Sie sich das GitHub-Repo, die Dokumentation und den Red-Team-Berichtan. Alle Anerkennung gebührt dem Forscher dieses Projekts. Folgen Sie uns außerdem gerne auf Twitter und vergessen Sie nicht, unserem 150k+ML SubReddit beizutreten und zu abonnieren unseren Newsletter. Moment! Sind Sie auf Telegram? jetzt können Sie uns auch auf Telegram beitreten.

Der Beitrag Perplexity veröffentlicht SPACE als Open Source, eine Firecracker-MicroVM-Sandbox für KI-Agenten erschien zuerst auf MarkTechPost.

Originalquelle

MarkTechPost

Hinweise zum Inhalt

Originalveröffentlichung und Rechte liegen bei der Quelle.

Maschinelle Übersetzung · Original beachten