एजेंसी की ज़्यादातर कमज़ोरियों को कम करना

OWASP के जोखिम की जानकारी

ज़्यादा एजेंसी एक ऐसी कमज़ोरी है जो तब होती है, जब किसी लार्ज लैंग्वेज मॉडल (एलएलएम) को अन्य सिस्टम के साथ इंटरैक्ट करने के लिए, ज़रूरत से ज़्यादा या बहुत ज़्यादा अनुमतियां दी जाती हैं. जब कोई एलएलएम बाहरी टूल, प्लगिन या फ़ंक्शन (इसकी "एजेंसी") को कॉल कर सकता है, तो इस कमज़ोरी की वजह से वह ऐसी कार्रवाइयां कर सकता है जो अनचाही, बिना अनुमति वाली, और संभावित रूप से नुकसान पहुंचाने वाली हों. कोई हमलावर, प्रॉम्प्ट इंजेक्शन या अन्य तरीकों का इस्तेमाल करके इस सुविधा का गलत इस्तेमाल कर सकता है. इससे वह एलएलएम को धोखा देकर, नुकसान पहुंचाने के मकसद से अपनी दी गई एजेंसी का इस्तेमाल करने के लिए मजबूर कर सकता है. मुख्य समस्या यह नहीं है कि एलएलएम कार्रवाइयां कर सकता है, बल्कि यह है कि उन कार्रवाइयों का दायरा बहुत बड़ा है और उन्हें ठीक से कंट्रोल नहीं किया जाता है.

Android डेवलपर को इस बारे में क्यों सोचना चाहिए

अपने Android ऐप्लिकेशन में एलएलएम को ज़्यादा अधिकार देने से, सुरक्षा से जुड़ी गंभीर समस्याएं हो सकती हैं:

  • सिस्टम को बिना अनुमति के ऐक्सेस करना: हमलावर, एलएलएम को यह निर्देश दे सकता है कि वह Android डिवाइस पर मौजूद फ़ाइलों (जैसे, उपयोगकर्ता के दस्तावेज़, ऐप्लिकेशन का डेटा) या कनेक्ट किए गए नेटवर्क संसाधनों को ऐक्सेस करे, उनमें बदलाव करे या उन्हें मिटाए. ऐसा तब किया जा सकता है, जब मॉडल के पास ऐसा करने के लिए ज़रूरी Android अनुमतियां हों.
  • डेटा एक्सफ़िल्ट्रेशन: एलएलएम को स्थानीय ऐप्लिकेशन डेटाबेस (जैसे, Room), SharedPreferences या इंटरनल एपीआई से संवेदनशील डेटा पढ़ने के लिए गुमराह किया जा सकता है. इसके बाद, उस जानकारी को किसी बाहरी सोर्स पर एक्सफ़िल्ट्रेट किया जा सकता है. उदाहरण के लिए, एपीआई कॉल या ईमेल फ़ंक्शन का इस्तेमाल करके इसे भेजा जा सकता है. ऐसा भी हो सकता है कि मॉडल, ट्रेनिंग के दौरान सीखी गई संवेदनशील जानकारी या उपयोगकर्ता के प्रॉम्प्ट में दी गई संवेदनशील जानकारी को लीक कर दे.
  • अन्य फ़ंक्शन/सिस्टम से समझौता करना: अगर एलएलएम के पास अन्य फ़ंक्शन को कंट्रोल करने की सुविधा है, तो हमलावर इन फ़ंक्शन को हाइजैक कर सकता है. उदाहरण के लिए, एसएमएस भेजना, कॉल करना, इंप्लिसिट इंटेंट का इस्तेमाल करके सोशल मीडिया पर पोस्ट करना, सिस्टम सेटिंग में बदलाव करना, और ऐप्लिकेशन में खरीदारी करना. इससे स्पैम भेजा जा सकता है, गलत जानकारी फैलाई जा सकती है या बिना अनुमति के लेन-देन किए जा सकते हैं. इससे उपयोगकर्ता को सीधे तौर पर वित्तीय नुकसान हो सकता है या उसे नुकसान पहुंच सकता है.
  • सेवा से इनकार: एलएलएम को ऐप्लिकेशन में या बैकएंड सेवाओं के ख़िलाफ़, बार-बार ऐसे टास्क करने के लिए कहा जा सकता है जिनमें बहुत ज़्यादा संसाधनों की ज़रूरत होती है. जैसे, जटिल डेटाबेस क्वेरी चलाना या लूप में किसी एपीआई को कॉल करना. इससे ऐप्लिकेशन काम नहीं करता, बैटरी खत्म हो जाती है, डेटा का ज़्यादा इस्तेमाल होता है या बैकएंड सिस्टम के लिए सेवा से इनकार भी किया जा सकता है.

Android ऐप्लिकेशन डेवलपर के लिए, जोखिम कम करने के तरीके

Android ऐप्लिकेशन में एआई के ज़्यादा दख़ल को कम करने के लिए, हर टूल और फ़ंक्शन पर 'कम से कम ज़रूरी अनुमतियां' सिद्धांत लागू किया जाता है. एलएलएम इन टूल और फ़ंक्शन को ऐक्सेस या ट्रिगर कर सकता है.

