Zerobox - เครื่องมือ sandboxing กระบวนการแบบข้ามแพลตฟอร์มน้ำหนักเบาที่ใช้รันไทม์ของ OpenAI Codex
(github.com/afshinm)- แยกรันไทม์ sandbox ของ Codex ออกมาเป็นเครื่องมืออิสระ เป็นเครื่องมือแยกกระบวนการน้ำหนักเบาที่สามารถใช้ ควบคุมไฟล์·เครือข่าย·ข้อมูลรับรอง กับคำสั่งใดก็ได้
- แม้จะ รันโค้ดที่ AI สร้างขึ้นโดยตรง ก็ ไม่ต้องกังวลเรื่องไฟล์เสียหาย·ข้อมูลรั่วไหล
- นโยบายเริ่มต้นตั้งเป็น deny-by-default จึงบล็อกการเขียน การเข้าถึงเครือข่าย และตัวแปรสภาพแวดล้อมทั้งหมดที่ไม่ได้อนุญาตไว้อย่างชัดเจน
- เรียกใช้ API ภายนอกได้โดยไม่เปิดเผย API key ในโค้ด : ฟีเจอร์ Credential Injection ทำให้โปรเซสภายใน sandbox เห็นเพียง placeholder ส่วน API key จริงจะอยู่ที่ network proxy
- ติดตั้งเสร็จได้ด้วยไบนารีเดียวผ่าน
curl ... | shหรือnpm install -g zeroboxโดยไม่ต้อง build container image หรือรอ boot VM - ตรวจสอบและย้อนกลับได้ทันทีว่า
npm installเปลี่ยนอะไรไปบ้าง: เพียงรันzerobox --restore --allow-write=. -- npm installก็จะกู้คืนอัตโนมัติเมื่อจบงาน หรือจะบันทึกไว้ก่อนด้วย--snapshotแล้วค่อยตรวจดูการเปลี่ยนแปลงภายหลังด้วยzerobox snapshot diff <id>ก่อน rollback ด้วยrestoreก็ได้ - แยกสิทธิ์ได้ในทุกการเรียกใช้เครื่องมือของ LLM: สร้าง sandbox แบบอ่านอย่างเดียว แบบเขียนอย่างเดียว และแบบที่อนุญาตเฉพาะบางโดเมนแยกกัน เพื่อให้แต่ละ tool call ของเอเจนต์ทำงานด้วยสิทธิ์ต่างกัน → ต่อให้ prompt injection สั่ง
rm -rfก็จะถูกเมินหากเป็น sandbox ที่ไม่มีสิทธิ์เขียน - บล็อกการเรียกเครือข่ายภายนอกที่ไม่ตั้งใจในขั้น build/test ได้อัตโนมัติ: หากรันทดสอบด้วย
zerobox --allow-write=/tmp -- npm testแล้วโค้ดพยายามเรียก API ภายนอกแบบลับ ๆ ก็จะล้มเหลวทันที ช่วยตรวจพบ supply chain attack หรือ side effect ได้ตั้งแต่เนิ่น ๆ - ไม่จำเป็นต้องเขียนกฎบล็อกไดเรกทอรีสำคัญด้วยมือ: โปรไฟล์เริ่มต้นจะ deny เส้นทางอย่าง
~/.ssh,~/.awsให้อัตโนมัติ จึงมีชั้นป้องกันพื้นฐานโดยไม่ต้องตั้งค่าเพิ่ม - ไม่ต้องกังวลเรื่อง environment variable ปนเปื้อน : โดยปกติจะส่งต่อเฉพาะค่าที่จำเป็นอย่าง
PATH,HOMEเท่านั้น จึงไม่ทำให้ค่าประเภทAWS_SECRET_ACCESS_KEYหลุดไปยัง child process และสามารถ whitelist เฉพาะที่ต้องการได้ด้วยรูปแบบ--allow-env=DATABASE_URL - รองรับทั้ง Rust SDK และ TypeScript SDK และสามารถรันผ่าน CLI แบบไบนารีเดียวได้โดยไม่ต้องใช้ Docker หรือ VM ด้วย overhead ราว 10ms
- เป็นเครื่องมือที่มีประโยชน์อย่างยิ่งต่อ ความปลอดภัยของ workflow AI เช่น การรันโค้ดที่ AI agent สร้างขึ้น การแยกการเรียกใช้เครื่องมือของ LLM และการปกป้อง build script
- การรองรับแพลตฟอร์มและข้อมูลทางเทคนิค
- macOS: รองรับเต็มรูปแบบบนพื้นฐาน Seatbelt(sandbox-exec)
- Linux: รองรับเต็มรูปแบบบนพื้นฐาน Bubblewrap + Seccomp + Namespaces
- Windows: มีแผนรองรับบนพื้นฐาน Restricted Tokens + ACLs + Firewall
- สามารถใช้ตัวเลือก
--strict-sandboxเพื่อบังคับให้ หยุดการทำงาน แทนการ fallback ไปใช้การแยกที่อ่อนลงในสภาพแวดล้อมที่ไม่มี bubblewrap (เช่น ภายใน Docker)
- ไลเซนส์ Apache-2.0 / Rust + TypeScript
ยังไม่มีความคิดเห็น