- होम
- डेव कंटेनर
- सुरक्षा
सुरक्षा
पृष्ठभूमि
Section titled “पृष्ठभूमि”फरवरी 2025 में, LayerX Security Research ने Anthropic के Claude Desktop Extensions (DXT) फ्रेमवर्क में एक गंभीर ज़ीरो-क्लिक रिमोट कोड एक्सीक्यूशन भेद्यता का खुलासा किया। एक्सटेंशन बिना सैंडबॉक्स के पूर्ण सिस्टम विशेषाधिकारों के साथ चलते हैं, जो भाषा मॉडल और स्थानीय ऑपरेटिंग सिस्टम के बीच एक्सीक्यूशन ब्रिज के रूप में कार्य करते हैं।
कई कॉर्पोरेट सुरक्षा टीमें अब यह आवश्यकता रखती हैं कि AI कोडिंग टूल केवल समर्पित वर्चुअल मशीनों, कंटेनरों, या डिस्पोजेबल वातावरणों में चलें — सीधे कॉर्पोरेट एंडपॉइंट्स पर नहीं।
यह devcontainer उस आवश्यकता को पूरा करता है।
आइसोलेशन मॉडल
Section titled “आइसोलेशन मॉडल”+------------------------------------------------+| 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 “डिज़ाइन से क्षणभंगुर”पूरा वातावरण सेकंडों में नष्ट और पुनर्निर्मित किया जा सकता है। कंटेनर को डिस्पोजेबल मानें।
docker compose down -vdocker compose pull && docker compose up -dpodman-compose down -vpodman-compose pull && podman-compose up -dकेवल CLI टूल
Section titled “केवल CLI टूल”यह वातावरण 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 “सर्वोत्तम अभ्यास”- अपनी होस्ट मशीन पर AI कोडिंग टूल स्थापित न करें। इसके बजाय इस कंटेनर का उपयोग करें।
docker-compose.ymlमें बाइंड माउंट न जोड़ें। नामित-वॉल्यूम कॉन्फ़िगरेशन जानबूझकर है।- कंटेनर के अंदर उपयोग की जाने वाली SSH कुंजियों को समय-समय पर रोटेट करें।
- साझा करने से पहले
.envकी समीक्षा करें। इसमें API कुंजियाँ होती हैं और SSH निजी कुंजियाँ हो सकती हैं। - सुरक्षा पैच प्राप्त करने के लिए समय-समय पर अपडेट करें:
docker compose pull && docker compose up -dpodman-compose pull && podman-compose up -d