• AI development सहायक tools का उपयोग जैसे-जैसे अधिक बार होने लगा है, सिस्टम की सुरक्षा और सुविधा दोनों सुनिश्चित करने के लिए sandbox execution environment की ज़रूरत बढ़ी है
  • डिफ़ॉल्ट रूप से Claude Code हर बार file access या execution पर अनुमति मांगता है, लेकिन यह बार-बार पुष्टि कराने की वजह से workflow में बाधा डालता है
  • इसे हल करने के लिए bubblewrap का उपयोग करके lightweight sandbox configuration प्रस्तावित की गई है, जो Docker से हल्की है और local environment जैसा development environment बनाए रख सकती है
  • script /etc, $HOME, project directory जैसी केवल न्यूनतम ज़रूरी paths को bind करती है और project के बाहर access को सीमित करती है
  • यह तरीका AI agents के सुरक्षित execution और development efficiency दोनों को एक साथ सुनिश्चित करने का व्यावहारिक उपाय है

AI agents की file access समस्या

  • Claude Code एक command-line interface है, जो file read·write और software execution के हर मौके पर user permission मांगता है
    • यह security के लिहाज़ से उचित है, लेकिन बार-बार की पुष्टि के कारण parallel work मुश्किल हो जाता है
  • --dangerously-skip-permissions option का उपयोग करने पर बिना पूछे सभी कार्य चलाए जा सकते हैं
    • कुछ users इसका उपयोग करते हैं, लेकिन system damage का जोखिम मौजूद रहता है

Sandboxing की अवधारणा और विकल्प

  • सामान्य समाधान remote machine (exe.dev, sprites.dev, daytona.io) या Docker जैसी virtualization technologies का उपयोग करके sandbox execution उपलब्ध कराना है
  • Linux में bubblewrap एक lightweight विकल्प है, जो cgroups और user namespaces का उपयोग करके process isolation करता है
  • sandbox environment में आवश्यक शर्तें इस प्रकार हैं
    • मौजूदा development environment जैसी ही structure बनाए रखना
    • वर्तमान project के बाहर की जानकारी तक access को न्यूनतम करना
    • केवल project directory को writable रखना
    • IDE के साथ उन्हीं files को सीधे देखना और modify करना
    • AI provider connection और server execution के लिए network access की अनुमति देना

Security considerations और सीमाएँ

  • bubblewrap और Docker पूर्ण security isolation उपलब्ध नहीं कराते
    • kernel zero-day vulnerabilities, side-channel communication, data exfiltration जैसे जोखिम बने रहते हैं
  • फिर भी लेखक इन जोखिमों की तुलना में development convenience को प्राथमिकता देता है
  • codebase git से managed है और GitHub आदि पर backup होने के कारण damage risk कम है
  • API key leakage के जोखिम को कम करने के लिए project-wise API keys अलग रखने की सिफारिश की गई है

bubblewrap sandbox script की संरचना

  • script bwrap command के साथ अलग-अलग directories को read-only (ro-bind) या writable (bind) रूप में mount करती है
    • /bin, /lib, /usr/bin जैसी system paths read-only रहती हैं
    • $HOME/.claude, $HOME/.cache, current working directory ($PWD) writable रहती हैं
    • $HOME/.claude.json को file descriptor के रूप में inject किया जाता है, इसलिए बदलाव वास्तविक file में reflect नहीं होते
    • hostname को bubblewrap में बदल दिया जाता है ताकि अलग पहचान संभव हो
  • /tmp, /proc, /dev को bubblewrap अपने-आप संभालता है
  • पूरे /etc को expose नहीं किया जाता, केवल न्यूनतम आवश्यक files bind की जाती हैं
  • Node.js /opt/node/node-v22.11.0-linux-x64/ path में installed है

User customization का तरीका

  • दूसरे AI agent या system के अनुरूप script में बदलाव करके bash चलाएँ, फिर agent को manually run करते हुए आवश्यक files की जाँच करें
  • strace command का उपयोग करके file access calls को trace किया जा सकता है
    • उदाहरण: strace -e trace=open,openat,stat,statx,access -o /tmp/strace.log codex
    • log का analysis करके आवश्यक files पहचानें और उन paths को bind करके environment को adjust करें

निष्कर्ष

  • bubblewrap का उपयोग करके sandboxing करना एक व्यावहारिक तरीका है, जो local development environment जैसी सुविधा बनाए रखते हुए AI agents की गड़बड़ी या data leakage के जोखिम को न्यूनतम कर सकता है
  • लेखक इस configuration के आधार पर आवश्यकता के अनुसार script को लगातार adjust करने की योजना रखता है

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.