- Menyediakan lingkungan microVM Linux yang aman untuk menjalankan kode yang tidak tepercaya dengan aman
- Saat eksekusi kode, melindungi secret key dan mengendalikan akses jaringan untuk memblokir risiko kebocoran data dari kode buatan LLM maupun kode pengguna
- Dengan perintah sandbox.deploy(), dapat langsung dideploy ke Deno Deploy dari lingkungan pengembangan tanpa proses build atau autentikasi terpisah
- Dengan fitur volume dan snapshot, cache, database, dan lingkungan pengembangan dapat direproduksi dengan cepat
- Cocok untuk lingkungan eksekusi kode yang memerlukan keamanan seperti agen AI, sistem plugin, dan runner CI
Gambaran umum Deno Sandbox
- Deno Sandbox menyediakan kemampuan menjalankan kode yang tidak tepercaya di microVM Linux ringan pada cloud Deno Deploy
- Dapat dibuat melalui JavaScript atau Python SDK, dengan waktu boot kurang dari 1 detik
- Dapat berinteraksi langsung melalui SSH, HTTP, dan VS Code
- Bertujuan menyelesaikan masalah keamanan saat kode buatan LLM atau kode yang diberikan pengguna melakukan panggilan eksternal yang melibatkan API key
- Kode yang dijalankan di dalam sandbox dilindungi dengan arsitektur isolasi sistem dan pertahanan berlapis (Defense-in-depth)
Secrets That Can’t Be Stolen
- Di lingkungan sandbox, secret key tidak diekspos sebagai environment variable nyata
- Di dalam kode, yang dapat diakses hanya string placeholder
- Kunci nyata hanya disuntikkan saat permintaan outbound menuju host yang diizinkan
- Misalnya,
OPENAI_API_KEY hanya aktif saat mengirim permintaan ke api.openai.com, dan menjadi tidak valid bila dibocorkan ke domain lain
- Dengan ini, upaya pencurian key melalui prompt injection atau kode berbahaya dapat diblokir
Network Egress Control
- Sandbox memblokir permintaan jaringan di luar daftar host yang diizinkan (allowNet)
- Contoh:
["api.openai.com", "*.anthropic.com"]
- Seluruh trafik jaringan diblokir di batas VM, dan kebijakan diterapkan melalui proxy outbound yang mirip dengan
coder/httpjail
- Ke depannya direncanakan penambahan analisis koneksi outbound serta hook terprogram untuk inspeksi dan modifikasi permintaan
- Jika digabungkan dengan flag
--allow-net milik Deno, dapat membentuk lapisan keamanan jaringan ganda
Sandbox to Production
- Dengan perintah
sandbox.deploy(), aplikasi dapat langsung dideploy dari sandbox ke Deno Deploy
- Tanpa build CI atau autentikasi tambahan, lingkungan pengembangan bisa langsung diubah menjadi production serverless
- Pada contoh kode,
my-app dideploy dengan opsi production: true lalu URL ditampilkan
- Dengan ini, deployment serverless yang dapat auto-scale bisa dilakukan dalam satu panggilan
Persistence
- Secara default sandbox bersifat ephemeral, tetapi bila perlu menyimpan state tersedia fitur berikut
- Volumes: penyimpanan baca/tulis untuk cache, database, dan data pengguna
- Snapshots: image read-only yang mencakup toolchain atau volume dasar
- Jika membuat snapshot setelah
apt-get install, semua sandbox berikutnya dapat langsung boot dengan lingkungan yang sudah dipra-instal
- Dengan volume berbasis snapshot, lingkungan pengembangan baru dapat dibuat dalam hitungan detik
Technical Details
- Region: Amsterdam, Chicago
- vCPU: 2
- Memori: 768MB ~ 4GB
- Masa hidup: sementara (ephemeral) atau berbasis timeout, dapat diperpanjang bila perlu
- Masa hidup maksimum: 30 menit
- Waktu boot: kurang dari 1 detik
- Contoh use case yang cocok: eksekusi kode agen AI, sistem plugin yang aman, runner CI sementara, lingkungan eksekusi kode dari pengguna
Pricing
- Termasuk dalam paket Deno Deploy dan ditagih berdasarkan pemakaian
- Waktu CPU: $0.05/h (paket Pro mencakup 40 jam)
- Memori: $0.016/GB-h (paket Pro mencakup 1000 GB-h)
- Penyimpanan volume: $0.20/GiB-month (paket Pro mencakup 5 GiB)
- Paket enterprise tersedia melalui inquiry terpisah
Get Started
- Deno Sandbox dirilis sebagai versi beta, dan tersedia bersama general availability (GA) Deno Deploy
- Sumber daya utama
- Tim Deno menantikan proyek apa yang akan dibangun pengguna dan agen AI dengan Deno Sandbox
1 komentar
Komentar Hacker News
Menarik bahwa kita sama sekali tidak perlu memakai Deno atau JavaScript
Melalui SDK Python deno-sandbox, kita bisa membuat sandbox serta menjalankan perintah, I/O file, dan lain-lain
Dipastikan bahwa protokol API berjalan berbasis WebSocket
Cara Deno Sandbox menangani secret cukup mengesankan
Di dalam kode, yang terlihat hanya placeholder, bukan key asli, dan key sebenarnya baru disuntikkan saat ada permintaan ke host yang diizinkan
Sekalipun kode berbahaya mencoba membocorkan placeholder ini ke luar, itu tidak berguna
Jika proxy juga mengganti kembali key pada arah respons, memang akan lebih sulit, tetapi rasanya tetap bukan pertahanan yang sempurna
Penyuntikan secret berbasis proxy yang memahami konteks mungkin bisa lebih aman
Aplikasi tidak menangani key secara langsung, dan proxy menambahkan API key sebagai gantinya, sehingga mengurangi risiko paparan keamanan
Secrets that can’t be stolen
Kode berbahaya memang tidak bisa mencuri secret secara permanen, tetapi tetap bisa mengirim permintaan berbahaya dengan memakai key tersebut
Konsepnya mirip seperti XSS yang tidak bisa membaca cookie httpOnly, tetapi masih bisa mengirim request menggunakan cookie itu
Dalam kasus ini, fitur seperti certificate pinning bisa jadi sulit diterapkan
Ingin juga bertanya apakah fitur seperti Vault akan ditambahkan
Menurut tim Deno, belakangan ini makin banyak layanan berbentuk platform yang langsung mengeksekusi kode hasil generasi LLM
Agar kode seperti ini bisa memanggil API eksternal, dibutuhkan kredensial nyata dan akses jaringan
Sandbox sederhana saja tidak cukup; kontrol jaringan dan perlindungan secret harus ada bersamaan
Deno Sandbox menyediakan keduanya, dan setelah kodenya siap, bisa langsung dideploy ke Deno Deploy
Tim kami juga membangun sendiri lingkungan sandbox serupa dengan Firecracker + Go
Karena masalah kedaulatan data, layanan harus berjalan hanya di wilayah EU, sehingga bisa dideploy di mana saja selama mendukung virtualisasi hardware
Agar LLM tidak menangani kredensial secara langsung, kami membuat CLI dengan scope terbatas secara on-the-fly lalu memberikannya
LLM hanya memanggilnya seperti perintah bash biasa
Karena model-model terbaru dilatih sebagai coding assistant, pendekatan seperti ini terasa jauh lebih alami dan efisien
Pendekatan substitusi secret ini menarik, tetapi saya curiga bisa rusak dalam kasus yang membutuhkan transformasi key seperti OAuth 1, JWT, HMAC
Selain itu, jika key menjadi bagian dari payload, substitusi bisa memunculkan masalah HTTP seperti ketidaksesuaian Content-Length
Lagipula pendekatan seperti ini juga tidak berdaya terhadap serangan lain seperti SQL injection
Pada akhirnya, ini tampak lebih seperti langkah mitigasi parsial daripada mekanisme pertahanan yang lengkap
Karena ada paket gratis, saya jadi ingin mencobanya untuk eksperimen seperti Glitch, tetapi saya juga waspada karena sering mengalami layanan gratis seperti ini dihentikan di tengah jalan
Desain placeholder secret tampaknya pilihan yang bagus
Namun belakangan produk sandbox terlalu banyak — Modal, Daytona, Fly, Cloudflare, Deno, dan lainnya
Saya penasaran apa yang benar-benar dipakai di produksi
Disebutkan bahwa microVM Linux ringan yang disediakan Deno Sandbox berjalan di cloud Deno Deploy,
dan pertanyaan utamanya adalah apakah ini juga bisa dijalankan di lingkungan Linux self-hosted
Jika dirilis sepenuhnya sebagai open source, AWS atau GCP bisa langsung menirunya
Pada akhirnya rasanya seperti membangun istana di dalam sandbox milik orang lain, tetapi secara realistis itulah satu-satunya model bisnis yang menghasilkan uang
Jika Claude Pro atau paket Max dipakai di lingkungan seperti ini, saya khawatir Anthropic bisa salah mengira sebagai penggunaan multi-user karena setiap kali terhubung dari IP yang berbeda lalu memblokirnya
Saya juga penasaran mengapa sesi dibatasi sampai 30 menit
Tampaknya Anthropic memakai heuristik sederhana untuk menilai apakah “sedang digunakan langsung oleh manusia”