4 คะแนน โดย GN⁺ 2026-02-04 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • มอบ สภาพแวดล้อม microVM Linux ที่ปลอดภัย สำหรับรันโค้ดที่ไม่น่าเชื่อถืออย่างปลอดภัย
  • ป้องกัน ความเสี่ยงข้อมูลรั่วไหล จากโค้ดที่ LLM สร้างหรือโค้ดจากผู้ใช้ ด้วย การปกป้องคีย์ลับ และ การควบคุมการเข้าถึงเครือข่าย ระหว่างการรันโค้ด
  • สามารถ ดีพลอยตรงไปยัง Deno Deploy จากสภาพแวดล้อมพัฒนาได้ด้วยคำสั่ง sandbox.deploy() โดยไม่ต้องมีขั้นตอน build หรือยืนยันตัวตนเพิ่มเติม
  • มี ฟีเจอร์ volume และ snapshot สำหรับสร้างแคช ฐานข้อมูล และสภาพแวดล้อมพัฒนาเดิมกลับมาใหม่ได้อย่างรวดเร็ว
  • เหมาะกับ สภาพแวดล้อมรันโค้ดที่ต้องการความปลอดภัย เช่น AI agent, ระบบปลั๊กอิน, CI runner เป็นต้น

ภาพรวมของ Deno Sandbox

  • Deno Sandbox มีความสามารถในการรันโค้ดที่ไม่น่าเชื่อถือบน lightweight Linux microVM บนคลาวด์ Deno Deploy
    • สามารถสร้างได้ผ่าน JavaScript หรือ Python SDK และใช้เวลา boot น้อยกว่า 1 วินาที
    • โต้ตอบได้โดยตรงผ่าน SSH, HTTP และ VS Code
  • มีเป้าหมายเพื่อแก้ปัญหา ด้านความปลอดภัยเมื่อโค้ดที่ LLM สร้างหรือโค้ดจากผู้ใช้ทำ external call ที่มี API key รวมอยู่ด้วย
  • โค้ดที่รันภายใน sandbox จะได้รับการปกป้องด้วยสถาปัตยกรรม system isolation และการป้องกันหลายชั้น (Defense-in-depth)

Secrets That Can’t Be Stolen

  • ในสภาพแวดล้อม sandbox คีย์ลับจะไม่ถูกเปิดเผยออกมาเป็น environment variable จริง
    • ภายในโค้ดจะเข้าถึงได้เพียง placeholder string เท่านั้น
    • ระบบจะใส่คีย์จริงให้ เฉพาะตอนที่มี outbound request ไปยังโฮสต์ที่ได้รับอนุญาต
  • ตัวอย่างเช่น OPENAI_API_KEY จะทำงานเฉพาะเมื่อส่งคำขอไปยัง api.openai.com เท่านั้น และจะใช้ไม่ได้หากพยายามรั่วไหลไปยังโดเมนอื่น
  • ช่วย ป้องกันความพยายามขโมยคีย์จาก prompt injection หรือโค้ดอันตราย ได้

Network Egress Control

  • sandbox จะบล็อกคำขอเครือข่ายทั้งหมดที่อยู่นอก รายการโฮสต์ที่อนุญาต (allowNet)
    • ตัวอย่าง: ["api.openai.com", "*.anthropic.com"]
  • ทราฟฟิกเครือข่ายทั้งหมดจะถูก บล็อกที่ขอบเขต VM และใช้นโยบายผ่าน outbound proxy ที่คล้ายกับ coder/httpjail
  • ในอนาคตมีแผนเพิ่ม การวิเคราะห์การเชื่อมต่อขาออก และ programmable hook สำหรับตรวจสอบหรือแก้ไขคำขอ
  • เมื่อนำไปใช้ร่วมกับแฟลก --allow-net ของ Deno ก็สามารถสร้าง ชั้นความปลอดภัยเครือข่ายแบบสองชั้น ได้

