इसे छोड़कर कंटेंट पर जाएं

सुरक्षा

फरवरी 2025 में, LayerX Security Research ने Anthropic के Claude Desktop Extensions (DXT) फ्रेमवर्क में एक गंभीर ज़ीरो-क्लिक रिमोट कोड एक्सीक्यूशन भेद्यता का खुलासा किया। एक्सटेंशन बिना सैंडबॉक्स के पूर्ण सिस्टम विशेषाधिकारों के साथ चलते हैं, जो भाषा मॉडल और स्थानीय ऑपरेटिंग सिस्टम के बीच एक्सीक्यूशन ब्रिज के रूप में कार्य करते हैं।

कई कॉर्पोरेट सुरक्षा टीमें अब यह आवश्यकता रखती हैं कि AI कोडिंग टूल केवल समर्पित वर्चुअल मशीनों, कंटेनरों, या डिस्पोजेबल वातावरणों में चलें — सीधे कॉर्पोरेट एंडपॉइंट्स पर नहीं।

यह devcontainer उस आवश्यकता को पूरा करता है।

+------------------------------------------------+
| Host Machine (corporate endpoint) |
| |
| - No AI tool binaries installed |
| - No AI tool extensions or plugins |
| - Only Docker is required |
| |
| +------------------------------------------+ |
| | Docker Container (isolated) | |
| | | |
| | AI tools run here: | |
| | - Claude Code CLI | |
| | - Codex | |
| | | |
| | No access to: | |
| | x Host filesystem | |
| | x Host keychain / credential store | |
| | x Host clipboard | |
| | x Host network interfaces | |
| | x Other host applications | |
| +------------------------------------------+ |
+------------------------------------------------+

सुरक्षा नियंत्रण

Section titled “सुरक्षा नियंत्रण”

कोई होस्ट वॉल्यूम माउंट नहीं

Section titled “कोई होस्ट वॉल्यूम माउंट नहीं”

सभी डेटा Docker नामित वॉल्यूम में रहता है — बाइंड-माउंटेड होस्ट डायरेक्टरी में नहीं। कंटेनर के अंदर कोई समझौता होने पर भी आपकी होस्ट मशीन की फ़ाइलों तक पहुँच नहीं हो सकती। वॉल्यूम विवरण के लिए कॉन्फ़िगरेशन — डेटा परसिस्टेंस देखें।

कोई साझा क्रेडेंशियल स्टोर नहीं

Section titled “कोई साझा क्रेडेंशियल स्टोर नहीं”

कंटेनर की macOS Keychain, Windows Credential Manager, ब्राउज़र प्रोफ़ाइल, या होस्ट SSH एजेंट तक कोई पहुँच नहीं है। SSH कुंजियाँ स्टार्टअप पर base64-एनकोडेड एनवायरनमेंट वेरिएबल के माध्यम से इंजेक्ट की जाती हैं और केवल कंटेनर के अंदर ही मौजूद होती हैं।

कोई क्लिपबोर्ड सिंक नहीं

Section titled “कोई क्लिपबोर्ड सिंक नहीं”

Docker कंटेनर होस्ट के साथ क्लिपबोर्ड स्थिति साझा नहीं करते। कॉपी/पेस्ट के माध्यम से डेटा लीक नहीं हो सकता।

नेटवर्क आइसोलेशन

Section titled “नेटवर्क आइसोलेशन”

कंटेनर दो समर्थित प्रमाणीकरण मोड में से एक में बाहरी दुनिया के साथ संवाद करता है:

  • LiteLLM प्रॉक्सी मोड — Docker के NAT के माध्यम से आपके LiteLLM प्रॉक्सी तक आउटबाउंड HTTPS।
  • OAuth मोड — Docker के NAT के माध्यम से सीधे Anthropic तक आउटबाउंड HTTPS।

कंटेनर की VPN टनल, कॉर्पोरेट नेटवर्क इंटरफ़ेस, या होस्ट पर अन्य सेवाओं तक कोई पहुँच नहीं है।

डिज़ाइन से क्षणभंगुर

Section titled “डिज़ाइन से क्षणभंगुर”

पूरा वातावरण सेकंडों में नष्ट और पुनर्निर्मित किया जा सकता है। कंटेनर को डिस्पोजेबल मानें।

Terminal window
docker compose down -v
docker compose pull && docker compose up -d

यह वातावरण AI टूल को केवल कमांड-लाइन इंटरफ़ेस के रूप में चलाता है। कोई डेस्कटॉप एप्लिकेशन नहीं, कोई ब्राउज़र एक्सटेंशन नहीं, कोई DXT फ्रेमवर्क नहीं। जिस भेद्यता ने इस आइसोलेशन मॉडल को प्रेरित किया, वह कंटेनर के अंदर CLI उपयोग पर लागू नहीं होती।

कंटेनर हार्डनिंग

Section titled “कंटेनर हार्डनिंग”

