Ako SPACE smeruje požiadavky na správne spustenie sandboxu
SPACE od Perplexity viaže požiadavky AI agentov na správne spustenie sandboxu pomocou kontrol identity a podpísaných trás.

Keď niekto požiada AI agenta, aby analyzoval tabuľku alebo otestoval softvér, dôveruje mu, že bude s jeho súbormi a údajmi pracovať bezpečne. Agenti potrebujú izolované prostredia, v ktorých môžu túto prácu vykonávať bez toho, aby odhalili údaje iných používateľov alebo zasahovali do ich pracovných záťaží.
Keďže agenti preberajú zložitejšie úlohy s väčšou autonómiou, tieto prostredia pomáhajú izolovať chyby a obmedziť škody, ktoré môže spôsobiť nebezpečný alebo škodlivý kód. Sandboxy poskytujú túto izoláciu a zároveň zdieľajú služby riadiacej roviny, pracovné uzly a smerovaciu infraštruktúru.
Táto zdieľaná infraštruktúra musí doručiť každú operáciu tomu spusteniu, ktoré je oprávnené ju spracovať. Zastaraná trasa môže poslať platnú požiadavku do iného sandboxu alebo do staršieho spustenia správneho sandboxu. SPACE, zabezpečená platforma sandboxov od Perplexity, viaže každú operáciu na vybrané spustenie a pred preposlaním kontroluje cieľ.
SPACE už celé mesiace spracúva milióny vykonaní denne, pričom každé je chránené jedinečnou kryptografickou identitou, s chybovosťou pod 0,0002 % a bez jediného prerušeného spojenia.
Problém smerovania
Bezpečnosť sandboxov závisí aj od toho, či sa každá požiadavka dostane na správne miesto. Aj jednoduché čítanie súboru prechádza zdieľanou infraštruktúrou, ktorá musí sledovať, kde sandbox práve beží, keď sa pozastavuje, obnovuje alebo presúva medzi počítačmi.
Čítanie súboru prechádza niekoľkými komponentmi. Riadiaca rovina SPACE priradí sandboxu spustenie a pracovný uzol. Požiadavka vstupuje cez node-api, prechádza do správcu sandboxu sbx-manager a cez unixový soket sa dostane k hostiteľskému mostu spaced-host. Most ju prepošle cez VSOCK, soketový transport medzi hostiteľom a hosťom, do spaced-guest vo vnútri microVM Firecracker.
Každé rozhodnutie sa opiera o stav, ktorý môže zaostávať za zmenami infraštruktúry. Databáza môže uchovávať staré umiestnenie, adresa vo vyrovnávacej pamäti môže smerovať inam a na ceste k soketu sa môže objaviť iný poslucháč. Úspešné pripojenie sa tak stále môže dostať do nesprávneho cieľa. Čítanie by mohlo odhaliť údaje iného používateľa; zápis by mohol upraviť nesprávny súborový systém.
Snímky prinášajú ďalší problém. Obnovenie sandboxu na inom pracovnom uzle zachová jeho logickú identitu, ale vytvorí nové spustenie. Oneskorená požiadavka alebo pretrvávajúce pripojenie sa môže dostať k jeho predchodcovi a vrátiť starý stav pod správnym názvom sandboxu.
Identita sandboxu a identita vykonania
SPACE oddeľuje prostredie používateľa od behového prostredia, ktoré ho obsluhuje:
- Identita sandboxu: Stabilné ID logického prostredia. Autorizácia volajúceho určuje prístup k tomuto sandboxu.
- Identita trasy/vykonania: Vybraná inkarnácia behového prostredia a jej umiestnenie vrátane workera, substrátu a aktivácie.
Generácia spustenia rozlišuje inkarnácie behového prostredia. V Kubernetes trasa zahŕňa aj UID podu. Adresy určujú umiestnenie koncových bodov; identita spustenia určuje, či tieto koncové body môžu operáciu obslúžiť.
Predpokladajme, že sandbox S beží ako spustenie 7 na pracovnom uzle A a potom sa obnoví ako spustenie 8 na pracovnom uzle B. Požiadavka vybraná pre spustenie 8 musí zlyhať, ak dorazí do spustenia 7. Kontrola samotného ID sandboxu by tento nesúlad neodhalila.
Podpísaný výber vykonania
Každá požiadavka nesie podpísaný dôkaz o tom, ktoré spustenie sandboxu ju môže spracovať a aký prístup je povolený. Prijímajúci komponent tento dôkaz porovná so svojou vlastnou identitou behového prostredia a až potom požiadavku pustí ďalej.
Po autorizácii volajúceho vydá SPACE krátkodobé podpísané oprávnenie, ktoré identifikuje sandbox, spustenie, umiestnenie a povolený prístup. Oprávnenia pre verejné servisné porty navyše určujú povolený port a protokol.
Prijímajúci správca sandboxu overí podpis a porovná úplnú identitu so svojím lokálne uloženým záznamom behového prostredia. Podpis určuje, kto výber autorizoval. Porovnanie určuje, či sa tento výber zhoduje s prijímateľom.
Prevádzka ServicePort prechádza druhou kontrolou na sieťovej bráne jednotlivého sandboxu, netgtw, ešte pred otvorením pripojenia k hosťovi. Brána porovná identitu s dôveryhodným stavom aktivácie a skontroluje port a protokol. Riadiace operácie pokračujú k overeniu koncových bodov mosta.
SPACE používa podpisy Ed25519. Oprávnenia vydávajú podpisové kľúče riadiacej roviny; verejné overovacie kľúče na pracovných uzloch a bránach ich vydávať nemôžu.
Oprávnenia platia 120 sekúnd s toleranciou rozdielu hodín pri vypršaní až 15 sekúnd. Platný podpis a nevypršaný token stále nestačia, ak sa vybraná a nainštalovaná identita nezhodujú.
Odmietnutie v nesprávnom cieli
Prijímajúci pracovný uzol dokáže zachytiť chybu smerovania, aj keď je samotná požiadavka autorizovaná. Skontroluje, či beží spustenie vybrané pre danú požiadavku, a ak sa líšia, požiadavku odmietne.
Ak požiadavka vybraná pre vykonanie 8 dorazí k workeru A, ktorý stále obsluhuje vykonanie 7, worker A ju odmietne ešte pred preposlaním. Keď prijímač nainštaluje identitu vykonania 8, odmieta aj oprávnenia pre vykonanie 7, a to ešte pred ich vypršaním.
Táto záruka má dôležitú hranicu. Oprávnenie pre spustenie 7 sa stále môže zhodovať s pracovným uzlom, ktorý obsluhuje spustenie 7, kým sa tento uzol nedozvie o vyradení alebo kým oprávnenie nevyprší. Lokálne vynucovanie a obmedzená životnosť oprávnení sa počas šírenia aktualizácií navzájom dopĺňajú.
Overenie koncových bodov mosta
Zhodný záznam behového prostredia určuje zamýšľané spustenie. Riadiaci most sa navyše musí dostať k procesom a transportu patriacim k tejto aktivácii, a nie k náhrade, ktorá zdedila tú istú adresu.
Správcovia sandboxov a uzlov overujú poverenia peera hostiteľského mosta a identity procesov mosta aj Firecrackeru vrátane časov spustenia, čím odhaľujú opätovne použité ID alebo zmenené spustiteľné súbory
Kontroly transportu viažu poslucháča VSOCK na očakávaný proces Firecracker pomocou vlastníctva soketu, identity hosťa a dôkazov o sokete z jadra. Most preposiela operácie až po overení a odmieta transparentné opätovné pripojenia. Každé nové pripojenie musí kontrolami prejsť znova.
Toto overenie pokrýva riadiaci most Firecrackeru v Kubernetes aj na priamo spravovaných hostiteľoch. Prevádzka ServicePort využíva na svojej bráne kontroly spustenia a portu; neatestuje identitu ľubovoľnej aplikácie v hosťovi.
Životnosť streamov a obnova trás
Niektoré pripojenia zostávajú otvorené aj počas zmeny spustenia sandboxu, takže kontroly identity musia siahať ďalej než len k úvodnej požiadavke. SPACE vyraďuje pripojenia viazané na staré spustenie a spôsobilým operáciám umožňuje znova sa pripojiť k aktuálnemu spusteniu pri rovnakých bezpečnostných kontrolách.
Terminály a sledovania súborov môžu trvať dlhšie než požiadavky, ktoré ich otvorili. SPACE viaže backendové streamy na epochu identity, takže stream nemôže zostať pripojený k predchodcovi po tom, čo prijímateľ nainštaluje náhradné spustenie.
SPACE pred otvorením streamu znova overí trvalú identitu. Nahradenie jeho trasy alebo spustenia zruší prenájom streamu a zastaví vstup aj výstup.
Zmeny vlastníctva sú niečo iné ako nahradenie spustenia. Odovzdanie operácie životného cyklu na nezmenenom rezidentovi Kubernetes zachováva jeho identitu trasy, nevypršané oprávnenia aj streamy. Brána tiež zachováva nadviazané streamy pri zmenách, ktoré sa týkajú iba pokusu o aktiváciu v rámci tej istej trasy a generácie spustenia. Nové otvorenia vyžadujú aktualizovanú identitu.
Obnova tieto kontroly zachováva. Komparátor identít môže pri nezhode inkarnácie v rámci toho istého sandboxu vrátiť RefreshRoute alebo pri inom sandboxe Deny. Opravu trasy po zamietnutí identity spustí iba rozpoznaný signál na obnovenie. Pri zlyhaniach transportu platia samostatné pravidlá obnovy špecifické pre jednotlivé operácie. Neplatné podpisy, účely alebo profily portov zostávajú zamietnuté.
Spôsobilá operácia môže zistiť aktuálne spustenie a vykonať jeden opätovne zostavený pokus. Záznam vo vyrovnávacej pamäti sa nahradí iba pod podmienkou, že ide o odmietnutú trasu, takže oneskorené odmietnutie nemôže vytlačiť novší záznam. Obnovenie natívnej relácie zachováva pôvodné vypršanie vyrovnávacej pamäte, čím oddeľuje opravu trasy od obnovenia autorizácie volajúceho.
Pravidlá opakovania zostávajú špecifické pre jednotlivé operácie. Náhradný backend musí znova prejsť kontrolou prijatia, aj keď WebSocket smerom ku klientovi zostáva otvorený.
Kompromisy a hranice dôvery
Identita spustenia sa stáva stavom kritickým pre bezpečnosť. Aktualizácie riadiacej roviny a balíky overovacích kľúčov sa musia dostať k obslužným komponentom a vyradenie nadobudne účinnosť, keď každý prijímateľ aktualizáciu nainštaluje. Krátka životnosť oprávnení obmedzuje ich opätovné použitie počas šírenia.
Návrh predpokladá, že vynucovanie identity je zapnuté, a dôveruje podpisovateľovi riadiacej roviny, jadru pracovného uzla a lokálnym službám správy uzla. Kompromitácia root prístupu na pracovnom uzle alebo privilegovaného správcu klastra je mimo modelu hrozieb. Overenie mosta je lokálne overenie procesu a transportu, nie hardvérovo podložená vzdialená atestácia.
Overovanie podpisov, porovnávanie behového prostredia a validácia mosta pridávajú do cesty požiadavky ďalšiu prácu. Využívajú lokálny stav, nie vzdialené vyhľadávanie autorizácie pri každom súkromnom skoku.
Porovnanie v odvetví
Podstatné je porovnať, ako platformy riešia situáciu, keď autorizovaná požiadavka dorazí do nesprávneho spustenia správneho sandboxu. Tieto zistenia sa týkajú preskúmaných implementácií, nie celkovej bezpečnosti platforiem. SPACE, OpenShell a E2B boli skontrolované 8. októbra 2026:
- OpenShell: Poskytuje porovnateľný výber spustenia pre nové volania a väzbu supervízora na behové prostredie prostredníctvom kontrol generácie a autorizácie na bráne, overovania identity backendu a potvrdených aktívnych pripojení supervízora (prijatie na bráne, autentifikácia a väzba behového prostredia). SPACE prenáša podpísaný výber celou svojou obslužnou cestou a pridáva lokálne overenie procesu a transportu na pracovnom uzle; OpenShell rozdeľuje zodpovedajúce kontroly medzi svoju bránu, identitu pri štarte a autentifikovaný protokol behového prostredia (návrh behového prostredia).
- E2B: Sleduje ID spustení a izoluje fondy proxy podľa životného cyklu Firecrackeru, no jeho prichádzajúca proxy vyberá logický sandbox a port bez očakávanej identity spustenia, ktorú by mohol prijímateľ porovnať (publikovanie trás, prijatie na proxy). Staršie spustenie, ktoré je na zastaranom prijímateľovi so zhodnými povereniami stále zaregistrované ako živé, sa týmito kontrolami nedá odlíšiť od vybraného novšieho spustenia, hoci bežné ukončenie odstraňuje trasy a zatvára pripojenia viazané na životný cyklus (poverenia, ukončenie).
- CubeSandbox: Pri obnovení opravuje smerovanie a zneplatňuje vyrovnávacie pamäte, no súkromný ingress používa poverenia viazané na sandbox a preposiela bez očakávanej inkarnácie behového prostredia (smerovanie pri obnovení, smerovanie ingressu). Oprava trás skracuje okná so zastaranými trasami; oprávnenie viazané na spustenie v SPACE navyše dáva prijímateľovi nezávislý základ na odmietnutie nesprávnej inkarnácie.
Identita ako hranica izolácie
Bezpečné delegovanie závisí od toho, či práca každého agenta zostane v hraniciach, ktoré sú pre ňu určené. MicroVM poskytuje izoláciu, zatiaľ čo okolitá platforma musí zabezpečiť, aby každá požiadavka a každé trvajúce pripojenie dorazili do spustenia oprávneného ich spracovať.
SPACE robí z identity spustenia súčasť tejto ochrany. Kontrolou cieľov, overovaním koncových bodov mosta a viazaním pripojení na spustenie, ktoré ich autorizovalo, zachováva tieto hranice aj vtedy, keď sa sandboxy pozastavujú, obnovujú a presúvajú.
V práci pokračujeme spolu s vývojom infraštruktúry. Bezpečnosť SPACE aj iných platforiem sandboxov si vyžaduje testovať tieto cesty voči bežným chybám smerovania aj nepriateľským pracovným záťažiam a potom posilňovať hranice všade tam, kde tieto testy odhalia medzery.