Cara SPACE merutekan permintaan ke eksekusi kotak pasir yang tepat

SPACE dari Perplexity mengikat permintaan agen AI ke eksekusi kotak pasir yang tepat dengan pemeriksaan identitas dan rute bertanda tangan.

Transparent glass cube reflecting orange and blue light, with bright starburst highlights against a dark background.

Ketika seseorang meminta agen AI menganalisis spreadsheet atau menguji perangkat lunak, mereka memercayakan agen tersebut untuk bekerja dengan aman menggunakan file dan data mereka. Agen membutuhkan lingkungan terisolasi tempat mereka dapat melakukan pekerjaan itu tanpa mengekspos data pengguna lain atau mengganggu beban kerja mereka.

Seiring agen mengambil tugas yang lebih kompleks dengan otonomi yang lebih besar, lingkungan ini membantu menahan dampak kesalahan dan membatasi kerusakan yang dapat ditimbulkan oleh kode yang tidak aman atau berbahaya. Kotak pasir menyediakan isolasi tersebut sambil berbagi layanan control plane, node worker, dan infrastruktur perutean.

Infrastruktur bersama tersebut harus mengantarkan setiap operasi ke eksekusi yang berwenang menanganinya. Rute usang dapat mengirim permintaan yang valid ke kotak pasir lain, atau ke eksekusi lama dari kotak pasir yang benar. SPACE, platform kotak pasir aman milik Perplexity, mengikat setiap operasi ke eksekusi yang dipilih dan memeriksa tujuan sebelum meneruskannya.

Selama berbulan-bulan, SPACE telah menangani jutaan eksekusi per hari, masing-masing dilindungi oleh identitas kriptografis yang unik, dengan tingkat kesalahan di bawah 0,0002% dan tanpa satu pun koneksi yang terputus.

Masalah perutean

Keamanan kotak pasir juga bergantung pada pengiriman setiap permintaan ke tujuan yang tepat. Bahkan pembacaan file sederhana melewati infrastruktur bersama yang harus terus melacak lokasi kotak pasir berjalan saat kotak pasir dijeda, dilanjutkan, atau berpindah antarmesin.

Pembacaan file melewati beberapa komponen. Control plane SPACE memetakan kotak pasir ke sebuah eksekusi dan worker. Permintaan masuk melalui node-api, diteruskan ke pengelola kotak pasir, sbx-manager, lalu melintasi socket Unix ke jembatan host, spaced-host. Jembatan meneruskannya melalui VSOCK, transport socket dari host ke guest, ke spaced-guest di dalam microVM Firecracker.

Setiap keputusan bergantung pada state yang dapat tertinggal dari perubahan infrastruktur. Database mungkin masih menyimpan penempatan lama, alamat yang di-cache mungkin menunjuk ke tempat lain, atau jalur socket mungkin mendapatkan listener yang berbeda. Koneksi yang berhasil tetap dapat mencapai tujuan yang salah. Operasi baca dapat mengekspos data pengguna lain; operasi tulis dapat mengubah sistem file yang salah.

Snapshot menambah masalah lain. Melanjutkan kotak pasir di worker lain mempertahankan identitas logisnya, tetapi memulai eksekusi baru. Permintaan yang tertunda atau koneksi yang masih bertahan dapat mencapai pendahulunya dan mengembalikan state lama di bawah nama kotak pasir yang benar.

Identitas kotak pasir dan identitas eksekusi

SPACE memisahkan lingkungan pengguna dari runtime yang melayaninya:

  • Identitas kotak pasir: ID stabil dari lingkungan logis. Otorisasi pemanggil menetapkan akses ke kotak pasir ini.
  • Identitas rute/eksekusi: Inkarnasi runtime yang dipilih beserta penempatannya, termasuk worker, substrat, dan aktivasinya.