docker-compose.yml कई गहन-सुरक्षा उपाय लागू करता है:

  • कैपेबिलिटी ड्रॉपिंग — सभी Linux कैपेबिलिटी ड्रॉप की जाती हैं (cap_drop: ALL), फिर केवल न्यूनतम सेट पुनः जोड़ा जाता है: CHOWN, DAC_OVERRIDE, FOWNER (एंट्रीपॉइंट में वॉल्यूम अनुमति सुधार के लिए), SETUID/SETGID (sudo के लिए), NET_RAW (ping/tcpdump के लिए), और NET_ADMIN (Wireshark और bettercap जैसे पैकेट कैप्चर टूल के लिए)।
  • रिसोर्स लिमिट — CPU (4 कोर), मेमोरी (8 GB), और PID संख्या (4096) को mem_limit, cpus, और pids_limit के माध्यम से सीमित किया जाता है ताकि रिसोर्स एक्ज़ॉस्शन अटैक को रोका जा सके।
  • /tmp के लिए tmpfs/tmp डायरेक्टरी को 256 MB tmpfs के रूप में माउंट किया जाता है, जो अस्थायी फ़ाइलों को मेमोरी में रखता है और उन्हें कंटेनर की राइटेबल लेयर में पर्सिस्ट होने से रोकता है।
  • डिफ़ॉल्ट रूप से TLS सत्यापन चालूNODE_TLS_REJECT_UNAUTHORIZED सेट नहीं है, इसलिए Node.js डिफ़ॉल्ट रूप से TLS प्रमाणपत्रों को मान्य करता है। जिन उपयोगकर्ताओं को सेल्फ-साइन्ड प्रमाणपत्र स्वीकार करने की आवश्यकता है (उदा. आंतरिक प्रॉक्सी के लिए) वे अपनी .env फ़ाइल में NODE_TLS_REJECT_UNAUTHORIZED=0 जोड़कर ऑप्ट इन कर सकते हैं।
  • SSH कुंजी umask — SSH निजी कुंजियाँ umask 077 के तहत लिखी जाती हैं, इसलिए फ़ाइल कभी भी वर्ल्ड-रीडेबल नहीं होती — निर्माण और chmod कॉल के बीच भी नहीं।

सुरक्षा और पेनिट्रेशन टेस्टिंग टूल

Section titled “सुरक्षा और पेनिट्रेशन टेस्टिंग टूल”

कंटेनर में अधिकृत परीक्षण परिदृश्यों के लिए लगभग 80 पूर्व-स्थापित सुरक्षा और पेनिट्रेशन टेस्टिंग टूल शामिल हैं। टूल श्रेणी के अनुसार व्यवस्थित हैं:

श्रेणीटूल (उदाहरण)
नेटवर्क विश्लेषणtshark, wireshark, masscan, hping3, bettercap (amd64), netdiscover
वेब स्कैनरnikto, sqlmap, dirb, whatweb, sslscan, OWASP ZAP, dalfox, feroxbuster
पासवर्ड और प्रमाणीकरणhydra, john, hashcat, medusa, ncrack
रिवर्स इंजीनियरिंगradare2, Ghidra, gdb, binwalk, strace, ltrace
रिकॉनसेंसsubfinder, amass, httpx, nuclei, gau, waybackurls, recon-ng, spiderfoot
फ़ज़िंग और एन्यूमरेशनffuf, gobuster, SecLists
सप्लाई चेन और सीक्रेट्सtrufflehog, grype, syft, gitleaks, trivy
एक्सप्लॉइटेशन फ्रेमवर्कMetasploit (amd64), searchsploit (ExploitDB)

कुछ टूल (bettercap, Metasploit) अपस्ट्रीम पैकेजिंग बाधाओं के कारण केवल amd64 पर उपलब्ध हैं। पैकेट कैप्चर टूल (tshark, bettercap) को NET_ADMIN कैपेबिलिटी की आवश्यकता होती है, जो डिफ़ॉल्ट docker-compose.yml में शामिल है।

पूरी सूची के लिए, कंटेनर के अंदर claude-self-test चलाएँ (सेक्शन 7 सभी सुरक्षा टूल की जाँच करता है)।

अनुपालन चेकलिस्ट

Section titled “अनुपालन चेकलिस्ट”
आवश्यकतास्थिति
होस्ट एंडपॉइंट पर AI टूल स्थापित नहींहाँ
आइसोलेटेड VM या कंटेनर में चलता हैहाँ
होस्ट फ़ाइल शेयर तक कोई पहुँच नहींहाँ
कोई क्लिपबोर्ड सिंक नहींहाँ
कोई साझा क्रेडेंशियल स्टोर नहींहाँ
प्रोड नेटवर्क में कोई VPN स्प्लिट टनलिंग नहींहाँ
वातावरण डिस्पोजेबल हैहाँ
कोई डेस्कटॉप एक्सटेंशन या प्लगइन नहींहाँ
Linux कैपेबिलिटी ड्रॉप (न्यूनतम-विशेषाधिकार)हाँ
रिसोर्स लिमिट लागू (CPU/मेमोरी/PIDs)हाँ
डिफ़ॉल्ट रूप से TLS प्रमाणपत्र सत्यापन सक्षमहाँ
आंतरिक सेवाएँ केवल localhost पर बाउंडहाँ

सर्वोत्तम अभ्यास

Section titled “सर्वोत्तम अभ्यास”
  1. अपनी होस्ट मशीन पर AI कोडिंग टूल स्थापित न करें। इसके बजाय इस कंटेनर का उपयोग करें।
  2. docker-compose.yml में बाइंड माउंट न जोड़ें। नामित-वॉल्यूम कॉन्फ़िगरेशन जानबूझकर है।
  3. कंटेनर के अंदर उपयोग की जाने वाली SSH कुंजियों को समय-समय पर रोटेट करें।
  4. साझा करने से पहले .env की समीक्षा करें। इसमें API कुंजियाँ होती हैं और SSH निजी कुंजियाँ हो सकती हैं।
  5. सुरक्षा पैच प्राप्त करने के लिए समय-समय पर अपडेट करें:
Terminal window
docker compose pull && docker compose up -d