Agent सुरक्षामध्यमपाठ 206 मिनट का पाठ

Guardrails, और वे लीक क्यों होते हैं

फ़िल्टर, क्लासिफ़ायर और सेफ़्टी प्रॉम्प्ट्स रखना फ़ायदेमंद है। बस इस बात को लेकर ईमानदार रहें कि वे असल में क्या हैं: स्पीड ब्रेकर, न कि दीवारें।

पाठ वीडियो में

60 सेकंड में

Guardrails, और वे लीक क्यों होते हैं

फ़िल्टर, क्लासिफ़ायर और सेफ़्टी प्रॉम्प्ट्स रखना फ़ायदेमंद है। बस इस बात को लेकर ईमानदार रहें कि वे असल में क्या हैं: स्पीड ब्रेकर, न कि दीवारें।

1/6
आसान शब्दों में
दरवाज़े पर लगा मेटल डिटेक्टर ज़्यादातर चाकुओं को पकड़ लेता है। यह प्लास्टिक से बने चाकू को नहीं पकड़ पाता। काम का तो है — लेकिन इसे लगाने की वजह से आप तालों को हटा नहीं देंगे।
एक guardrail वह कोई भी चीज़ है जो इनपुट या आउटपुट की जाँच करती है और ख़राब चीज़ों को रोकती है। ये तीन जगहों पर काम करते हैं:
  1. 1

    इनपुट guardrails

    मॉडल के देखने से पहले जो कुछ भी आता है उसे स्कैन करते हैं। जाने-पहचाने अटैक फ़्रेज़, छिपे हुए कैरेक्टर, संदिग्ध फ़ॉर्मेटिंग, विषय से हटकर की गई रिक्वेस्ट्स।
  2. 2

    आउटपुट guardrails

    मॉडल द्वारा तैयार किए गए कॉन्टेंट पर किसी के भी कार्रवाई करने से पहले उसे स्कैन करते हैं। लीक हुए सीक्रेट्स, अस्वीकृत कॉन्टेंट, किसी अजीब जगह ले जाने वाले URLs।
  3. 3

    एक्शन guardrails

    टूल कॉल के चलने से पहले प्रस्तावित कार्रवाई की जाँच करते हैं। अमाउंट लिमिट, प्राप्तकर्ताओं की allow-lists, वर्जित ऑपरेशन्स।
यह करें
ध्यान दें कि इनमें से कौन सा अलग है। इनपुट और आउटपुट guardrails भाषा पर पैटर्न-मैचिंग करते हैं, जो स्वाभाविक रूप से अस्पष्ट होती है। एक्शन guardrails एक सीधी वैल्यू की जाँच करने वाला सादा कोड होते हैं — और वे पूरी तरह से अटल रहते हैं। अपनी ज़्यादातर मेहनत वहीं लगाएँ।

भाषा वाले guardrails लीक क्यों होते हैं

ख़राब भाषा को पहचानकर काम करने वाले किसी भी फ़िल्टर को उसी बात को अलग तरीक़े से लिखकर मात दी जा सकती है। किसी बात को कहने के इतने तरीक़े हैं जितने कोई लिस्ट संभाल ही नहीं सकती:
तरकीबउदाहरणफ़िल्टर इसे क्यों पकड़ नहीं पाता
कोई अन्य भाषाहंगेरियन में निर्देशफ़िल्टर को अंग्रेज़ी पर ट्यून किया गया था
एन्कोडिंगBase64, ROT13, hexफ़िल्टर को शोर दिखता है; मॉडल इसे डिकोड कर लेता है
टुकड़े करना (Splitting)टेबल सेल्स में फैला हुआ निर्देशकोई भी अकेला टुकड़ा पैटर्न से मैच नहीं करता
रोलप्ले"इस कहानी में, असिस्टेंट समझाता है..."सीधे शब्द निर्दोष लगते हैं
इमेज के अंदरतस्वीर के रूप में दिखाया गया टेक्स्टटेक्स्ट फ़िल्टर तस्वीरें नहीं पढ़ते
धीमी तैयारी (Slow build-up)दस हानिरहित बातचीत के मोड़, फिर असली माँगहर बातचीत अपने आप में पास हो जाती है
सावधान रहें
इस सब के पीछे एक बुनियादी समस्या है: फ़िल्टर शब्दों से इरादे (intent) का अंदाज़ा लगाने की कोशिश कर रहा है, और हमलावर को ऐसे शब्द ढूँढने के असीमित मौक़े मिलते हैं जिनका आपके फ़िल्टर ने अंदाज़ा नहीं लगाया था। यह ऐसी लड़ाई नहीं है जिसे आप और अधिक पैटर्न जोड़कर जीत सकें।

