
AI के आधुनिक युग के लिए सुरक्षा: बुरे AI एजेंटों और दुर्भावनापूर्ण npm पैकेजों से बचाव करें
आधुनिक AI युग के लिए सुरक्षा।
कोई भी सुरक्षा परत परिपूर्ण नहीं है। airgap अभी भी प्रायोगिक है। योगदान स्वागतयोग्य है!
airgap एक लक्षित प्रोग्राम (जैसे कि AI कोडिंग एजेंट) को उसके अपने माउंट नेमस्पेस के अंदर लॉन्च करता है और रहस्यों को पारदर्शी रूप से सेंसर किए गए संस्करणों से बदल देता है। airgap के अंतर्गत चल रहा प्रोग्राम अभी भी संरक्षित फ़ाइलों को पढ़ और संशोधित कर सकता है, लेकिन वह वास्तविक रहस्य कभी नहीं देखता। अब तक airgap निम्न की सुरक्षा करता है:
.env और .env.* (जैसे .env.local, .env.production) — फ़ाइल नाम से मिलान किया जाता है। मानों को <redacted value> में सेंसर कर दिया जाता है जबकि कुंजियाँ दिखाई देती रहती हैं; संपादन, जोड़ और हटाना वास्तविक फ़ाइल में वापस सहेजे जाते हैं।BEGIN/END मार्कर बनाए रखे जाते हैं।.npmrc — फ़ाइल नाम से मिलान। Auth-token और पासवर्ड मान (_authToken, _auth, _password, प्रति-रजिस्ट्री //registry/:_authToken रूप सहित) को <redacted value> में सेंसर कर दिया जाता है, जबकि रजिस्ट्रियाँ, स्कोप, email और टिप्पणियाँ दिखाई देती रहती हैं; संपादन वास्तविक फ़ाइल में वापस सहेजे जाते हैं।अधिक रहस्य प्रकार जोड़े जाएँगे।
ये कार्यशील निर्देशिका या आपकी होम निर्देशिका ($HOME) के अंतर्गत कहीं भी सेंसर किए जाते हैं — इसलिए किसी प्रोजेक्ट का .env और ~/.ssh की कुंजियाँ, दोनों कवर हो जाती हैं। मिलान गतिशील है: लॉन्च के बाद बनाई गई फ़ाइलें भी पकड़ में आ जाती हैं।
airgap उपयोग करने और न करने पर .env की सामग्री की तुलना करें:
$ cat .env
API_KEY=sk-live-9f8c2a1b4e7d
DB_PASSWORD=hunter2
$ airgap cat .env
API_KEY=<redacted value>
DB_PASSWORD=<redacted value>
एक AI एजेंट के साथ:
$ airgap claude
show me ./test/fixtures/.env contents
Read 1 file
Here's the file:
DATABASE_URL="<redacted value>"
API_KEY="<redacted value>"
AWS_SECRET_ACCESS_KEY="<redacted value>"
DEBUG="<redacted value>"
...
एक अतिरिक्त परत दुर्भावनापूर्ण पैकेजों से बचाव करती है: airgap आपकी अनुमति माँगता है जब अप्रत्याशित फ़ाइलों तक पहुँचा जा रहा हो — उदाहरण के लिए किसी दुर्भावनापूर्ण npm install स्क्रिप्ट द्वारा।
जब गेट सक्रिय होता है, airgap आपसे हर नई फ़ाइल की पहली रीड को अनुमति देने या अस्वीकार करने के लिए पूछता है। किसी फ़ाइल को स्वीकृत करने पर केवल उसी फ़ाइल को अनुमति मिलती है; निर्णय रन के दौरान बने रहते हैं। प्रत्येक पैकेज मैनेजर के साथ पूर्व-स्वीकृत फ़ाइलों की एक सूची आती है।
उदाहरण के लिए, एक दुर्भावनापूर्ण पैकेज स्थापित करना जिसकी postinstall स्क्रिप्ट आपकी SSH कुंजियों और .env को पढ़ने का प्रयास करती है:
$ airgap npm install
...
airgap: npm wants to read the file /home/you/.ssh/id_rsa — allow? [y/N] n
airgap: npm wants to read the file /home/you/.env — allow? [y/N] n
एक्सेस अस्वीकार करने के लिए n उत्तर दें।
airgap माउंट नेमस्पेस और FUSE ओवरले पर निर्भर करता है, जो Linux विशेषताएँ हैं।cargo install airgap
airgap <program> [args...]
airgap <program> को [args...] के साथ चलाता है, argv, पर्यावरण और कार्यशील निर्देशिका को अपरिवर्तित पारित करता है। जब <program> बाहर निकलता है, तो airgap उसी कोड के साथ बाहर निकलता है।
अपने AI एजेंट को हमेशा airgap के अंतर्गत चलाने के लिए, इसे अपने शेल कॉन्फ़िग (~/.bashrc, ~/.zshrc, ...) में alias करें:
alias claude="airgap claude"
alias opencode="airgap opencode"
अब claude (या opencode) पारदर्शी रूप से airgap के अंदर चलता है।
अपने पैकेज मैनेजर को दुर्भावनापूर्ण इंस्टॉल स्क्रिप्ट से बचाने के लिए airgap के अंतर्गत चलाएँ। या इसे अपने शेल कॉन्फ़िग में alias करें:
alias npm="airgap npm"
यदि आप कोई सुरक्षा चिंता रिपोर्ट करना चाहते हैं या कोई प्रश्न पूछना चाहते हैं, तो ईमेल करें [email protected]।