Generasi eksekusi membedakan inkarnasi runtime. Di Kubernetes, rute juga menyertakan UID pod. Alamat menentukan lokasi endpoint; identitas eksekusi menentukan apakah endpoint tersebut boleh melayani operasi.

Misalkan kotak pasir S berjalan sebagai eksekusi 7 di worker A, lalu dilanjutkan sebagai eksekusi 8 di worker B. Permintaan yang dipilih untuk eksekusi 8 harus gagal jika mencapai eksekusi 7. Jika hanya ID kotak pasir yang diperiksa, ketidaksesuaian ini akan terlewat.

Pemilihan eksekusi bertanda tangan

Setiap permintaan membawa bukti bertanda tangan tentang eksekusi kotak pasir mana yang boleh menanganinya dan akses apa yang diizinkan. Komponen penerima mencocokkan bukti tersebut dengan identitas runtime-nya sendiri sebelum mengizinkan permintaan dilanjutkan.

Setelah otorisasi pemanggil, SPACE menerbitkan kapabilitas bertanda tangan berumur pendek yang mengidentifikasi kotak pasir, eksekusi, penempatan, dan akses yang diizinkan. Kapabilitas service-port publik juga menetapkan port dan protokol yang diizinkan.

Pengelola kotak pasir penerima memverifikasi tanda tangan dan membandingkan identitas lengkap dengan catatan runtime yang tersimpan secara lokal. Tanda tangan menetapkan siapa yang mengotorisasi pemilihan tersebut. Perbandingan menetapkan apakah pemilihan itu cocok dengan penerima.

Lalu lintas ServicePort menjalani pemeriksaan kedua di gateway jaringan per kotak pasir, netgtw, sebelum koneksi guest dibuka. Gateway membandingkan identitas dengan state aktivasi tepercaya serta memeriksa port dan protokol. Operasi kontrol berlanjut ke verifikasi endpoint jembatan.

SPACE menggunakan tanda tangan Ed25519. Kunci penandatanganan control plane menerbitkan kapabilitas; kunci verifikasi publik di worker dan gateway tidak dapat menerbitkannya.

Kapabilitas berlaku selama 120 detik, dengan toleransi selisih jam untuk kedaluwarsa hingga 15 detik. Tanda tangan yang valid dan token yang belum kedaluwarsa tetap tidak cukup jika identitas yang dipilih dan yang terpasang tidak sesuai.

Penolakan di tujuan yang salah

Worker penerima dapat menangkap kesalahan perutean bahkan ketika permintaan itu sendiri telah diotorisasi. Worker memeriksa apakah ia menjalankan eksekusi yang dipilih untuk permintaan tersebut dan menolak permintaan jika keduanya berbeda.

Jika permintaan yang dipilih untuk eksekusi 8 mencapai worker A, yang masih melayani eksekusi 7, worker A akan menolaknya sebelum meneruskannya. Setelah penerima memasang identitas eksekusi 8, penerima juga akan menolak kapabilitas untuk eksekusi 7, bahkan sebelum kapabilitas tersebut kedaluwarsa.

Jaminan ini memiliki batasan penting. Kapabilitas untuk eksekusi 7 masih dapat cocok dengan worker yang melayani eksekusi 7 hingga worker tersebut mengetahui bahwa eksekusi itu telah dipensiunkan atau kapabilitasnya kedaluwarsa. Penegakan lokal dan masa berlaku kapabilitas yang terbatas bekerja bersama selama pembaruan disebarkan.

Verifikasi endpoint jembatan

Catatan runtime yang cocok menetapkan eksekusi yang dimaksud. Jembatan kontrol juga harus mencapai proses dan transport milik aktivasi tersebut, bukan pengganti yang mewarisi alamat yang sama.

Pengelola kotak pasir dan pengelola node memverifikasi kredensial peer jembatan host serta identitas proses jembatan dan Firecracker, termasuk waktu mulainya, sehingga dapat mendeteksi ID yang digunakan ulang atau executable yang berubah