Sandbox to Production

  • สามารถใช้คำสั่ง sandbox.deploy() เพื่อ ดีพลอยจาก sandbox ไปยัง Deno Deploy ได้โดยตรง
    • เปลี่ยน สภาพแวดล้อมพัฒนาให้เป็น production แบบ serverless ได้ทันที โดยไม่ต้องมี CI build หรือขั้นตอนยืนยันตัวตนแยก
    • ในโค้ดตัวอย่าง มีการดีพลอย my-app พร้อมออปชัน production: true แล้วแสดง URL
  • ทำให้สามารถ ดีพลอย serverless ที่ขยายอัตโนมัติได้ ด้วยการเรียกเพียงครั้งเดียว

Persistence

  • โดยปกติ sandbox เป็นแบบ ephemeral แต่หากต้องการเก็บสถานะ จะมีฟีเจอร์ดังนี้
    • Volumes: สตอเรจแบบอ่าน/เขียนสำหรับแคช ฐานข้อมูล และข้อมูลผู้ใช้
    • Snapshots: อิมเมจแบบอ่านอย่างเดียวที่รวม toolchain หรือ base volume ไว้
  • หากสร้าง snapshot หลังจาก apt-get install แล้ว sandbox ถัดไปทั้งหมดจะ บูตขึ้นมาพร้อมสภาพแวดล้อมที่ติดตั้งล่วงหน้าได้ทันที
  • สามารถใช้ volume ที่อิงจาก snapshot เพื่อ สร้างสภาพแวดล้อมพัฒนาใหม่ได้ภายในไม่กี่วินาที

Technical Details

  • รีเจียน: Amsterdam, Chicago
  • vCPU: 2
  • หน่วยความจำ: 768MB ~ 4GB
  • อายุการใช้งาน: แบบชั่วคราว (ephemeral) หรืออิงตาม timeout และสามารถขยายได้หากจำเป็น
  • อายุสูงสุด: 30 นาที
  • เวลา boot: น้อยกว่า 1 วินาที
  • กรณีใช้งานที่เหมาะสม: การรันโค้ด AI agent, ระบบปลั๊กอินที่ต้องการความปลอดภัย, CI runner ชั่วคราว, สภาพแวดล้อมรันโค้ดจากผู้ใช้

Pricing

  • รวมอยู่ในแพ็กเกจ Deno Deploy และ คิดค่าบริการตามการใช้งาน
    • เวลา CPU: $0.05/h (รวม 40 ชั่วโมงในแพ็กเกจ Pro)
    • หน่วยความจำ: $0.016/GB-h (รวม 1000 GB-h ในแพ็กเกจ Pro)
    • พื้นที่เก็บข้อมูล volume: $0.20/GiB-month (รวม 5 GiB ในแพ็กเกจ Pro)
  • แพ็กเกจ Enterprise สามารถติดต่อสอบถามแยกได้

Get Started

  • Deno Sandbox เปิดตัวในเวอร์ชันเบตา และให้ใช้งานพร้อมกับการเปิดตัวทั่วไป (GA) ของ Deno Deploy
  • แหล่งข้อมูลสำคัญ
  • ทีม Deno กำลัง ตั้งตารอว่า ผู้ใช้และ AI agent จะสร้างโปรเจกต์อะไรได้บ้างด้วย Deno Sandbox

