डेटा असल में कैसे बाहर निकलता है
Exfiltration (डेटा चोरी) शायद ही कभी फ़ाइल अपलोड जैसी दिखती है। यह किसी तस्वीर, लिंक या थोड़े अजीब सर्च की तरह दिखती है। यह ट्रिक देखने के लिए हर चैनल पर क्लिक करें।
60 सेकंड में
डेटा असल में कैसे बाहर निकलता है
Exfiltration (डेटा चोरी) शायद ही कभी फ़ाइल अपलोड जैसी दिखती है। यह किसी तस्वीर, लिंक या थोड़े अजीब सर्च की तरह दिखती है। यह ट्रिक देखने के लिए हर चैनल पर क्लिक करें।
डायग्राम के किसी भी बॉक्स पर टैप करें
मॉडल हमलावर के सर्वर की ओर इशारा करने वाली एक इमेज लिखता है, जिसमें URL के अंदर ही सीक्रेट जुड़ा होता है। आपका चैट इंटरफ़ेस इमेज को अपने आप रेंडर कर देता है। बिना किसी क्लिक या चेतावनी के इमेज लोड हो जाती है, और सीक्रेट वेब सर्वर के लॉग में पहुंच जाता है। असल दुनिया में एजेंट exfiltration का यह सबसे आम तरीका है और यह पूरी तरह चुपचाप होता है।
डेटा लीक के लिए बहुत कम बैंडविड्थ की ज़रूरत होती है
बचाव के तरीके, सबसे मज़बूत सबसे पहले
- 1
आउटबाउंड allow-list
एजेंट के एनवायरनमेंट से नेटवर्क बाहर जाने (egress) को सिर्फ आपके चुने हुए डोमेन तक सीमित किया जाता है। कोई अनजान होस्ट लोड ही नहीं होता। यह ऊपर बताए गए हर चैनल को एक साथ बंद कर देता है। - 2
बाहरी कंटेंट को अपने आप रेंडर न करें
आउटपुट में इमेज के अपने आप लोड होने और बाहरी रिक्वेस्ट को ब्लॉक करें। बाहर संपर्क करने वाली किसी भी चीज़ को प्रॉक्सी करें या हटा दें। - 3
सीक्रेट्स को संदर्भ (context) से पूरी तरह बाहर रखें
एजेंट किसी टूल से "API key का उपयोग करने" को कहता है, और चाबी टूल के पास ही रहती है। अगर चाबी कभी context window में आती ही नहीं, तो इसे किसी URL में नहीं लिखा जा सकता। - 4
तैयार आउटपुट से URL हटाएं
केवल अपनी लिस्ट के डोमेन के लिंक की अनुमति दें। रेंडर करने से पहले बाकी सभी को बदल दें या हटा दें। - 5
टूल कॉल्स में अजीब URL पर नज़र रखें
लंबी क्वेरी स्ट्रिंग्स, base64 जैसे दिखने वाले ब्लॉक्स और अनजान होस्ट्स पर अलर्ट लगाएं। यह रोकथाम नहीं, पहचान है — लेकिन यह आपको बताता है कि आप पर कब हमला हुआ।
और देखें और पढ़ें
लैब
चार exfiltration चैनल दिखाए गए, फिर नेटवर्क लेयर पर उन्हें बंद कर दिया गया।
समस्या
import http.server, socketserver
# Minimal listener — watch what arrives in the query string.
class H(http.server.BaseHTTPRequestHandler):
def do_GET(self):
print("EXFIL:", self.path)
self.send_response(200); self.end_headers()
socketserver.TCPServer(("", 8899), H).serve_forever()आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1आपने सभी आउटबाउंड HTTP को ब्लॉक कर दिया। समझाएं कि DNS अभी भी कैसे लीक करता है, और आपको क्या कॉन्फ़िगर करना चाहिए।दिखाएं
<secret>.attacker.example का लुकअप हमलावर के आधिकारिक नेम सर्वर तक पहुंच जाता है, भले ही बाद का TCP कनेक्शन रोक दिया जाए — क्वेरी खुद ही डेटा को ले जाती है। आपको सभी रिज़ॉल्यूशन को अपने नियंत्रण वाले रिज़ॉल्वर से गुज़ारना होगा, केवल उन नामों को अनुमति (allow-list) देनी होगी जिनका वह जवाब देगा, और बाकी सब को ब्लॉक करना होगा। एक ऐसी egress पॉलिसी जो HTTP को फ़िल्टर करती है लेकिन DNS को खुला छोड़ देती है, उसमें एक होस्टनेम के बराबर छेद बना रहता है।Q2एक एजेंट प्रति रिक्वेस्ट एक बिट लीक करता है — पेज या तो लोड होता है या नहीं। 40-अक्षर की API key को बाहर निकालने के लिए कितनी रिक्वेस्ट की ज़रूरत होगी, और इससे आपको क्या सीख मिलती है?दिखाएं
अक्सर पूछे जाने वाले सवाल
क्या डेटा DNS के ज़रिए लीक हो सकता है?
हाँ — SECRET.attacker.example का लुकअप सीक्रेट को हमलावर के DNS सर्वर तक पहुंचा देता है, भले ही उसके बाद का कनेक्शन ब्लॉक कर दिया जाए। अगर आप बाहर जाने वाले ट्रैफ़िक को रोक रहे हैं, तो DNS रिज़ॉल्यूशन को भी रोकें, वरना दीवार में एक छेद खुला रह जाएगा।
क्या मार्कडाउन इमेज वाकई अपने आप लोड हो जाती हैं?
कई चैट इंटरफ़ेस में, हाँ, पहले ऐसा होता रहा है। ठीक इसी बग के सामने आने के बाद कई प्रोडक्ट्स ने इसे ठीक किया है। यदि आप कोई ऐसा चैट UI बना रहे हैं जो मॉडल आउटपुट को रेंडर करता है, तो मान कर चलें कि बाहरी इमेज लोडिंग डेटा चोरी का एक ज़रिया है, जब तक कि आपने इसे खास तौर पर बंद न कर दिया हो।
क्या यह सिर्फ सीक्रेट्स के बारे में है?
नहीं। व्यक्तिगत डेटा, निजी बातचीत, आंतरिक योजनाएं और ग्राहकों के रिकॉर्ड — ये सभी मायने रखते हैं, और अधिकांश जगहों पर इन्हें लीक करने पर कानूनी कार्रवाई हो सकती है। किसी लीक को आपका हफ़्ता ख़राब करने के लिए पासवर्ड होना ज़रूरी नहीं है।
मैं इसके लिए अपने सिस्टम की जांच कैसे करूँ?
एक नियंत्रित अभ्यास करें: context में एक नकली सीक्रेट रखें, फिर एक टेस्ट पेज से एजेंट को ऊपर दिए गए प्रत्येक चैनल के ज़रिए इसे लीक करने का निर्देश दें। अपने बाहर जाने वाले लॉग्स (egress logs) पर नज़र रखें। यदि आपका नकली सीक्रेट बाहर कहीं भी दिखाई देता है, तो आपके सिस्टम में कमी है। ऐसा केवल अपने खुद के सिस्टम पर ही करें।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।