Sandboxing: बिना खिड़कियों वाला कमरा
आप एजेंट को बेवकूफ़ बनने से नहीं रोक सकते। लेकिन जब ऐसा हो, तो वह किस कमरे में खड़ा है, यह आप तय कर सकते हैं।
60 सेकंड में
Sandboxing: बिना खिड़कियों वाला कमरा
आप एजेंट को बेवकूफ़ बनने से नहीं रोक सकते। लेकिन जब ऐसा हो, तो वह किस कमरे में खड़ा है, यह आप तय कर सकते हैं।
चार दीवारें
- 1
Filesystem
इसकी अपनी डायरेक्टरी या कंटेनर। कोई होस्ट माउंट नहीं।~/.ssh,~/.aws, ब्राउज़र प्रोफ़ाइल या क्रेडेंशियल स्टोर तक कोई पहुँच नहीं। सिर्फ़ उतनी ही चीज़ों की कॉपी जितनी इसे ज़रूरत है, उससे ज़्यादा कुछ नहीं। - 2
Network
डिफ़ॉल्ट रूप से सब ब्लॉक रखें (Deny by default), केवल ज़रूरी अपवादों को अनुमति दें। इंटरनल रेंज और क्लाउड मेटाडेटा एंडपॉइंट्स को ब्लॉक करें। DNS को न भूलें — कनेक्शन रिजेक्ट होने पर भी DNS लुकअप से डेटा लीक हो सकता है। - 3
Credentials
वातावरण में कोई भी खुला सीक्रेट न छोड़ें। हर रन के लिए कम समय तक चलने वाले और सीमित काम वाले टोकन दें, जिन्हें एक ही झटके में रद्द किया जा सके। - 4
Resources
CPU, मेमोरी, समय की सीमा, खर्च। बेकाबू एजेंट कुछ ही सेकंड में रुक जाना चाहिए, न कि महीने के भारी-भरकम बिल पर जाकर।
अलगाव (Isolation) के स्तर
| स्तर | यह क्या है | किसके ख़िलाफ़ कारगर है | कहाँ कमज़ोर है |
|---|---|---|---|
| Process | कम अधिकारों वाले यूज़र के रूप में चलाएं | ग़लती से होने वाले फ़ाइल एक्सेस | जानबूझकर बाहर निकलने की कोशिश |
| Container | Docker या इसके जैसा कुछ | ज़्यादातर आम हमले | कर्नल-लेवल के एस्केप, शेयर किया गया नेटवर्क |
| VM | एक पूरी वर्चुअल मशीन | लगभग हर तकनीकी हमला | लागत और शुरू होने में लगने वाला समय |
| अलग मशीन | शारीरिक रूप से अलग किया गया होस्ट | आपके नेटवर्क पर होने वाला असर | जटिलता |
| Ephemeral (अल्पकालिक) | हर रन के बाद मिटा दिया जाता है | किसी भी तरह का डेटा बचे रहना | किसी भी चीज़ के ख़िलाफ़ नहीं — यह इस लिस्ट की सबसे अच्छी आदत है |
एक sandbox क्या नहीं करता
- यह एजेंट को बेवकूफ़ बनने से नहीं रोकता। यह सिर्फ़ इस बात को सीमित करता है कि बेवकूफ़ बना एजेंट कहाँ तक पहुँच सकता है।
- यह उस डेटा की रक्षा नहीं करता जिसे आपने जानबूझकर इसके अंदर रखा है। अगर आपने कस्टमर डेटाबेस को ही माउंट कर दिया है, तो सैंडबॉक्स बस एक खाली कमरे की रखवाली कर रहा है।
- यह आपके दिए गए टूल्स को कवर नहीं करता। पूरी तरह से सैंडबॉक्स किया गया एजेंट भी, अगर उसके पास चालू
send_emailटूल है, तो वह आपके सीक्रेट्स पूरी दुनिया को ईमेल कर सकता है।
और देखें और पढ़ें
लैब
एक ऐसा सैंडबॉक्स जिससे आपने खुद बाहर निकलने की कोशिश की हो।
समस्या
docker run --rm \
--network none --memory 256m --cpus 0.5 --pids-limit 64 \
--read-only --tmpfs /tmp:size=16m \
--cap-drop ALL --security-opt no-new-privileges \
--user 65534:65534 \
-v "$PWD/work:/work:ro" -w /work \
python:3.12-slim timeout 10 python main.pyआपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1आपका कंटेनर पूरी तरह सुरक्षित है। आपके एजेंट के पास काम करने वाला send_email टूल है। सैंडबॉक्स से आपको क्या फ़ायदा हुआ?दिखाएं
Q2कंटेनर कब नाकाफ़ी होता है, और इसका ठोस निर्णय नियम क्या है?दिखाएं
अक्सर पूछे जाने वाले सवाल
क्या एक Docker कंटेनर काफ़ी है?
ज़्यादातर बिज़नेस ऐप्लिकेशन्स के लिए, हाँ, बशर्ते इसे ठीक से कॉन्फ़िगर किया गया हो: कोई प्रिविलेज्ड मोड नहीं, कोई होस्ट माउंट नहीं, सीमित नेटवर्क, जहाँ मुमकिन हो वहाँ रीड-ओनली रूट फ़ाइलसिस्टम, और नॉन-रूट यूज़र। पूरी तरह से गैर-भरोसेमंद कोड चलाने के लिए, VM या खास तौर पर इसी काम के लिए बने आइसोलेशन रनटाइम का इस्तेमाल करें।
क्या कोडिंग एजेंट्स को सैंडबॉक्स में चलाना चाहिए?
बिल्कुल, और इसे लागू करने की यह सबसे महत्वपूर्ण जगह है। एक कोडिंग एजेंट हमलावर द्वारा लिखे जा सकने वाले टेक्स्ट (इशूज़, PRs, डिपेंडेंसी डॉक्स) को पढ़ता है और कमांड्स चलाता है। इसे सैंडबॉक्स में रखें, और नेटवर्क एक्सेस व क्रेडेंशियल के इस्तेमाल के लिए साफ़ तौर पर मंज़ूरी लेना ज़रूरी बनाएं।
मैं एजेंट को सुरक्षित रूप से असली डेटा कैसे दूँ?
इसे सीमित दायरे वाली कॉपी दें, या इससे भी बेहतर, एक ऐसा टूल दें जो डेटा सौंपे बिना उसके बारे में सवालों के जवाब दे सके। "पिछले हफ़्ते कितने ऑर्डर आए?" का जवाब सिर्फ़ एक नंबर होता है। इसे पूरे टेबल की कभी ज़रूरत नहीं होती।
क्या सैंडबॉक्सिंग चीज़ों को धीमा कर देती है?
कंटेनर शुरू होने में एक या दो सेकंड का समय लगता है, और आप पहले से तैयार (warm) पूल रख सकते हैं। इसकी तुलना किसी एक सुरक्षा घटना के नुकसान से करके देखें। यह पूरी गाइड में सबसे सस्ता बीमा है।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।