तो फिर इनका इस्तेमाल क्यों करें?

  • ये लगभग बिना किसी ख़र्च के 90% आलसी कोशिशों को रोक देते हैं, जिससे ग़ैर-ज़रूरी शोर काफ़ी कम हो जाता है।
  • ये एक सिग्नल बनाते हैं: ब्लॉक की गई कोशिश एक लॉग लाइन होती है जो आपको बताती है कि कोई टटोलने की कोशिश कर रहा है।
  • ये ग़ैर-सुरक्षा नीतियों को अच्छी तरह लागू करते हैं — जैसे विषय पर टिके रहना, टोन, अनुपालन (कम्प्लायंस) भाषा — जहाँ कोई पक्का विरोधी ख़तरा नहीं होता।
  • ये आपको तब तक समय देते हैं जब तक आप ऐसे नियंत्रण नहीं बना लेते जो असल में टिकते हैं।

स्टैक को सही क्रम में बनाएँ

5 · Safety instructions in the promptweakest — a polite request4 · Input and output filterscatches the lazy attacks3 · Human approval on irreversible actionscatches the strange ones2 · Sandbox and network egress limitscontains the damage1 · Do not give it the capabilitycannot be argued withstrongweak
ज़्यादातर टीमें इसे उल्टा बनाती हैं — वे लेयर 5 से शुरू करती हैं क्योंकि यह टेक्स्ट की सिर्फ़ एक लाइन है, और लेयर 1 तक कभी पहुँच ही नहीं पातीं। नीचे की चौड़ी परतें ही असली वज़न संभालती हैं।
ख़तरा
एक अच्छे guardrail का ख़तरनाक नतीजा होता है झूठा भरोसा (false confidence)। जो टीम एक फ़िल्टर लगाती है और फिर एजेंट को प्रोडक्शन डेटाबेस का राइट एक्सेस दे देती है, उसने खुद को सुरक्षित नहीं, बल्कि कम सुरक्षित बना लिया है, क्योंकि उन्होंने चिंता करना बंद कर दिया।

और देखें और पढ़ें

लैब

एक guardrail जिसे आप पाँच तरीक़ों से मात दे सकते हैं, और एक जिसे आप नहीं दे सकते।

~20 min

समस्या

एक ऐसा फ़िल्टर बनाएँ जो किसी ख़ास व्यवहार को रोकता हो ("सिस्टम प्रॉम्प्ट कभी ज़ाहिर न करें")। इसे पाँच तरीक़ों से मात दें: कोई अन्य भाषा, एन्कोडिंग, कई मोड़ों में बाँटना, रोल-प्ले फ़्रेमिंग, और इमेज में टेक्स्ट। फिर इसे एक कोड-लेवल एक्शन guardrail से बदलें और उसे मात देने की कोशिश करें।
शुरुआती कोडpython
BLOCKLIST = ["ignore previous", "system prompt", "reveal your instructions"]

def input_guard(text: str) -> bool:
    low = text.lower()
    return not any(b in low for b in BLOCKLIST)

# Now the other kind:
def action_guard(tool: str, args: dict) -> str | None:
    if tool == "refund" and args["amount"] > 5000:
        return "refunds over 5000 require a human"
    return None
Google Colab खोलें ↗इस कोड के लिए आपके अपने सेटअप की ज़रूरत है (एक मॉडल, एक GPU या अतिरिक्त पैकेज)। इसे Google Colab में चलाएं: File → Upload notebook।

आपका काम तब पूरा होगा जब