Pemeriksaan transport mengikat listener VSOCK ke proses Firecracker yang diharapkan menggunakan kepemilikan socket, identitas guest, dan bukti socket kernel. Jembatan hanya meneruskan operasi setelah verifikasi dan menolak penyambungan ulang transparan. Setiap koneksi baru harus melewati pemeriksaan lagi.

Verifikasi ini mencakup jembatan kontrol Firecracker di Kubernetes dan host yang dikelola secara langsung. Lalu lintas ServicePort menggunakan pemeriksaan eksekusi dan port di gateway-nya; pemeriksaan ini tidak membuktikan identitas aplikasi sembarang di dalam guest.

Masa hidup stream dan pemulihan rute

Sebagian koneksi tetap terbuka saat eksekusi kotak pasir berubah, sehingga pemeriksaan identitas harus berlaku lebih dari sekadar permintaan awal. SPACE memensiunkan koneksi yang terikat pada eksekusi lama dan memungkinkan operasi yang memenuhi syarat untuk tersambung ulang ke eksekusi saat ini dengan pemeriksaan keamanan yang sama.

Terminal dan pemantauan file dapat bertahan lebih lama daripada permintaan yang membukanya. SPACE mengikat stream backend ke epoch identitas sehingga stream tidak dapat tetap terhubung ke pendahulunya setelah penerima memasang eksekusi pengganti.

SPACE memeriksa ulang identitas yang persisten sebelum membuka stream. Penggantian rute atau eksekusinya akan membatalkan lease stream tersebut, sehingga input dan output berhenti.

Perubahan kepemilikan berbeda dari penggantian eksekusi. Serah terima operasi siklus hidup pada resident Kubernetes yang tidak berubah mempertahankan identitas rute, kapabilitas yang belum kedaluwarsa, dan stream-nya. Gateway juga mempertahankan stream yang sudah terjalin untuk perubahan yang hanya menyangkut upaya aktivasi dalam rute dan generasi eksekusi yang sama. Pembukaan baru memerlukan identitas yang diperbarui.

Pemulihan tetap menjaga pemeriksaan ini. Pembanding identitas dapat mengembalikan RefreshRoute untuk ketidakcocokan inkarnasi dalam kotak pasir yang sama, atau Deny untuk kotak pasir yang berbeda. Hanya sinyal penyegaran yang dikenali yang memicu perbaikan rute setelah penolakan identitas. Kegagalan transpor mengikuti aturan pemulihan terpisah yang spesifik untuk setiap operasi. Tanda tangan, tujuan, atau profil port yang tidak valid tetap ditolak.

Operasi yang memenuhi syarat dapat menentukan eksekusi saat ini dan melakukan satu upaya yang dibangun ulang. Penggantian cache bersyarat pada rute yang ditolak, sehingga penolakan yang tertunda tidak dapat menggusur entri yang lebih baru. Penyegaran sesi native mempertahankan masa kedaluwarsa cache semula, sehingga perbaikan rute terpisah dari pembaruan otorisasi pemanggil.

Aturan pemutaran ulang (replay) tetap spesifik untuk setiap operasi. Backend pengganti harus melewati admisi lagi, bahkan ketika WebSocket yang menghadap klien tetap terbuka.

Kompromi dan batas kepercayaan

Identitas eksekusi menjadi state yang krusial bagi keamanan. Pembaruan control plane dan bundel kunci verifikasi harus sampai ke komponen penyaji, dan pemensiunan berlaku ketika setiap penerima memasang pembaruan tersebut. Masa berlaku kapabilitas yang singkat membatasi penggunaan ulang selama penyebaran.

Desain ini mengasumsikan penegakan identitas diaktifkan dan memercayai penanda tangan control plane, kernel worker, serta layanan manajemen lokal node. Kompromi root worker atau administrator kluster dengan hak istimewa berada di luar model ancaman. Verifikasi jembatan adalah verifikasi proses dan transport lokal, bukan atestasi jarak jauh berbasis perangkat keras.

