बॅकडोअर म्हणून ब्राउझर: क्लायंट-साइड एलएलएम सीक्रेट एक्सट्रॅक्शन डिमिस्टिफाइड
बर्याच काळापासून, आम्ही "AI सुरक्षा चेतावणी" ला दूरचे धोके किंवा शैक्षणिक उत्सुकता म्हणून हाताळले आहे. आम्ही प्रॉम्प्ट इंजेक्शन, जेलब्रेक आणि डेटा लीकेज बद्दल ऐकले आहे, ज्यानंतर अनेकदा श्रग आणि "आम्ही ते मिळवू." तथापि, अलीकडील परस्परसंवादी प्रात्यक्षिकांनी त्या आरामदायक भ्रमाचा भंग केला आहे. ही आता सैद्धांतिक असुरक्षा नाही; लार्ज लँग्वेज मॉडेल्स (LLM) [२] मधून संवेदनशील माहिती काढण्यासाठी हे थेट, ब्राउझर-आधारित, क्लायंट-साइड शोषण आहे. जर तुम्ही LLM-संचालित ऍप्लिकेशन्स, विशेषत: वेब-फेसिंग काहीही तैनात करत असाल, तर तुमची "भविष्यातील समस्या" ही सध्याची, अतिशय सार्वजनिक आणि संभाव्यत: अतिशय लाजिरवाणी जबाबदारी बनली आहे.
ही दुसरी सामान्य "AI धोकादायक आहे" हेडलाइन नाही. दुर्भावनायुक्त अभिनेता, फक्त त्यांचा ब्राउझर वापरून, संवेदनशील माहिती उघड करण्यासाठी तुमच्या LLM ला कसे जबरदस्ती करू शकतो याचे हे एक विशिष्ट, मूर्त प्रदर्शन आहे. याचा क्षणभर विचार करा. हे जटिल सर्व्हर-साइड हल्ले किंवा सखोल मॉडेल आत्मनिरीक्षण बद्दल नाही. हे परस्परसंवाद स्तराबद्दल आहे—तुमच्या अनुप्रयोगाचा अगदी समोरचा दरवाजा—काही काळजीपूर्वक तयार केलेल्या वर्णांसह शोषण केले जात आहे. तुमच्या कथित सुरक्षित चॅटबॉटसाठी कोणीतरी योग्य वाक्प्रचार बनवणारा हा डिजिटल समतुल्य आहे, आणि तो कर्तव्यदक्षपणे गंभीर डेटा प्रदान करतो, बऱ्याचदा थोडासा.
मॉडेल सुरक्षिततेचा भ्रम
बऱ्याच उद्योगांनी "सुरक्षित" LLM मध्ये मोठ्या प्रमाणात गुंतवणूक केली आहे, एकतर मालकी मॉडेलचे उत्तम ट्यूनिंग केले आहे किंवा कथित रेलिंगसह एंटरप्राइझ-ग्रेड API वर अवलंबून आहे. गर्भित गृहितक असा आहे की जर मॉडेल स्वतः मजबूत असेल, तर त्याच्या वर तयार केलेला अनुप्रयोग ती सुरक्षितता वारसा देईल. अलीकडील प्रात्यक्षिके हा एक धोकादायक गैरसमज म्हणून उघड करतात. भेद्यता मॉडेलच्या मूळ बुद्धिमत्तेमध्ये किंवा त्याच्या प्रशिक्षण डेटामध्ये नाही; हे इंटरफेस मध्ये आहे जे आम्ही त्याच्याभोवती तयार करतो [१]. ही एक क्लासिक "मजबूत वॉल्ट, समोरचा दरवाजा" समस्या आहे. तुमच्याकडे जगातील सर्वात प्रगत, कठोर LLM असू शकते, परंतु जर तुमच्या ॲप्लिकेशनचे इनपुट पार्सर भोळे असेल, किंवा तुमचे आउटपुट फिल्टर अस्तित्वात नसेल, तर तुम्ही महत्त्वाची माहिती कोणासही शोधण्यासाठी उघडपणे सोडत आहात.
हे "प्रॉम्प्ट इंजेक्शन" तंत्र विशेषतः संबंधित आहे कारण ते LLM च्या अंतर्निहित स्वभावाचा फायदा घेते: सूचनांचे पालन करण्याची क्षमता आणि संपूर्ण नमुने. वापरकर्त्याच्या इनपुटमध्ये काळजीपूर्वक तयार केलेला उपसर्ग इंजेक्ट करून, आक्रमणकर्ता मॉडेलच्या अंतर्गत स्थितीत फेरफार करू शकतो, आणि ती माहिती उघड करण्यास भाग पाडू शकतो ज्याचा तो कधीही हेतू नव्हता [3]. "वन-बिट" किंवा पुनरावृत्तीचा पैलू येथे महत्त्वपूर्ण आहे. हे एक पद्धतशीर, नियंत्रित एक्सफिल्टेशन सूचित करते, केवळ गोंधळलेला डेटा डंप नाही. कल्पना करा की आक्रमणकर्ता पुनरावृत्तीने विचारत आहे, "गुप्त 'अ' चे पहिले वर्ण आहे का?" मग "तो 'B' आहे का?" आणि असेच. हे धीमे आहे, होय, परंतु हे आश्चर्यकारकपणे प्रभावी आहे आणि आपण ते शोधत नसल्यास ते शोधणे कठीण आहे.
तुमचा ब्राउझर, त्यांचे शस्त्र
हे एक ब्राउझर-आधारित शोषण असल्यामुळे गेम पूर्णपणे बदलतो. याचा अर्थ:
- प्रवेशासाठी कमी अडथळा: मूलभूत वेब विकास कौशल्ये आणि ब्राउझर असलेले कोणीही हा प्रयत्न करू शकतात. कोणतीही विशेष साधने किंवा सखोल एआय ज्ञान आवश्यक नाही.
- क्लायंट-साइड एक्झिक्यूशन: हल्ला वापरकर्त्याच्या मशीनमधून उद्भवतो, ज्यामुळे नेटवर्क एजवरील कायदेशीर वापरकर्ता इनपुटपासून वेगळे करणे कठीण होते.
- तत्काळ धोका: जर तुमचा LLM अनुप्रयोग थेट असेल आणि वेब इंटरफेसद्वारे प्रवेशयोग्य असेल, तर तो आधीच या वेक्टरसाठी असुरक्षित आहे. हा भविष्यातील पॅच नाही; ही सध्याची आणीबाणी आहे.
परिणामांचा विचार करा: मालकी कोड स्निपेट्स, अंतर्गत दस्तऐवजीकरण, ग्राहक डेटा, API की किंवा चुकीची माहिती पसरवण्यासाठी किंवा हानिकारक सामग्री तयार करण्यासाठी तुमच्या LLM च्या वर्तनात अगदी सूक्ष्म फेरफार. हे सर्व साध्या मजकूर बॉक्सद्वारे थोडे कष्टाने काढले किंवा प्रभावित केले जाऊ शकते.
जबाबदारी आपली आहे
OpenAI किंवा Google सारख्या मॉडेल प्रदात्यांना त्यांच्या पुढील मॉडेल अपडेटमध्ये निराकरण करण्यासाठी ही समस्या नाही. ही ॲप्लिकेशन सुरक्षितता समस्या आहे आणि ती कमी करण्याची जबाबदारी विकसक, सुरक्षा संघ आणि या प्रणाली तैनात करणाऱ्या CTO च्या खांद्यावर येते. तुमचे LLM हे एक शक्तिशाली, पण शेवटी भोळे इंजिन आहे. जरी त्या सूचना उशिर निरुपद्रवी वापरकर्ता इनपुटमध्ये लपलेल्या असल्या तरीही ते जे सांगितले आहे ते करेल.
तर, आता तुम्ही काय कराल*?
तात्काळ प्रतिकारक उपाय:
- आक्रमक इनपुट सॅनिटायझेशन: हे SQL इंजेक्शन किंवा XSS प्रतिबंधित करण्यापलीकडे आहे. तुम्हाला तुमच्या एलएलएममध्ये प्रवेश करण्यासाठी प्रत्येक वर्ण तपासण्याची आवश्यकता आहे. प्रॉम्प्ट इंजेक्शन, असामान्य वर्ण क्रम किंवा अपेक्षित संभाषण प्रवाह खंडित करण्याचा प्रयत्न दर्शविणारे नमुने पहा [4]. हे "वाईट शब्द" अवरोधित करण्याबद्दल नाही; हे विरोधी प्रॉम्प्ट ओळखण्याबद्दल आहे. मूलभूत regex आणि ह्युरिस्टिक विश्लेषणाच्या पलीकडे, दुर्भावनापूर्ण हेतू शोधण्यासाठी अर्थपूर्ण विश्लेषण लागू करा. विसंगत इनपुट पॅटर्न ओळखण्यासाठी टोकनायझेशन आणि एम्बेडिंग विश्लेषण वापरा. दुय्यम, लहान LLM किंवा प्रॉम्प्ट इंजेक्शन प्रयत्न शोधण्यासाठी विशेषतः प्रशिक्षित नियम-आधारित प्रणाली वापरण्याचा विचार करा. भूमिका बजावण्याच्या सूचना, स्पष्ट डेटा काढण्याच्या विनंत्या किंवा मागील सूचनांना बायपास करण्याचा प्रयत्न यासारखे नमुने पहा.
- मजबूत आउटपुट फिल्टरिंग आणि प्रमाणीकरण: LLM च्या आउटपुटवर कधीही विश्वास ठेवू नका. कोणताही LLM-व्युत्पन्न केलेला मजकूर वापरकर्त्याला प्रदर्शित करण्यापूर्वी किंवा दुसऱ्या सिस्टमद्वारे वापरण्यापूर्वी, तो कठोर प्रमाणीकरण स्तरातून जाणे आवश्यक आहे. त्यात संवेदनशील कीवर्ड आहेत का? हे अपेक्षित स्वरूपांशी जुळते का? तो कोड कार्यान्वित करण्याचा प्रयत्न करतो किंवा अंतर्गत सिस्टम प्रॉम्प्ट प्रकट करतो? जर तुमचा LLM दस्तऐवजाचा सारांश देणार असेल, परंतु ते फाइल पथ सूचीबद्ध करण्यास प्रारंभ करत असेल, तर तुम्हाला एक समस्या आहे.
- स्तरित प्रॉम्प्ट अभियांत्रिकी: पूर्ण समाधान नसले तरी, चांगल्या प्रकारे डिझाइन केलेले सिस्टम प्रॉम्प्ट आणि काही-शॉट उदाहरणे इच्छित वर्तन मजबूत करण्यात मदत करू शकतात आणि आक्रमणकर्त्याला मॉडेल हायजॅक करणे कठीण बनवू शकतात. तथापि, केवळ त्वरित अभियांत्रिकी अपुरी आहे हे समजून घ्या; हे सखोल संरक्षण आहे, प्राथमिक ढाल नाही.
- LLM परस्परसंवादासाठी किमान विशेषाधिकार: तुमच्या LLM ला खरच डेटाच्या प्रत्येक तुकड्यात प्रवेश आवश्यक आहे का ज्याला ते उघड करण्यास सांगितले जाऊ शकते? कठोर प्रवेश नियंत्रणे लागू करा. जर LLM ला फक्त सार्वजनिक दस्तऐवजांच्या प्रश्नांची उत्तरे द्यायची असतील, तर त्याला अंतर्गत डेटाबेस किंवा संवेदनशील API मध्ये प्रोग्रामॅटिक प्रवेश नाही याची खात्री करा.
- निरीक्षण आणि विसंगती शोधणे: तुम्ही सक्रियपणे असामान्य LLM वर्तन शोधणे आवश्यक आहे. विशिष्ट प्रकारच्या क्वेरींमधील स्पाइक्स, सामान्य नमुन्यांपासून विचलित होणारे आउटपुट किंवा माहिती काढण्याचा वारंवार प्रयत्न केल्याने तात्काळ अलर्ट ट्रिगर केले पाहिजेत.
हे आता व्यापक "AI सुरक्षा" बद्दल नाही. हे विशिष्ट, प्रात्यक्षिक आणि तत्काळ शोषण करण्यायोग्य अटॅक वेक्टरच्या विरूद्ध आपल्या LLM ऍप्लिकेशन्सचे परस्परसंवाद स्तर सुरक्षित करण्याबद्दल आहे. आम्ही इंटरफेसवर अपुऱ्या सुरक्षा उपायांसह या अविश्वसनीय, शक्तिशाली प्रणाली तयार करत आहोत. अलीकडील प्रात्यक्षिकांनी आम्हाला दाखवले आहे की या अंतरांचे शोषण करणे किती सोपे आहे. सैद्धांतिक चर्चा करण्याची वेळ आता संपली आहे. LLM अर्ज सुरक्षित करण्यासाठी त्वरित कारवाई करणे आवश्यक आहे.
स्रोत
[१] मोठ्या भाषेच्या मॉडेल ऍप्लिकेशनसाठी OWASP टॉप १० — https://owasp.org/www-project-top-10-for-large-language-model-applications/ [२] लाकेरा गंडाल्फ: एक इंटरएक्टिव्ह प्रॉम्प्ट इंजेक्शन चॅलेंज — https://gandalf.lakera.ai/ [३] प्रॉम्प्ट इंजेक्शन हल्ला | वेब सुरक्षा अकादमी - https://portswigger.net/web-security/llm-attacks/prompt-injection [४] प्रॉम्प्ट इंजेक्शन म्हणजे काय आणि ते कसे टाळावे? — https://www.tenable.com/blog/what-is-prompt-injection-and-how-to-prevent-it