कठिन सवाल

उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।

Q1एक्शन गार्ड किस तरह से ऐसा अभेद्य है जैसा इनपुट फ़िल्टर नहीं है? इसके सटीक तरीक़े को स्पष्ट करें।दिखाएं
इनपुट फ़िल्टर को भाषा के असीमित दायरे से इरादे का अंदाज़ा लगाना होता है, और हमलावर उस दायरे को आज़ादी से खंगालता है। एक्शन गार्ड रन होने के ठीक समय पर एक सीमित, टाइप्ड वैल्यू का मूल्यांकन करता है: amount > 5000 या तो सही होता है या ग़लत, और कोई भी शब्द इस संख्या को बदल नहीं सकता। अर्थ की पहरेदारी करना एक हारी हुई खोज समस्या है; किसी वैल्यू की पहरेदारी करना केवल अंकगणित है।
Q2कोई ऐसा मामला बताएँ जहाँ भाषा वाला guardrail सही प्राथमिक नियंत्रण हो।दिखाएं
जहाँ ख़तरा किसी विरोधी की तरफ़ से न हो। सपोर्ट बॉट को विषय पर बनाए रखना, टोन लागू करना, किसी भले यूज़र द्वारा अनजाने में की गई ग़लती को पकड़ना, सामान्य ट्रैफ़िक के लिए कॉन्टेंट पॉलिसी का पालन करना — ये क्वालिटी और अनुपालन की समस्याएँ हैं, और एक क्लासिफ़ायर इन्हें अच्छी तरह और सस्ते में संभाल लेता है। ग़लती यह है कि उसी नियंत्रण को किसी ऐसे व्यक्ति के ख़िलाफ़ तैनात किया जाए जो जानबूझकर कोशिश कर रहा है, और फिर उस नतीजे को सुरक्षा मान लिया जाए।

जारी रखने के लिए कृपया साइन इन करें।

अक्सर पूछे जाने वाले सवाल

क्या कमर्शियल guardrail प्रोडक्ट्स फ़ायदेमंद हैं?

वे आपको पैटर्न लिस्ट बनाने और मेंटेन करने से बचाते हैं, और उपयोगी टेलीमेट्री के साथ आते हैं। वे बुनियादी बातों को नहीं बदलते। अगर समय बचता है तो एक ख़रीद लें; लेकिन इसे ख़रीदने को लेयर 1 से 3 का विकल्प न बनने दें।

क्या कोई मॉडल अपने ही आउटपुट की जाँच कर सकता है?

यह साफ़ तौर पर दिखने वाली चूकों को पकड़ लेता है और इसे जोड़ना सस्ता है। लेकिन यह तब फ़ेल हो जाता है जब वही इंजेक्शन जो पहले राउंड को भटकाता है, इस जाँच को भी भटका देता है, और असल में आपको उसी मामले के लिए इसकी ज़रूरत थी। किसी भी न बदले जा सकने वाले एक्शन पर सेल्फ़-चेक को अपना इकलौता गेट कभी न बनाएँ।

बाहर जाते समय मुझे असल में क्या ब्लॉक करना चाहिए?

क्रेडेंशियल जैसी दिखने वाली कोई भी चीज़, आपकी allow-list में न मौजूद कोई भी URL, और ऐसा कोई भी कॉन्टेंट जो रेंडर होने वाली जगह पर अपने आप रन या लोड हो जाए। ये तीन चीज़ें असली लीक्स के बड़े हिस्से को संभाल लेती हैं।

मैं कैसे नापूँ कि मेरे guardrails काम कर रहे हैं या नहीं?

उनकी रेड-टीमिंग करें — मॉड्यूल 23। हमलों का एक तय सेट चलाएँ, पास होने की दर रिकॉर्ड करें, और हर बदलाव पर इसे फिर से चलाएँ। जिस guardrail की बाईपास दर नापी न गई हो, वह ऐसा guardrail है जिसकी बाईपास दर अज्ञात है।

पाठ का टेस्ट

5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।

टेस्ट देने और अपनी प्रोग्रेस सेव करने के लिए साइन इन करें