1 ความคิดเห็น

 
GN⁺ 2026-02-04
ความเห็นจาก Hacker News
  • น่าสนใจตรงที่ไม่จำเป็นต้องใช้ Deno หรือ JavaScript เลย
    สามารถสร้างแซนด์บ็อกซ์ รันคำสั่ง และทำ I/O ไฟล์ได้ผ่าน deno-sandbox ซึ่งเป็น SDK สำหรับ Python
    ยืนยันแล้วว่าโปรโตคอล API ทำงานบนพื้นฐานของ WebSocket

    • ตอนแรกยังไม่ชัดเจนว่าแซนด์บ็อกซ์รันอยู่ บนคลาวด์ ไม่ใช่บนเครื่องโลคัล
  • วิธีจัดการซีเคร็ตของ Deno Sandbox น่าประทับใจ
    ภายในโค้ดจะเห็นเพียง placeholder แทนคีย์จริง และจะมีการใส่คีย์จริงให้เฉพาะตอนส่งคำขอไปยังโฮสต์ที่ได้รับอนุญาตเท่านั้น
    ต่อให้โค้ดอันตรายพยายามดึง placeholder นี้ออกไปข้างนอก ก็ใช้งานอะไรไม่ได้

    • แต่ก็มีข้อสงสัยว่า ถ้าพร็อกซีทำแค่การแทนที่สตริงธรรมดา ผู้โจมตีอาจชักจูงให้หนึ่งในโฮสต์ที่ได้รับอนุญาต echo กลับ คีย์ออกมาได้หรือไม่
      ถ้าพร็อกซีแทนที่คีย์กลับอีกครั้งในทิศทางของ response ก็คงทำได้ยากขึ้น แต่ก็ดูเหมือนจะยังไม่ใช่การป้องกันที่สมบูรณ์
      การฉีดซีเคร็ตผ่านพร็อกซีที่เข้าใจบริบท อาจปลอดภัยกว่า
    • ทำให้นึกถึง Tokenizer ของ Fly
      ตัวแอปไม่ต้องจัดการคีย์โดยตรง แต่ให้พร็อกซีเป็นคนเพิ่ม API key แทน ช่วยลด ความเสี่ยงจากการเปิดเผยข้อมูลด้านความปลอดภัย
    • บล็อกทางการของ Deno ก็พูดถึงไอเดียนี้เช่นกัน
      Secrets that can’t be stolen
      แม้โค้ดอันตรายจะ ขโมยซีเคร็ตไปถาวร ไม่ได้ แต่ก็ยังใช้คีย์นั้นส่งคำขอที่เป็นอันตรายได้อยู่ดี
      คล้ายกับแนวคิดที่ XSS อ่านคุกกี้แบบ httpOnly ไม่ได้ แต่ยังส่งคำขอโดยใช้คุกกี้นั้นได้
    • มีความเป็นไปได้สูงว่าใช้วิธี MITM proxy เพื่อดัก HTTPS request
      ในกรณีนี้ฟีเจอร์อย่าง certificate pinning อาจทำได้ยาก
    • เลยสงสัยว่ากรณีอย่างการเชื่อมต่อฐานข้อมูลผ่าน TCP ซึ่งแทนที่ header ไม่ได้ จะจัดการอย่างไร
      อยากถามด้วยว่าจะมีการเพิ่มฟีเจอร์แบบ Vault หรือไม่
  • ทีม Deno อธิบายว่า ช่วงหลังมีบริการแบบแพลตฟอร์มที่รัน โค้ดที่ LLM สร้างขึ้นทันที เพิ่มมากขึ้น
    หากโค้ดเหล่านี้ต้องเรียกใช้ API ภายนอก ก็จำเป็นต้องมี credentials จริง และการเข้าถึงเครือข่าย
    การทำแซนด์บ็อกซ์อย่างเดียวจึงไม่พอ และต้องมี การควบคุมเครือข่ายกับการปกป้องซีเคร็ต ไปพร้อมกัน
    Deno Sandbox ให้ทั้งสองอย่างนี้ และเมื่อโค้ดพร้อมก็สามารถ deploy ต่อไปยัง Deno Deploy ได้ทันที

    • ทุกครั้งที่อ่านประโยคว่า “นี่ไม่ใช่แค่ plugin sandbox แต่เป็นแพลตฟอร์มสำหรับรันโค้ด AI” ก็อดคิดในใจไม่ได้ว่า “นี่มัน AI
  • ทีมของเราก็เคยสร้างสภาพแวดล้อมแซนด์บ็อกซ์คล้ายกันขึ้นมาเองด้วย Firecracker + Go
    เพราะข้อกำหนดเรื่อง data sovereignty ทำให้ต้องให้บริการอยู่ภายในสหภาพยุโรปเท่านั้น จึงต้อง deploy ได้ทุกที่ที่รองรับ hardware virtualization
    เพื่อไม่ให้ LLM จัดการ credentials โดยตรง เราจึงสร้าง CLI ที่มีการจำกัด scope แบบเฉพาะกิจแล้วส่งให้ใช้งาน
    LLM ก็แค่เรียกมันเหมือนคำสั่ง bash ทั่วไป
    เนื่องจากโมเดลรุ่นใหม่ถูกฝึกมาเป็น coding assistant วิธีนี้จึงดูเป็นธรรมชาติและมีประสิทธิภาพกว่ามาก

  • แนวทางแทนที่ซีเคร็ตดูน่าสนใจ แต่ก็คิดว่าอาจพังได้ในกรณีที่ต้องมีการแปลงคีย์จริง เช่น OAuth 1, JWT, HMAC
    อีกทั้งถ้าคีย์เป็นส่วนหนึ่งของ payload การแทนที่อาจทำให้เกิดปัญหา HTTP เช่น Content-Length ไม่ตรงกัน
    และยิ่งไปกว่านั้น วิธีนี้ก็ช่วยอะไรไม่ได้กับการโจมตีแบบอื่น เช่น SQL injection
    สุดท้ายจึงดูเหมือนเป็น มาตรการบรรเทาความเสี่ยงบางส่วน มากกว่าจะเป็นการป้องกันที่สมบูรณ์

  • มีแพ็กเกจฟรีให้ใช้ เลยรู้สึก อยากลองเล่นแบบ Glitch เพื่อทดลอง แต่ก็ระวังอยู่ เพราะบริการฟรีแนวนี้มักมีประวัติถูกปิดตัวกลางทาง

  • การออกแบบ placeholder สำหรับซีเคร็ตดูเป็นทางเลือกที่ดี
    แต่ช่วงนี้มีผลิตภัณฑ์แซนด์บ็อกซ์เยอะมาก — Modal, Daytona, Fly, Cloudflare, Deno ฯลฯ
    เลยอยากรู้ว่าในโปรดักชันจริงคนใช้ตัวไหนกัน

    • ที่จริงบริการพวกนี้ส่วนใหญ่ก็เป็นแค่ wrapper ของ VM ดังนั้นจะทำเองด้วย EC2 หรือ GCP SDK ก็ยังได้
    • Factory, Nvidia, Perplexity, Manus และรายอื่น ๆ ใช้ E2B ในโปรดักชัน และบอกว่าจนถึงตอนนี้รันแซนด์บ็อกซ์ไปแล้วมากกว่า 200 ล้านครั้ง
  • Deno Sandbox บอกว่าให้ Linux microVM แบบน้ำหนักเบา ที่ทำงานอยู่บนคลาวด์ Deno Deploy
    แต่คำถามสำคัญคือมันจะรันบน สภาพแวดล้อม Linux ที่โฮสต์เอง ได้หรือไม่

    • แต่ผู้ให้บริการส่วนใหญ่มักเลือกใช้ กลยุทธ์ lock-in
      เพราะถ้าเปิดเป็นโอเพนซอร์สทั้งหมด AWS หรือ GCP ก็อาจลอกไปได้
      สุดท้ายก็ให้ความรู้สึกเหมือนสร้างปราสาทอยู่ในแซนด์บ็อกซ์ของคนอื่น แต่ในความเป็นจริงนั่นอาจเป็นโมเดลหารายได้แบบเดียวที่ใช้ได้
  • ถ้าใช้ Claude Pro หรือแพลน Max ในสภาพแวดล้อมแบบนี้ ก็แอบกังวลว่าอาจเชื่อมต่อด้วย IP คนละตัวทุกครั้งจน Anthropic เข้าใจผิดว่าเป็นผู้ใช้หลายคน แล้วบล็อกหรือไม่
    อีกอย่างก็สงสัยว่าทำไมเซสชันถึงจำกัดไว้ที่ 30 นาที

    • มีการบอกว่ากำลังวางแผน ขยายอายุเซสชัน ในเร็ว ๆ นี้ แต่ต้องปรับเทคนิคภายในก่อนเลยต้องใช้เวลา
    • ส่วนตัวฉันใช้งานลักษณะนี้จากประมาณ 50 IP อยู่แล้ว และยังไม่เจอปัญหา
      ดูเหมือน Anthropic จะใช้ heuristic ง่าย ๆ เพื่อดูว่า “มีมนุษย์ใช้งานอยู่จริงหรือไม่
    • เลยสงสัยว่าจุดประสงค์ของการใช้งานในลักษณะนี้คือพยายามเข้าถึง API โดยตรงผ่าน แพลนสมัครสมาชิกรายเดือน หรือมีเป้าหมายอื่น