4 điểm bởi GN⁺ 2026-02-04 | 1 bình luận | Chia sẻ qua WhatsApp
  • Cung cấp môi trường microVM Linux bảo mật để chạy an toàn mã không đáng tin cậy
  • Ngăn rủi ro rò rỉ dữ liệu từ mã do LLM tạo ra hoặc mã người dùng thông qua bảo vệ khóa bí mậtkiểm soát truy cập mạng trong khi thực thi mã
  • Có thể triển khai trực tiếp lên Deno Deploy từ môi trường phát triển bằng lệnh sandbox.deploy(), không cần bước build hay xác thực riêng
  • Với tính năng volume và snapshot, có thể nhanh chóng tái tạo cache, cơ sở dữ liệu và môi trường phát triển
  • Phù hợp cho môi trường thực thi mã cần bảo mật như AI agent, hệ thống plugin, CI runner, v.v.

Tổng quan về Deno Sandbox

  • Deno Sandbox cung cấp khả năng chạy mã không đáng tin cậy trong microVM Linux nhẹ trên đám mây Deno Deploy
    • Có thể tạo thông qua JavaScript hoặc Python SDK, với thời gian khởi động dưới 1 giây
    • Có thể tương tác trực tiếp qua SSH, HTTP và VS Code
  • Nhắm tới việc giải quyết vấn đề bảo mật khi mã do LLM tạo ra hoặc mã do người dùng cung cấp thực hiện các lệnh gọi ra bên ngoài có chứa API key
  • Mã chạy trong sandbox được bảo vệ bằng kiến trúc cô lập hệ thống và phòng thủ nhiều lớp (Defense-in-depth)

Secrets That Can’t Be Stolen

  • Trong môi trường sandbox, khóa bí mật không bị lộ dưới dạng biến môi trường thực tế
    • Bên trong mã chỉ có thể truy cập chuỗi placeholder
    • Khóa thực chỉ được chèn vào khi có yêu cầu outbound tới host đã được phê duyệt
  • Ví dụ, OPENAI_API_KEY chỉ được kích hoạt khi gửi yêu cầu tới api.openai.com, và sẽ bị vô hiệu nếu bị rò rỉ sang domain khác
  • Nhờ đó có thể chặn các nỗ lực đánh cắp khóa do prompt injection hoặc mã độc gây ra

Kiểm soát lưu lượng mạng đi ra

  • Sandbox chặn mọi yêu cầu mạng ngoài danh sách host được cho phép (allowNet)
    • Ví dụ: ["api.openai.com", "*.anthropic.com"]
  • Toàn bộ lưu lượng mạng được chặn tại ranh giới VM, và chính sách được áp dụng thông qua proxy outbound tương tự coder/httpjail
  • Trong tương lai dự kiến bổ sung phân tích kết nối outboundhook lập trình để kiểm tra/chỉnh sửa yêu cầu
  • Khi kết hợp với cờ --allow-net của Deno, có thể tạo hai lớp bảo mật mạng

Từ sandbox lên production

  • Với lệnh sandbox.deploy(), có thể triển khai trực tiếp từ sandbox lên Deno Deploy
    • Chuyển ngay môi trường phát triển thành production serverless mà không cần CI build hay quy trình xác thực riêng
    • Trong ví dụ, my-app được triển khai với tùy chọn production: true rồi xuất ra URL
  • Nhờ đó có thể thực hiện triển khai serverless tự động mở rộng chỉ với một lệnh gọi

Lưu trữ trạng thái

  • Theo mặc định, sandbox là ephemeral (tạm thời), nhưng nếu cần lưu trạng thái thì có các tính năng sau
    • Volumes: bộ nhớ đọc/ghi dành cho cache, cơ sở dữ liệu và dữ liệu người dùng
    • Snapshots: ảnh chỉ đọc bao gồm toolchain hoặc volume cơ sở
  • Nếu tạo snapshot sau khi chạy apt-get install, thì các sandbox về sau có thể khởi động ngay với môi trường đã cài sẵn
  • Có thể tạo môi trường phát triển mới chỉ trong vài giây bằng volume dựa trên snapshot

