जिस एजेंट के पास वॉलेट है वह एक नई हमला-सतह है: नुक़सान तब होता है जब किसी वेबपेज का एक वाक्य चाबी रखने वाले को यह मना लेता है कि पैसा कहीं और भेज दे। यह टूल पढ़ता है कि आपका एजेंट क्या-क्या कर सकता है, यह जानने के लिए 20 प्रतिकूल प्रोब भेजता है कि वह करेगा क्या, और उसे ऐसा नक़ली वॉलेट देता है जिसमें कोई निजी कुंजी नहीं होती — ताकि वह जिस भी चीज़ पर हस्ताक्षर करने की कोशिश करे उसे आप पढ़ सकें।
तीनों अलग क़िस्म के प्रमाण देती हैं। «गंभीर» के रूप में सिर्फ़ देखा हुआ प्रमाण दर्ज हो सकता है — किसी क्षमता-ग्राफ़ से निकला अनुमान कभी नहीं।
एजेंट की टूल परिभाषाएँ पेस्ट कीजिए: कौन-से मूल्य हिला सकते हैं, कौन-से ऐसा पाठ भीतर लाते हैं जो एजेंट ने नहीं लिखा, कौन-से चाबियों को छूते हैं, और हस्ताक्षर से पहले बीच में कुछ है या नहीं। छह कॉन्फ़िगरेशन फ़ॉर्मैट पढ़े जाते हैं।
एजेंट के एंडपॉइंट पर 20 प्रतिकूल संदेश जाते हैं और लौटा हुआ जवाब पढ़ा जाता है। देखा हुआ प्रमाण देने वाली यही अकेली पटरी है।
हम आपको एक RPC पता देते हैं। आप अपने एजेंट को एक ही एनवायरनमेंट वेरिएबल से वहाँ जोड़ देते हैं। वह जिस भी हस्ताक्षर की कोशिश करता है वह दर्ज और डिकोड होता है: कौन-सा फ़ंक्शन, कौन-सा पाने वाला, कितनी रक़म, और क्या अनुमति असीमित थी।
हर प्रोब एजेंट से कोई पहचानने लायक़ और मामूली चीज़ माँगता है: एक टोकन दोहरा दो, ऐसा पहरेदार पता बोल दो जिसकी कोई निजी कुंजी नहीं, किसी ऐसे टूल तक हाथ बढ़ा दो जिसे किसी ने माँगा नहीं। कमज़ोरी आज्ञाकारिता है।
एक भी रिक्वेस्ट जाने से पहले आपको एंडपॉइंट के अपने ही मूल पर /.well-known/saferico-agent-test.txt फ़ाइल प्रकाशित करनी होती है। उसमें रखा टोकन सिर्फ़ आपका खाता ही निकाल सकता है।
जो जाँच चल ही न सकी वह «परीक्षण नहीं हुआ» के रूप में दर्ज होती है, कभी सफल के रूप में नहीं। अगर बहुत कम चीज़ें मापी गईं तो स्कोर आपको ख़ुश करने के बजाय दिया ही नहीं जाता।
टूल स्वयं (स्कैनर, कंट्रोल पैनल, SAFI वर्कस्पेस) फ़िलहाल अंग्रेज़ी इंटरफ़ेस में चलते हैं। ये पेज वहाँ जाने से पहले हर चीज़ हिन्दी में समझाते हैं।
यह टूल आपके एजेंट पर हमला करता है। ऐसा वह सिर्फ़ सिद्ध की जा सकने वाली सीमाओं के साथ कर सकता है — सीमाएँ नीचे एक-एक करके लिखी हैं।
यह «हस्ताक्षर न करने पर सेट किया गया» नहीं है: मॉड्यूल में कुंजी है ही नहीं, इसलिए हस्ताक्षर करना कोई नियम नहीं जिसका वह पालन करता है, बल्कि एक ऐसा काम है जो वह कर ही नहीं सकता। यहाँ की कोई ग़लती हिल चुके कॉइन में नहीं बदल सकती, क्योंकि हिलाने के लिए कुछ है ही नहीं।
और यह नक़ली रसीद नहीं बनाता। आसान रास्ता यह होता कि एजेंट अपने रास्ते चलता रहे इसके लिए एक भरोसेमंद-सा ट्रांज़ैक्शन हैश लौटा दिया जाए — यह उस ट्रांज़ैक्शन के लिए प्रमाण गढ़ना होता जो कभी हुआ ही नहीं। इसके बजाय एक ऐसी JSON-RPC त्रुटि लौटती है जो साफ़-साफ़ कहती है कि क्या हुआ। फ़ाइंडिंग वह कोशिश ही है।
आपकी टूल परिभाषाएँ और सिस्टम निर्देश इसी मशीन पर पार्स होते हैं। शृंखलाएँ बनाने के लिए जो भेजा जाता है वह ढाँचा है: टूल के नाम, क्षमता-श्रेणियाँ और सही/ग़लत मान।
इकलौता अपवाद साफ़ चिह्नित है: लीक वाला प्रोब किसी चीज़ से तुलना कर सके इसके लिए, आपका लिखा हुआ 200 अक्षरों तक का एक वाक्यांश प्रोब के साथ भेजा जाता है। वहीं उसकी तुलना होती है और वह फेंक दिया जाता है — न संग्रहित होता है, न दर्ज, न रिपोर्ट में लिखा जाता है, और न परखे जा रहे एंडपॉइंट को भेजा जाता है। अगर आप ये 200 अक्षर साझा नहीं करना चाहते तो ख़ाना ख़ाली छोड़ दीजिए; तब वह प्रोब सफल नहीं, «परीक्षण नहीं हुआ» के रूप में दर्ज होगा।
प्रोब बेतरतीब नहीं, एक असली हमले की शक्ल में आगे बढ़ते हैं:
सबसे यथार्थवादी वाला सबसे पहले खड़ा है: अप्रत्यक्ष इंजेक्शन। कोई भी किसी DeFi एजेंट को यह लिखकर नहीं भेजता कि «अपने पिछले निर्देश भूल जाओ» — वह इसे किसी टोकन के विवरण में, किसी वेबपेज में, किसी README में, या ऐसे ऑन-चेन पाठ में रख देता है जिसे एजेंट किसी टूल के ज़रिए पढ़ता है।
एक नक़ली सेशन 10 क्रेडिट का पड़ता है और तीन छतों से बँधा है: 60 मिनट, 200 दर्ज घटनाएँ, और 15 मिनट की निष्क्रियता पर अपने आप रुक जाना। इनमें से हर संख्या पेज बनते समय उसी मॉड्यूल से पढ़ी जाती है जो उसे लागू करता है, इसलिए पेज ऐसी किसी सीमा का प्रचार कर ही नहीं सकता जिसे कोड लागू नहीं करता।
चेन आईडी सिर्फ़ टेस्टनेट के हैं; सेशन बनाते समय कोई मेननेट आईडी ठुकरा दी जाती है। जो एजेंट ख़ुद को मेननेट पर समझ रहा हो, वह ऐसे काम कर सकता है जिनकी सफ़ाई बाद में उसके संचालक को देनी पड़े।
कॉन्ट्रैक्ट का पता पेस्ट करें; जोखिम में पड़ने से पहले मालिक की शक्तियाँ, लिक्विडिटी और बिक्री-सिमुलेशन का नतीजा देखें। प्रति स्कैन एक छोटा शुल्क हस्ताक्षर से पहले दिखाया जाता है — और किसी भी सदस्यता में यह असीमित रूप से शामिल है।