
sandbox-runtime v0.0.67
एक हल्का सैंडबॉक्सिंग टूल जो OS स्तर पर मनमाने प्रक्रियाओं पर फाइलसिस्टम और नेटवर्क प्रतिबंध लागू करने के लिए है, बिना किसी कंटेनर की आवश्यकता के।
Anthropic Sandbox Runtime (srt)
मनमाने प्रक्रियाओं पर OS स्तर पर फ़ाइलसिस्टम और नेटवर्क प्रतिबंध लागू करने के लिए एक हल्का सैंडबॉक्सिंग टूल, जिसके लिए कंटेनर की आवश्यकता नहीं होती।
srt मूल OS सैंडबॉक्सिंग प्रिमिटिव्स (macOS पर sandbox-exec, Linux पर bubblewrap) और प्रॉक्सी-आधारित नेटवर्क फ़िल्टरिंग का उपयोग करता है। इसका उपयोग एजेंट्स, स्थानीय MCP सर्वर, bash कमांड और मनमानी प्रक्रियाओं के व्यवहार को सैंडबॉक्स करने के लिए किया जा सकता है।
बीटा रिसर्च प्रीव्यू
Sandbox Runtime एक रिसर्च प्रीव्यू है जिसे Claude Code के लिए अधिक सुरक्षित AI एजेंट्स को सक्षम बनाने हेतु विकसित किया गया है। इसे व्यापक पारिस्थितिकी तंत्र को अधिक सुरक्षित एजेंटिक सिस्टम बनाने में मदद करने के लिए एक प्रारंभिक ओपन सोर्स प्रीव्यू के रूप में उपलब्ध कराया जा रहा है। चूँकि यह एक प्रारंभिक रिसर्च प्रीव्यू है, APIs और कॉन्फ़िगरेशन फ़ॉर्मेट विकसित हो सकते हैं। हम AI एजेंट्स को डिफ़ॉल्ट रूप से अधिक सुरक्षित बनाने के लिए प्रतिक्रिया और योगदान का स्वागत करते हैं!
इंस्टॉलेशन```bash
npm install -g @anthropic-ai/sandbox-runtime
## बुनियादी उपयोग```bash
# Network restrictions
$ srt "curl anthropic.com"
Running: curl anthropic.com
<html>...</html> # Request succeeds
$ srt "curl example.com"
Running: curl example.com
Connection blocked by network allowlist # Request blocked
# Filesystem restrictions
$ srt "cat README.md"
Running: cat README.md
# Anthropic Sandb... # Current directory access allowed
$ srt "cat ~/.ssh/id_rsa"
Running: cat ~/.ssh/id_rsa
cat: /Users/ollie/.ssh/id_rsa: Operation not permitted # Specific file blocked
अवलोकन
यह पैकेज एक स्टैंडअलोन सैंडबॉक्स कार्यान्वयन प्रदान करता है जिसका उपयोग CLI टूल और लाइब्रेरी दोनों के रूप में किया जा सकता है। इसे secure-by-default दर्शन के साथ डिज़ाइन किया गया है जो सामान्य डेवलपर उपयोग मामलों के लिए अनुकूलित है: प्रक्रियाएँ न्यूनतम पहुँच के साथ शुरू होती हैं, और आप स्पष्ट रूप से केवल वही छेद बनाते हैं जिनकी आपको आवश्यकता होती है।
मुख्य क्षमताएँ:
- नेटवर्क प्रतिबंध: नियंत्रित करें कि कौन से होस्ट/डोमेन HTTP/HTTPS और अन्य प्रोटोकॉल के माध्यम से एक्सेस किए जा सकते हैं
- फ़ाइलसिस्टम प्रतिबंध: नियंत्रित करें कि कौन सी फ़ाइलें/निर्देशिकाएँ पढ़ी/लिखी जा सकती हैं
- Unix सॉकेट प्रतिबंध: स्थानीय IPC सॉकेट तक पहुँच नियंत्रित करें
- उल्लंघन निगरानी: macOS पर, रीयल-टाइम अलर्ट के लिए सिस्टम के सैंडबॉक्स उल्लंघन लॉग स्टोर का उपयोग करें
उदाहरण उपयोग मामला: MCP सर्वर को सैंडबॉक्स करना
एक प्रमुख उपयोग मामला Model Context Protocol (MCP) सर्वर को सैंडबॉक्स करके उनकी क्षमताओं को प्रतिबंधित करना है। उदाहरण के लिए, फ़ाइलसिस्टम MCP सर्वर को सैंडबॉक्स करने के लिए:
सैंडबॉक्सिंग के बिना (.mcp.json):```json
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem"]
}
}
}
**सैंडबॉक्सिंग के साथ** (`.mcp.json`):```json
{
"mcpServers": {
"filesystem": {
"command": "srt",
"args": ["npx", "-y", "@modelcontextprotocol/server-filesystem"]
}
}
}
फिर ~/.srt-settings.json में प्रतिबंध कॉन्फ़िगर करें:```json
{
"filesystem": {
"denyRead": [],
"allowWrite": ["."],
"denyWrite": ["~/sensitive-folder"]
},
"network": {
"allowedDomains": [],
"deniedDomains": []
}
}
अब MCP सर्वर को अस्वीकृत पथ पर लिखने से रोक दिया जाएगा:```
> Write a file to ~/sensitive-folder
✗ Error: EPERM: operation not permitted, open '/Users/ollie/sensitive-folder/test.txt'
यह कैसे काम करता है
सैंडबॉक्स OS-स्तरीय प्रिमिटिव्स का उपयोग करके प्रतिबंध लागू करता है जो पूरे प्रोसेस ट्री पर लागू होते हैं:
- macOS: डायनामिक रूप से जनरेट किए गए Seatbelt प्रोफाइल के साथ
sandbox-execका उपयोग करता है - Linux: नेटवर्क नेमस्पेस आइसोलेशन के साथ कंटेनरीकरण के लिए bubblewrap का उपयोग करता है
- Windows: सैंडबॉक्स्ड प्रोसेस को एक समर्पित
srt-sandboxलोकल यूज़र अकाउंट के अंतर्गत चलाता है, जिसमें उस अकाउंट के SID पर कुंजीबद्ध एक Windows Filtering Platform एग्रेस फ़ेंस और वर्किंग ट्री पर प्रति-सत्र स्पष्ट ACEs होते हैं
0d1c612947c798aef48e6ab4beb7e8544da9d41a-4096x2305
द्वैत आइसोलेशन मॉडल
प्रभावी सैंडबॉक्सिंग के लिए फाइलसिस्टम और नेटवर्क दोनों आइसोलेशन आवश्यक हैं। फाइल आइसोलेशन के बिना, एक समझौता किया गया प्रोसेस SSH कुंजियों या अन्य संवेदनशील फाइलों को एक्सफिल्ट्रेट कर सकता है। नेटवर्क आइसोलेशन के बिना, एक प्रोसेस सैंडबॉक्स से बच सकता है और अप्रतिबंधित नेटवर्क एक्सेस प्राप्त कर सकता है।
फाइलसिस्टम आइसोलेशन पढ़ने और लिखने के प्रतिबंधों को लागू करता है:
- पढ़ें (deny-then-allow पैटर्न): डिफ़ॉल्ट रूप से, हर जगह पढ़ने की एक्सेस की अनुमति है। आप व्यापक क्षेत्रों (जैसे,
/Users) को अस्वीकार कर सकते हैं और फिर उनके भीतर विशिष्ट पथों (जैसे,.) को पुनः अनुमति दे सकते हैं।allowReaddenyReadपर प्राथमिकता लेता है — लिखने के विपरीत, जहाँdenyWriteallowWriteपर प्राथमिकता लेता है। एकdenyReadप्रविष्टि जो उसallowReadक्षेत्र से अधिक विशिष्ट है जिसके भीतर वह आती है (जैसेdenyRead: ["**/.env"]याallowRead: ["."]के साथ["./secrets"]) अभी भी अस्वीकृत रहती है। - लिखें (allow-only पैटर्न): डिफ़ॉल्ट रूप से, हर जगह लिखने की एक्सेस अस्वीकार कर दी जाती है। आपको स्पष्ट रूप से पथों (जैसे,
.,/tmp) की अनुमति देनी होगी। एक खाली allow सूची का अर्थ है कोई लिखने की एक्सेस नहीं।
नेटवर्क आइसोलेशन (allow-only पैटर्न): डिफ़ॉल्ट रूप से, सभी नेटवर्क एक्सेस अस्वीकार कर दी जाती है। आपको स्पष्ट रूप से डोमेन की अनुमति देनी होगी। एक खाली allowedDomains सूची का अर्थ है कोई नेटवर्क एक्सेस नहीं। नेटवर्क ट्रैफ़िक होस्ट पर चल रहे प्रॉक्सी सर्वरों के माध्यम से रूट किया जाता है:
-
Linux: अनुरोध फाइलसिस्टम के माध्यम से एक Unix डोमेन सॉकेट पर रूट किए जाते हैं। सैंडबॉक्स्ड प्रोसेस का नेटवर्क नेमस्पेस पूरी तरह से हटा दिया जाता है, इसलिए सभी नेटवर्क ट्रैफ़िक को होस्ट पर चल रहे प्रॉक्सी के माध्यम से जाना चाहिए (Unix सॉकेट्स पर सुन रहे हैं जो सैंडबॉक्स में बाइंड-माउंट किए गए हैं)
-
macOS: Seatbelt प्रोफाइल केवल एक विशिष्ट लोकलहोस्ट पोर्ट पर संचार की अनुमति देता है। प्रॉक्सी इस पोर्ट पर सुनते हैं, सभी नेटवर्क एक्सेस के लिए एक नियंत्रित चैनल बनाते हैं
-
Windows: एक मशीन-व्यापी WFP फ़िल्टर सेट
srt-sandboxअकाउंट से उत्पन्न होने वाले सभी आउटबाउंड कनेक्शनों को ब्लॉक करता है, सिवाय प्रॉक्सी पोर्ट रेंज तक लूपबैक के। प्रॉक्सी उस रेंज के भीतर सुनते हैं, सभी नेटवर्क एक्सेस के लिए एक नियंत्रित चैनल बनाते हैं
HTTP/HTTPS (HTTP प्रॉक्सी के माध्यम से) और अन्य TCP ट्रैफ़िक (SOCKS5 प्रॉक्सी के माध्यम से) दोनों इन प्रॉक्सी द्वारा मध्यस्थता किए जाते हैं, जो आपकी डोमेन allowlists और denylists को लागू करते हैं।
Claude Code में सैंडबॉक्सिंग पर अधिक विवरण के लिए, देखें:
- Claude Code Sandboxing Documentation
- Beyond Permission Prompts: Making Claude Code More Secure and Autonomous
आर्किटेक्चर```
src/ ├── index.ts # Library exports ├── cli.ts # CLI entrypoint (srt command) ├── utils/ # Shared utilities │ ├── debug.ts # Debug logging │ ├── settings.ts # Settings reader (permissions + sandbox config) │ ├── platform.ts # Platform detection │ └── exec.ts # Command execution utilities └── sandbox/ # Sandbox implementation ├── sandbox-manager.ts # Main sandbox manager ├── sandbox-schemas.ts # Zod schemas for validation ├── sandbox-violation-store.ts # Violation tracking ├── sandbox-utils.ts # Shared sandbox utilities ├── http-proxy.ts # HTTP/HTTPS proxy for network filtering ├── socks-proxy.ts # SOCKS5 proxy for network filtering ├── linux-sandbox-utils.ts # Linux bubblewrap sandboxing ├── macos-sandbox-utils.ts # macOS sandbox-exec sandboxing └── windows-sandbox-utils.ts # Windows srt-win sandboxing
## उपयोग