Verifikasi tanda tangan, perbandingan runtime, dan validasi jembatan menambah pekerjaan pada jalur permintaan. Semuanya menggunakan state lokal, bukan pencarian otorisasi jarak jauh di setiap hop privat.

Perbandingan industri

Perbandingan yang relevan adalah cara platform menangani permintaan terotorisasi yang mencapai eksekusi yang salah dari kotak pasir yang benar. Temuan ini berkaitan dengan implementasi yang diperiksa, bukan keamanan platform secara keseluruhan. SPACE, OpenShell, dan E2B diperiksa pada 8 Oktober 2026:

  • OpenShell: Menyediakan pemilihan eksekusi untuk panggilan baru dan pengikatan supervisor ke runtime yang sebanding melalui pemeriksaan generasi dan otorisasi di gateway, validasi identitas backend, serta koneksi supervisor aktif yang terkonfirmasi (admisi gateway, autentikasi dan pengikatan runtime). SPACE membawa pemilihan bertanda tangan di sepanjang jalur penyajiannya dan menambahkan verifikasi proses dan transport lokal di worker; OpenShell mendistribusikan pemeriksaan yang setara ke seluruh gateway, identitas peluncuran, dan protokol runtime terautentikasinya (desain runtime).
  • E2B: Melacak ID eksekusi dan mengisolasi pool proxy berdasarkan siklus hidup Firecracker, tetapi proxy masuknya memilih kotak pasir logis dan port tanpa identitas eksekusi yang diharapkan untuk dibandingkan oleh penerima (publikasi rute, admisi proxy). Eksekusi lama yang masih terdaftar sebagai aktif pada penerima usang dengan kredensial yang cocok tidak dapat dibedakan dari eksekusi baru yang dipilih melalui pemeriksaan tersebut, meskipun proses teardown normal menghapus rute dan menutup koneksi yang terikat pada siklus hidup (kredensial, teardown).
  • CubeSandbox: Memperbaiki perutean saat dilanjutkan dan menginvalidasi cache, tetapi ingress privat menggunakan kredensial yang dicakup per kotak pasir dan meneruskan tanpa inkarnasi runtime yang diharapkan (perutean saat dilanjutkan, perutean ingress). Perbaikan rute mempersempit jendela rute usang; kapabilitas SPACE yang terikat pada eksekusi juga memberi penerima dasar independen untuk menolak inkarnasi yang salah.

Identitas sebagai batas isolasi

Delegasi yang aman bergantung pada upaya menjaga pekerjaan setiap agen tetap berada dalam batas yang ditetapkan untuknya. MicroVM menyediakan isolasi, sementara platform di sekitarnya harus memastikan bahwa setiap permintaan dan koneksi yang sedang berlangsung mencapai eksekusi yang berwenang menanganinya.

SPACE menjadikan identitas eksekusi sebagai bagian dari perlindungan tersebut. Dengan memeriksa tujuan, memverifikasi endpoint jembatan, dan mengikat koneksi ke eksekusi yang mengotorisasinya, SPACE menjaga batas-batas itu tetap utuh saat kotak pasir dijeda, dilanjutkan, dan berpindah.

Kami terus melanjutkan pekerjaan ini seiring berkembangnya infrastruktur. Bagi SPACE dan platform kotak pasir lainnya, keamanan menuntut pengujian jalur-jalur ini terhadap kesalahan perutean rutin maupun beban kerja yang berbahaya, lalu memperkuat batas di mana pun pengujian tersebut mengungkap celah.

  1. Keluar dari SPACE: Bagian IRiset23 Sep 2026
  2. Membuat SPACE: Runtime Aman dan Efisien untuk Agen Berumur PanjangRiset15 Jul 2026
  3. Kotak pasir aman untuk agenBerita15 Jul 2026