Chi tiết kỹ thuật

  • Khu vực: Amsterdam, Chicago
  • vCPU: 2
  • Bộ nhớ: 768MB ~ 4GB
  • Vòng đời: tạm thời (ephemeral) hoặc dựa trên timeout, có thể gia hạn khi cần
  • Thời lượng tối đa: 30 phút
  • Thời gian khởi động: dưới 1 giây
  • Trường hợp sử dụng phù hợp: thực thi mã của AI agent, hệ thống plugin bảo mật, CI runner tạm thời, môi trường chạy mã do người dùng cung cấp

Giá

  • Nằm trong gói Deno Deploy và tính phí theo mức sử dụng
    • Thời gian CPU: $0.05/h (gói Pro bao gồm 40 giờ)
    • Bộ nhớ: $0.016/GB-h (gói Pro bao gồm 1000 GB-h)
    • Lưu trữ volume: $0.20/GiB-month (gói Pro bao gồm 5 GiB)
  • Gói Enterprise có thể liên hệ riêng

Bắt đầu

1 bình luận

 
GN⁺ 2026-02-04
Ý kiến trên Hacker News
  • Điều thú vị là bạn hoàn toàn không cần dùng Deno hay JavaScript
    Có thể tạo sandbox, chạy lệnh, đọc/ghi tệp, v.v. thông qua SDK Python là deno-sandbox
    Tôi đã xác nhận giao thức API hoạt động dựa trên WebSocket

    • Ban đầu tôi không thấy rõ rằng sandbox chạy trên đám mây chứ không phải cục bộ
  • Cách Deno Sandbox xử lý secret khá ấn tượng
    Bên trong mã chỉ hiện placeholder thay vì khóa thật, và khóa thật chỉ được chèn vào khi gửi yêu cầu đến các host đã được phê duyệt
    Ngay cả khi mã độc cố rò rỉ placeholder này ra ngoài thì nó cũng vô dụng

    • Tuy vậy, nếu proxy chỉ đơn thuần thay thế chuỗi, tôi vẫn băn khoăn liệu kẻ tấn công có thể khiến một host đã được phê duyệt echo lại khóa hay không
      Nếu proxy cũng thay thế lại khóa ở chiều phản hồi thì sẽ khó hơn, nhưng có lẽ vẫn không phải là cơ chế phòng vệ hoàn hảo
      Tiêm secret dựa trên proxy có hiểu ngữ cảnh có thể sẽ an toàn hơn
    • Nó làm tôi nhớ đến Tokenizer của Fly
      Ứng dụng không trực tiếp xử lý khóa, còn proxy sẽ tự thêm API key, qua đó giảm rủi ro lộ bảo mật
    • Blog chính thức của Deno cũng giới thiệu ý tưởng này
      Secrets that can’t be stolen
      Mã độc không thể đánh cắp vĩnh viễn secret, nhưng vẫn có thể dùng khóa đó để gửi các yêu cầu độc hại
      Khá giống việc XSS không thể đọc cookie httpOnly nhưng vẫn có thể gửi request bằng chính cookie đó
    • Rất có thể đây là cách làm bằng proxy MITM chặn các yêu cầu HTTPS
      Trong trường hợp đó, các tính năng như certificate pinning có thể sẽ khó hỗ trợ
    • Tôi cũng tò mò họ xử lý thế nào với các kết nối DB dựa trên TCP, nơi không thể thay header
      Cũng muốn hỏi xem liệu họ có thêm thứ gì kiểu Vault hay không
  • Theo đội ngũ Deno, gần đây ngày càng có nhiều dịch vụ dạng nền tảng chạy trực tiếp mã do LLM tạo ra
    Để loại mã này gọi được API bên ngoài thì cần thông tin xác thực thật và quyền truy cập mạng
    Chỉ sandboxing thôi là chưa đủ, mà còn cần cả kiểm soát mạng và bảo vệ secret
    Deno Sandbox cung cấp cả hai, và khi mã đã sẵn sàng thì có thể triển khai thẳng lên Deno Deploy

    • Mỗi lần đọc câu “đây không phải sandbox plugin đơn thuần mà là nền tảng thực thi mã AI”, tôi lại theo bản năng nghĩ rằng: “đây là AI
  • Đội của chúng tôi cũng đã tự xây một môi trường sandbox tương tự bằng Firecracker + Go
    Vì vấn đề chủ quyền dữ liệu, dịch vụ phải chỉ chạy trong EU, nên có thể triển khai ở bất kỳ đâu miễn hỗ trợ ảo hóa phần cứng
    Để LLM không trực tiếp đụng vào thông tin xác thực, chúng tôi tạo tức thời một CLI bị giới hạn phạm vi quyền để cung cấp cho nó
    LLM chỉ việc gọi nó như gọi một lệnh bash
    Vì các model mới nhất được huấn luyện như trợ lý lập trình, cách tiếp cận này tự nhiên và hiệu quả hơn nhiều

  • Cách thay thế secret khá thú vị, nhưng tôi nghi nó có thể hỏng trong các trường hợp thực tế cần biến đổi khóa như OAuth 1, JWT, HMAC
    Ngoài ra, nếu khóa là một phần của payload thì việc thay thế còn có thể gây ra các vấn đề HTTP như Content-Length không khớp
    Hơn nữa, cách này cũng vô dụng trước những kiểu tấn công khác như SQL injection
    Cuối cùng thì nó có vẻ giống một biện pháp giảm thiểu từng phần hơn là một cơ chế phòng vệ hoàn chỉnh

  • Có gói miễn phí nên tôi muốn thử nghịch như Glitch, nhưng tôi luôn dè chừng vì từng thấy nhiều dịch vụ miễn phí như vậy bị đóng giữa chừng

  • Thiết kế placeholder cho secret có vẻ là một lựa chọn tốt
    Nhưng dạo này có quá nhiều sản phẩm sandbox — Modal, Daytona, Fly, Cloudflare, Deno, v.v.
    Tôi tò mò trong môi trường production thực tế thì mọi người đang dùng cái nào

    • Thực ra phần lớn các dịch vụ kiểu này chỉ ở mức wrapper cho VM, nên cũng có thể tự làm trực tiếp bằng EC2 hay GCP SDK
    • Factory, Nvidia, Perplexity, Manus, v.v. đang dùng E2B trong production, và theo họ thì đến nay đã chạy hơn 200 triệu sandbox
  • Deno Sandbox nói rằng họ cung cấp Linux microVM nhẹ chạy trong đám mây Deno Deploy,
    và điều tôi tò mò nhất là liệu nó có chạy được cả trong môi trường Linux tự host hay không

    • Nhưng đa số nhà cung cấp đều chọn chiến lược lock-in
      Nếu phát hành hoàn toàn mã nguồn mở thì AWS hay GCP sẽ sao chép ngay
      Cảm giác như đang xây lâu đài bên trong sandbox của người khác, nhưng thực tế đó lại là mô hình kiếm tiền duy nhất
  • Nếu dùng Claude Pro hay gói Max trong môi trường này, tôi lo rằng việc kết nối từ IP khác nhau mỗi lần có thể khiến Anthropic hiểu nhầm là nhiều người dùng và chặn tài khoản
    Tôi cũng tò mò vì sao phiên lại bị giới hạn 30 phút

    • Họ nói đang có kế hoạch kéo dài thời lượng phiên sớm thôi. Cần điều chỉnh kỹ thuật nội bộ nên hơi mất thời gian
    • Tham khảo thêm thì tôi đang dùng theo cách này trên khoảng 50 IP và chưa gặp vấn đề gì
      Có vẻ Anthropic chỉ dùng heuristic để xác định liệu có phải con người đang trực tiếp sử dụng hay không
    • Tôi cũng tò mò mục đích của cách dùng này là để cố truy cập API trực tiếp bằng gói thuê bao tháng, hay là cho mục đích nào khác