รู้จัก Anthropic sandbox-runtime แยกส่วน AI Agent ระดับ OS

บทความนี้จะพาไปทำความรู้จักกับ sandbox-runtime (srt) จาก Anthropic ที่กำลังเป็นกระแสในฐานะเครื่องมือโอเพนซอร์สเบื้องหลัง Claude Code โดย srt ทำหน้าที่เป็น sandbox ระดับ OS ที่ช่วยจำกัดการเข้าถึงไฟล์และโฮสต์เครือข่ายของโปรเซสต่างๆ โดยไม่จำเป็นต้องรัน container ขึ้นมา ความโดดเด่นคือมันไม่ได้จำกัดการใช้งานแค่กับ Claude Code เท่านั้น แต่ยังรองรับทั้ง AI Agent ทั่วไป, MCP server ในเครื่อง รวมถึงโปรแกรม command-line อื่นๆ ด้วย
เครื่องมือนี้รองรับการใช้งานบนเครื่องเดฟทั้ง macOS (ผ่าน Seatbelt) และ Linux (ผ่าน bubblewrap, socat และ ripgrep) รวมถึง CI box ต่างๆ ส่วนระบบปฏิบัติการ Windows ปัจจุบันยังอยู่ในสถานะ alpha
จากการใช้งานภายในของ Anthropic พบว่าการใช้ sandboxing ช่วยลดการถามขอสิทธิ์ (permission prompts) ใน Claude Code ลงได้ถึง 84% ซึ่งถือเป็นข้อดีที่สุดเพราะช่วยลดความเหนื่อยล้าในการอนุมัติ (approval fatigue) ของนักพัฒนา ในขณะที่ยังคงบังคับใช้ข้อจำกัดด้านความปลอดภัยกับกระบวนการทำงานทั้งสาย (process tree) ได้อย่างเข้มงวด อย่างไรก็ตาม srt ยังคงเป็นรุ่น beta research preview และการรองรับ Windows ยังไม่สมบูรณ์
Anthropic sandbox-runtime คืออะไร?
Anthropic sandbox-runtime เป็นเครื่องมือโอเพนซอร์สที่ใช้ห่อหุ้มโปรเซสใดๆ ภายใต้ข้อจำกัดของระบบไฟล์และเครือข่าย นักพัฒนาสามารถติดตั้งได้ง่ายผ่านคำสั่ง bash npm install -g @anthropic-ai/sandbox-runtime จากนั้นเพียงใส่คำนำหน้าคำสั่งด้วย srt โดยตัวเครื่องมือรองรับการทำงานทั้งในรูปแบบ CLI และไลบรารี TypeScript
กลไกการทำงานบนแต่ละระบบปฏิบัติการ
srt ใช้กลไกการแยกส่วน (isolation primitives) เฉพาะของแต่ละระบบปฏิบัติการ เพื่อให้ครอบคลุมถึงโปรเซสลูกทั้งหมด (entire process tree) รวมถึงสคริปต์และโปรเซสย่อย:
- macOS: ใช้ sandbox-exec ร่วมกับโปรไฟล์ Seatbelt ที่สร้างขึ้นแบบไดนามิก
- Linux: ใช้ bubblewrap โดยถอด network namespace ออก
- Windows (alpha): ใช้บัญชี srt-sandbox โดยเฉพาะ ร่วมกับ Windows Filtering Platform egress fence และการกำหนดไฟล์ ACL
ด้านทราฟฟิกเครือข่ายจะออกจากระบบผ่าน HTTP และ SOCKS5 พร็อกซีที่รันบนโฮสต์เท่านั้น โดยมีการใช้รายการอนุญาต (allowlist) และรายการปฏิเสธ (denylist) ของโดเมนตามที่ผู้ใช้กำหนดเพื่อความปลอดภัยสูงสุด
ทำไมต้องแยกส่วนทั้งระบบไฟล์และเครือข่าย?
ทีม Anthropic ให้ความเห็นว่าการป้องกันเพียงด้านใดด้านหนึ่งไม่เพียงพอ หากไม่มีการแยกส่วนเครือข่าย Agent ที่ถูกโจมตีด้วย prompt-injected อาจขโมย SSH keys ออกไปภายนอกได้ ในทางกลับกันหากไม่มีการแยกส่วนระบบไฟล์ Agent อาจหลุดออกจาก sandbox เพื่อเข้าถึงเครือข่ายในส่วนที่ห้ามไว้
ค่าเริ่มต้นของ srt จึงถูกออกแบบมาให้รัดกุม คืออนุญาตให้รันคำสั่งอ่านได้ทุกที่ยกเว้นจะถูกปฏิเสธ ปฏิเสธการเขียนทุกที่ยกเว้นจะได้รับอนุญาต และปฏิเสธการเข้าถึงเครือข่ายทั้งหมดเว้นแต่โดเมนนั้นจะอยู่ใน allowlist
การประยุกต์ใช้กับ MCP Server และ Agent
สำหรับ MCP server ผู้ใช้สามารถเปลี่ยนคำสั่งในไฟล์ .mcp.json จาก npx เป็น srt ได้ทันที โดยตั้งค่ากฎต่างๆ ไว้ใน ~/.srt-settings.json ส่วนนักพัฒนาที่สร้าง Agent เอง สามารถใช้ไลบรารีผ่าน SandboxManager เพื่อเริ่มต้นการทำงานของพร็อกซีและห่อหุ้มคำสั่งด้วย wrapWithSandbox()
เป้าหมายหลักของตัวเลข 84% ที่ Anthropic รายงาน คือการแก้ปัญหาความเหนื่อยล้าจากการอนุมัติ เมื่อ Agent มีขอบเขตการทำงานที่ปลอดภัยและชัดเจน มันจะสามารถทำงานได้อย่างอิสระภายในขอบเขตนั้น และจะหยุดถามขอสิทธิ์เฉพาะเมื่อจำเป็นต้องข้ามขอบเขตที่กำหนดไว้เท่านั้น
จุดสมดุลระหว่างความปลอดภัยและการใช้งาน
การตั้งค่า allowlist ที่เข้มงวดเกินไปอาจทำให้ Agent ทำงานไม่ได้ เช่น npm install ล้มเหลว แต่หากปล่อยหลวมเกินไป sandbox ก็จะไร้ความหมาย srt จึงมีตัวเลือกปรับแต่งที่หลากหลาย เช่น การใช้ Wildcards (เช่น *.npmjs.org), ระบบ Ask callback เพื่อตัดสินใจแบบเรียลไทม์ และการตรวจสอบที่อยู่ (Resolved-address check) เพื่อป้องกันการเข้าถึง loopback หรือ cloud metadata IP ที่ไม่พึงประสงค์
เปรียบเทียบกับเครื่องมือ Sandbox อื่นๆ
| คุณสมบัติ | Anthropic sandbox-runtime | OpenAI Codex CLI sandbox | Docker Sandboxes | E2B |
|---|---|---|---|---|
| การแยกส่วน (Isolation) | OS primitives: Seatbelt, bubblewrap | OS primitives: Seatbelt, bubblewrap | microVM ต่อ sandbox | Firecracker microVM |
| สถานที่รัน | เครื่อง Local | เครื่อง Local | เครื่อง Local | Cloud หรือ BYOC |
| จำเป็นต้องมี Container | ไม่ใช่ | ไม่ใช่ | ใช่ | ใช่ |
| เครือข่าย (ค่าเริ่มต้น) | ปฏิเสธทั้งหมด (Allowlist) | ปรับแต่งได้ | เลือกนโยบายได้ | เปิดเป็นค่าเริ่มต้น |
| สถานะ | Beta research preview | มีใน Codex CLI | ผลิตภัณฑ์พร้อมจำหน่าย | ผลิตภัณฑ์พร้อมจำหน่าย |
สรุปประเด็นสำคัญ
- srt ช่วยทำ sandbox ระดับ OS โดยไม่ต้องพึ่งพา container
- เน้นความปลอดภัยด้วยนโยบายปฏิเสธเครือข่ายเป็นค่าเริ่มต้นและผ่านพร็อกซี allowlist
- ช่วยลดภาระการตรวจสอบของนักพัฒนาลงได้มหาศาล (ลดการถามสิทธิ์ 84%)
- หัวใจสำคัญของความปลอดภัยขึ้นอยู่กับการกำหนดค่า allowlist ที่เหมาะสม เพื่อไม่ให้ข้อมูลรั่วไหลหรือขัดขวางการทำงานของ Agent
Asif Razzaq CEO ของ Marktechpost AI Media Inc. ผู้เชี่ยวชาญด้าน AI และวิศวกรที่มีวิสัยทัศน์ มุ่งมั่นนำเสนอข่าวสารด้าน machine learning ที่ถูกต้องทางเทคนิคและเข้าใจง่ายผ่านแพลตฟอร์มที่มีผู้เข้าชมกว่า 2 ล้านครั้งต่อเดือน
ความคิดเห็น (0)
เข้าสู่ระบบเพื่อร่วมแสดงความเห็น
สมัครสมาชิกมาเป็นคนแรกที่แสดงความเห็นกันเลยโบร