एआई के टूलबॉक्स को सीमित करें (ज़्यादा जानकारी वाले फ़ंक्शन बनाम ओपन-एंडेड फ़ंक्शन):

  • कम से कम टूल उपलब्ध कराएं: एलएलएम के पास सिर्फ़ उन टूल (फ़ंक्शन, एपीआई, इंटेंट) का ऐक्सेस होना चाहिए जिनकी उसे आपके ऐप्लिकेशन में काम करने के लिए ज़रूरत है. अगर उसे वेब ब्राउज़ करने या ईमेल भेजने की सुविधा की ज़रूरत नहीं है, तो उसे ये सुविधाएं उपलब्ध न कराएं.
  • एक काम के लिए बने आसान टूल का इस्तेमाल करें: एलएलएम को ऐसा टूल देना बेहतर होता है जो सिर्फ़ एक काम कर सकता हो. जैसे, "किसी खास तरह की उपयोगकर्ता सेटिंग को पढ़ना". इसके बजाय, एलएलएम को ऐसा शक्तिशाली टूल न दें जो कुछ भी कर सकता हो. जैसे, "कोई भी शेल कमांड चलाना".

एआई की क्षमताओं को सीमित करना

  • Android की ज़्यादा बारीकी से कंट्रोल की जा सकने वाली अनुमतियां: जब एलएलएम से ट्रिगर होने वाला कोई फ़ंक्शन, Android सिस्टम के संसाधनों या अन्य ऐप्लिकेशन के साथ इंटरैक्ट करता है, तो पुष्टि करें कि आपका ऐप्लिकेशन सिर्फ़ उन Android अनुमतियों के लिए अनुरोध करता है और उन्हें अपने पास रखता है जो ज़रूरी हैं.
  • उपयोगकर्ता के हिसाब से अनुमतियां: जब एलएलएम किसी उपयोगकर्ता की ओर से कोई कार्रवाई करता है, तो उसे उपयोगकर्ता की खास अनुमतियों और कॉन्टेक्स्ट के साथ ऐसा करना चाहिए. उसे किसी बड़े, संभावित तौर पर एडमिन लेवल के ऐप्लिकेशन खाते के साथ ऐसा नहीं करना चाहिए. इससे यह पुष्टि होती है कि एलएलएम, ऐसा कोई भी काम नहीं कर सकता जिसे उपयोगकर्ता खुद नहीं कर सकता.

किसी व्यक्ति को ज़िम्मेदारी सौंपना (ज़रूरी कार्रवाइयों के लिए उपयोगकर्ता की सहमति)

  • उपयोगकर्ता की मंज़ूरी लेना ज़रूरी है: एलएलएम, कोई ज़रूरी या जोखिम भरी कार्रवाई करने का सुझाव दे सकता है या उसे करने की कोशिश कर सकता है. जैसे, डेटा मिटाना, ऐप्लिकेशन में खरीदारी करना, मैसेज भेजना, ज़रूरी सेटिंग बदलना. ऐसे में, हमेशा उपयोगकर्ता की साफ़ तौर पर मंज़ूरी लें. इसके लिए, अपने यूज़र इंटरफ़ेस (यूआई) में पुष्टि करने वाला डायलॉग बॉक्स इस्तेमाल करें. इसे ऐसे समझें कि किसी बड़े फ़ैसले को मंज़ूरी देने के लिए, मैनेजर के हस्ताक्षर ज़रूरी होते हैं.

भरोसा करो, लेकिन पुष्टि करो (इनपुट/आउटपुट की पुष्टि करना और मज़बूत बैकएंड)

  • बैकएंड की सुरक्षा: किसी कार्रवाई की अनुमति है या नहीं, यह तय करने के लिए सिर्फ़ एलएलएम पर भरोसा न करें. एलएलएम से ट्रिगर होने वाले फ़ंक्शन, जिन बैकएंड सेवाओं या एपीआई से कनेक्ट होते हैं उनमें पुष्टि करने, अनुमति देने, और इनपुट की पुष्टि करने की मज़बूत सुविधा होनी चाहिए. इससे हर अनुरोध की दोबारा जांच की जा सकेगी. साथ ही, यह पुष्टि की जा सकेगी कि अनुरोध सही है और तय किए गए पैरामीटर के मुताबिक है.
  • डेटा को साफ़ करना: अन्य कमज़ोरियों की तरह, एलएलएम में डाले गए इनपुट और एलएलएम से जनरेट हुए पैरामीटर, दोनों को सैनिटाइज़ और पुष्टि करना ज़रूरी है. ऐसा इसलिए, ताकि फ़ंक्शन कॉल के लिए किसी भी दुर्भावनापूर्ण निर्देश या अनचाहे आउटपुट का पता लगाया जा सके.

खास जानकारी

ज़्यादा एजेंसी एक गंभीर जोखिम है. इसमें एलएलएम के पास अन्य सिस्टम या फ़ंक्शन के साथ इंटरैक्ट करने की बहुत ज़्यादा अनुमतियां होती हैं. इससे उसे नुकसान पहुंचाने वाली कार्रवाइयां करने के लिए गुमराह किया जा सकता है. इसकी वजह से, Android ऐप्लिकेशन में बिना अनुमति के डेटा ऐक्सेस किया जा सकता है, सिस्टम से समझौता किया जा सकता है, वित्तीय नुकसान हो सकता है या उपयोगकर्ता को नुकसान पहुंच सकता है. जोखिम कम करने के लिए, कम से कम विशेषाधिकार के सिद्धांत का पालन किया जाता है: एलएलएम के लिए उपलब्ध टूल और Android की अनुमतियों को सीमित करें, पुष्टि करें कि हर टूल में कम से कम और खास फ़ंक्शन मौजूद हैं, और ज़्यादा असर डालने वाली सभी कार्रवाइयों के लिए, व्यक्ति की मंज़ूरी लेना ज़रूरी है.

अन्य संसाधन