विभिन्न क्षेत्रों में कृत्रिम बुद्धिमत्ता (एआई) की बढ़ती भूमिका के संदर्भ में, साइबर सुरक्षा में इसके प्रभाव के बारे में प्रश्न अधिक महत्वपूर्ण होते जा रहे हैं। एक ओर, स्वचालन और बुद्धिमान प्रणाली डेटा और आईटी इन्फ्रास्ट्रक्चर की सुरक्षा से संबंधित प्रक्रियाओं को तेज़ और कुशल बना सकती हैं। दूसरी ओर, यह डर है कि एआई कुछ कार्यों में मनुष्यों को प्रतिस्थापित कर सकता है, जिससे उपलब्ध नौकरियों की संख्या में कमी हो सकती है। मेरी अब तक की टिप्पणियों से पता चलता है कि इसका विपरीत (कम से कम सुरक्षा विशेषज्ञों के लिए) होगा!
साइबर सुरक्षा में एआई की संभावनाएं
एआई कम समय में विशाल मात्रा में डेटा का विश्लेषण करने में सक्षम है, जो साइबर सुरक्षा में महत्वपूर्ण है, जहां खतरों पर प्रतिक्रिया की गति अक्सर निर्णायक होती है। मशीन लर्निंग एल्गोरिदम व्यवहार पैटर्न और ऐतिहासिक डेटा के विश्लेषण के आधार पर पहले से अज्ञात खतरों का पता लगा सकते हैं। इसके परिणामस्वरूप, सुरक्षा घटनाओं की तेजी से और अधिक सटीक पहचान और प्रतिक्रिया संभव है। खतरों के विश्लेषण और प्रतिक्रिया की प्रक्रियाओं का स्वचालन निचले स्तर के सुरक्षा विश्लेषकों के लिए नौकरी की कमी की ओर ले जा सकता है, जो रूटीन मॉनिटरिंग और अलार्म पर प्रतिक्रिया करते हैं। दूसरी ओर, मशीन लर्निंग इंजीनियरिंग, बुद्धिमान रक्षा प्रणाली प्रबंधन, और एआई का उपयोग करके उन्नत खतरे विश्लेषण जैसी विशेषताएं उभर रही हैं। विशेषज्ञों को न केवल आधुनिक एआई टूल्स के कामकाज को समझना होगा, बल्कि उन्हें विकसित करने और सुरक्षा की विशेष आवश्यकताओं के अनुसार अनुकूलित करने में भी सक्षम होना होगा।
कोड निर्माण का स्वचालन = अधिक सुरक्षा त्रुटियाँ + नई वर्ग की कमजोरियाँ
स्वचालित टूल्स द्वारा त्रुटियों का परिचय
एप्लिकेशन बनाना कभी इतना आसान, गैर-तकनीकी लोगों के लिए सुलभ और तेज़ नहीं रहा। इससे बड़ी संख्या में नई एप्लिकेशन की “बाढ़” आ रही है। इसके साथ ही मौजूदा सॉफ़्टवेयर में एआई तत्वों को शामिल करने का उछाल भी है। हालाँकि, स्वचालन, विशेष रूप से कोड जनरेटर या डेवलपर फ्रेमवर्क के रूप में, अनजाने में त्रुटियों और सुरक्षा कमजोरियों को जन्म दे सकता है। ये टूल्स, स्थापित पैटर्न और एल्गोरिदम के आधार पर कार्य करते हुए, सुरक्षा के विशिष्ट शर्तों या बारीकियों पर विचार नहीं कर सकते हैं, जिन्हें अनुभवी प्रोग्रामर समझते और लागू करते हैं। उदाहरण के लिए, यदि टूल को सही ढंग से कॉन्फ़िगर नहीं किया गया है तो स्वचालित रूप से जनरेट किया गया कोड एसक्यूएल इंजेक्शन या क्रॉस-साइट स्क्रिप्टिंग (एक्सएसएस) जैसे हमलों से सुरक्षित नहीं हो सकता है।
ज़ूमिन ज़डॉक्स में XSS
एआई को तेजी से लागू करने का एक उदाहरण ज़ूमिन ज़डॉक्स एप्लिकेशन में मेरे द्वारा पाया गया एक साधारण “रिफ्लेक्टेड क्रॉस-साइट स्क्रिप्टिंग” है। किसी एप्लिकेशन की दस्तावेज़ीकरण सहायता में एआई सहायक को शामिल करना एक शानदार विचार प्रतीत होता है, जहां हम एआई से सवाल पूछकर पता लगा सकते हैं कि किसी सॉफ़्टवेयर का उपयोग कैसे करें। हालाँकि, एआई प्रतिक्रियाएं कुछ हद तक अप्रत्याशित हो सकती हैं और सुरक्षा त्रुटियों का कारण बन सकती हैं। ज़ूमिन एप्लिकेशन में, सहायक से यह पूछने के लिए पर्याप्त था कि वह क्या सोचता है –
<img src=1 href=1 onerror="javascript:alert(document.domain)"></img>?
ताकि उसने उत्तर दिया कि वह हमारे प्रश्न का उत्तर नहीं खोज सकता है, उसे उद्धृत करते हुए
I'm sorry, but I couldn't find a definitive answer to: <img src=1 href=1 onerror="javascript:alert(document.domain)"></img>?. Please provide more context or clarify your query.
संपूर्ण अनुरोध इस प्रकार था:
POST /api/aisearch/stream HTTP/1.1 |
सर्वर का उत्तर:
HTTP/2 200 OK |
जैसा कि देखा जा सकता है, इनपुट डेटा को सही ढंग से मान्य और स्वच्छ नहीं किया गया था, जिसके परिणामस्वरूप इंजेक्टेड जावास्क्रिप्ट कोड निष्पादित हो गया:
गलत प्रतिक्रिया प्रदर्शित करने वाले उदाहरणीय स्यूडोकोड:
function displayResponse(userInput):
# उपयोगकर्ता इनपुट से डेटा लोड करें
query = userInput
# डेटा को स्वच्छ किए बिना उत्तर प्रदर्शित करें
# यह गलत है, क्योंकि यह userInput में निहित स्क्रिप्ट को निष्पादित करने की अनुमति देता है
print("आपके प्रश्न का उत्तर: " + query)
सही प्रतिक्रिया प्रदर्शित करने वाले उदाहरणीय स्यूडोकोड:
function sanitize(input):
# इनपुट डेटा में विशेष HTML वर्णों को हटाएं या एन्कोड करें, जैसे कि <, >, ", ' और अन्य
return input.replace("<", "<").replace(">", ">").replace("\"", """).replace("'", "'")
function displayResponse(userInput):
# उपयोगकर्ता इनपुट से डेटा लोड करें
query = userInput
# डेटा को स्वच्छ करें
safeQuery = sanitize(query)
# सुरक्षित रूप से उत्तर प्रदर्शित करें
# स्वच्छता से दुर्भावनापूर्ण कोड के निष्पादन को रोका जाता है
print("आपके प्रश्न का उत्तर: " + safeQuery)
निर्माता द्वारा भेद्यता (कई अन्य के साथ) की सूचना दी गई और उसे पैच किया गया।
त्रुटियों की पुनरावृत्ति
स्वचालन की मुख्य कमियों में से एक एक ही कोड को कई स्थानों पर दोहराना है, जिससे त्रुटियों या कमजोरियों का व्यापक प्रसार हो सकता है। जब त्रुटि कोड उत्पन्न करने वाले घटक में होती है (और एआई को त्रुटिपूर्ण कोड पर प्रशिक्षित किया जा सकता है), तो इस कोड का उपयोग करने वाला प्रत्येक एप्लिकेशन या प्रणाली संभावित रूप से असुरक्षित होती है। यह घटना सुरक्षा समस्या को स्केल करती है, जिससे इसे प्रबंधित और ठीक करना कठिन हो जाता है।
ऑडिटिंग और कोड समीक्षा में कठिनाई
स्वचालित रूप से उत्पन्न कोड अक्सर जटिल होता है या एक तरीके से उत्पन्न होता है जो “मानव” प्रोग्रामरों के लिए सहज नहीं होता है। यह मैनुअल कोड समीक्षाओं को कठिन बना सकता है, जो तार्किक त्रुटियों या सुरक्षा कमजोरियों की पहचान में महत्वपूर्ण होते हैं। उत्पन्न कोड की पारदर्शिता और समझ की कमी परीक्षण के दौरान महत्वपूर्ण समस्याओं को नज़रअंदाज करने का कारण बन सकती है।
नई वर्ग की कमजोरियाँ
स्वचालन नए वर्ग की कमजोरियों को पेश कर सकता है जो कोड को मैन्युअल रूप से लिखने के मामले में कम संभावना होती। उदाहरण के लिए, स्वचालित रूप से उत्पन्न मॉड्यूलों के बीच की निर्भरताओं को डेवलपर्स द्वारा पूरी तरह से समझा या नियंत्रित नहीं किया जा सकता है, जिससे निर्भरताओं और एप्लिकेशन लॉजिक से संबंधित हमलों का मार्ग प्रशस्त होता है। नई प्रकार की कमजोरियाँ भी सामने आ रही हैं, जैसे कि “प्रॉम्प्ट इंजेक्शन”।
LLM अनुप्रयोगों के लिए OWASP टॉप 10
पिछले वर्ष OWASP ने LLM का उपयोग करने से उत्पन्न होने वाले सबसे बड़े खतरों की पहचान करने और उनके खिलाफ सुरक्षा की सिफारिशें जारी करने का कार्य शुरू किया – LLM अनुप्रयोगों के लिए OWASP टॉप 10। सूची इस प्रकार है:
LLM01: प्रॉम्प्ट इंजेक्शन
उचित इनपुट डेटा द्वारा बड़े भाषा मॉडल (LLM) में हेरफेर करना अनपेक्षित LLM क्रियाओं का कारण बनता है। प्रत्यक्ष इंजेक्शन सिस्टम प्रॉम्प्ट को ओवरराइड करते हैं, जबकि अप्रत्यक्ष डेटा को बाहरी स्रोतों से हेरफेर करते हैं।
LLM02: आउटपुट हैंडलिंग में असुरक्षा
यह कमजोरता तब होती है जब LLM आउटपुट को बिना जांच के स्वीकार किया जाता है, जिससे बैकएंड सिस्टम असुरक्षित हो जाते हैं। इस दुरुपयोग से XSS, CSRF, SSRF, विशेषाधिकार वृद्धि या रिमोट कोड निष्पादन जैसी गंभीर परिणाम हो सकते हैं।
LLM03: प्रशिक्षण डेटा में ज़हर
यह तब होती है जब LLM प्रशिक्षण डेटा को हेरफेर किया जाता है, जिससे सुरक्षा, प्रभावशीलता या नैतिक व्यवहार पर प्रभाव डालने वाले कमजोरियां या त्रुटियां पेश की जाती हैं। स्रोतों में Common Crawl, WebText, OpenWebText और पुस्तकें शामिल हैं।
LLM04: मॉडल का दुरुपयोग
हमलावर LLM पर संसाधन-गहन संचालन कराते हैं, जिससे सेवा की गिरावट या उच्च लागत होती है। यह कमजोरता LLM की संसाधन-गहनता और उपयोगकर्ता इनपुट की अप्रत्याशितता के कारण बढ़ जाती है।
LLM05: आपूर्ति श्रृंखला की कमजोरियाँ
LLM अनुप्रयोगों का जीवनचक्र असुरक्षित घटकों या सेवाओं के माध्यम से सुरक्षा हमलों के लिए कमजोर हो सकता है। बाहरी डेटा सेट, पूर्व-प्रशिक्षित मॉडल और प्लगइन्स का उपयोग कमजोरियों की मात्रा को बढ़ा सकता है।
LLM06: संवेदनशील जानकारी का खुलासा
LLM अनजाने में अपनी प्रतिक्रियाओं में संवेदनशील डेटा का खुलासा कर सकते हैं, जिससे डेटा के अनधिकृत एक्सेस, गोपनीयता उल्लंघन और सुरक्षा उल्लंघन हो सकते हैं। डेटा स्वच्छता और सख्त उपयोग नीतियों को लागू करना आवश्यक है ताकि इससे बचा जा सके।
LLM07: असुरक्षित प्लगइन डिज़ाइन
LLM प्लगइन्स में असुरक्षित इनपुट और अपर्याप्त पहुंच नियंत्रण हो सकता है। अनुप्रयोग नियंत्रणों की कमी से दुरुपयोग आसान हो जाता है और रिमोट कोड निष्पादन जैसे परिणाम हो सकते हैं।
LLM08: अत्यधिक स्वायत्तता
LLM-आधारित सिस्टम ऐसे कार्य कर सकते हैं जो अनपेक्षित परिणामों की ओर ले जाते हैं। यह समस्या अत्यधिक कार्यक्षमता, बहुत अधिक विशेषाधिकारों या LLM-आधारित सिस्टम को दी गई स्वायत्तता के कारण होती है।
LLM09: अत्यधिक निर्भरता
LLM पर अत्यधिक निर्भर प्रणाली या व्यक्ति बिना निगरानी के गलत जानकारी, संचार त्रुटियों, कानूनी मुद्दों और सुरक्षा त्रुटियों के प्रति संवेदनशील हो सकते हैं क्योंकि LLM द्वारा उत्पन्न सामग्री गलत या अनुपयुक्त हो सकती है।
LLM10: मॉडल की चोरी
यह अनधिकृत एक्सेस, कॉपीिंग या स्वामित्व मॉडल्स की चोरी से संबंधित है। इसका प्रभाव आर्थिक नुकसान, प्रतिस्पर्धी लाभ का नुकसान और संभावित संवेदनशील जानकारी तक पहुंच शामिल है।
क्या करना चाहिए? कैसे जिएं?
OWASP ने LLM के लिए शीर्ष 10 के साथ LLM को अपनी संगठन में लागू करने के लिए सुरक्षित दृष्टिकोण के लिए कई सिफारिशें जारी की हैं – LLM एआई साइबर सुरक्षा और प्रशासन चेकलिस्ट। यहाँ प्रोग्रामिंग से संबंधित सिफारिशें दी गई हैं:
- LLM घटकों के लिए खतरे को मॉडल करें और आर्किटेक्चर के भरोसे की सीमाएँ निर्धारित करें।
- डेटा सुरक्षा: जांचें कि डेटा कैसे वर्गीकृत और संरक्षित किया गया है, जिसमें व्यक्तिगत और कॉर्पोरेट डेटा भी शामिल है। (उपयोगकर्ता अनुमतियों का प्रबंधन कैसे किया जाता है और कौन से सुरक्षा तंत्र लागू किए गए हैं?)
- पहुँच नियंत्रण: न्यूनतम विशेषाधिकारों के सिद्धांत के अनुसार पहुँच नियंत्रण लागू करें और बहु-स्तरीय सुरक्षा उपाय लागू करें।
- प्रशिक्षण प्रक्रिया की सुरक्षा: प्रशिक्षण डेटा, प्रक्रियाओं, मॉडलों और एल्गोरिदम के प्रबंधन के लिए कठोर नियंत्रण की आवश्यकता होती है।
- इनपुट और आउटपुट सुरक्षा: इनपुट के सत्यापन विधियों का मूल्यांकन करें और आउटपुट को फ़िल्टर करने, स्वच्छ करने और मान्य करने के तरीके को जांचें।
- निगरानी और प्रतिक्रिया: कार्यप्रवाह का नक्शा बनाएं, निगरानी और प्रतिक्रिया करें, स्वचालन को समझें, लॉगिंग और ऑडिटिंग सुनिश्चित करें। ऑडिट रिकॉर्ड की सुरक्षा की पुष्टि करें।
- उत्पाद विकास प्रक्रिया में एप्लिकेशन परीक्षण, स्रोत कोड समीक्षा, भेद्यता मूल्यांकन और पेन परीक्षण शामिल करें।
- LLM मॉडल या आपूर्ति श्रृंखला में मौजूदा कमजोरियों की जाँच करें।
- प्रॉम्प्ट इंजेक्शन, संवेदनशील जानकारी के खुलासे और मॉडल हेरफेर जैसे LLM समाधानों पर खतरे और हमलों के प्रभाव पर विचार करें।
- मॉडल ज़हर, डेटा हैंडलिंग में असामान्यताएँ, आपूर्ति श्रृंखला हमले और मॉडल की चोरी सहित LLM मॉडल पर हमलों और खतरों के प्रभाव की जांच करें।
- आपूर्ति श्रृंखला की सुरक्षा: प्रारंभिक और नियमित प्रक्रिया दोनों में, तीसरे पक्ष के ऑडिट, पेन परीक्षण और कोड समीक्षाओं की आवश्यकता होती है।
- इन्फ्रास्ट्रक्चर सुरक्षा: पूछें, आपूर्तिकर्ता कितनी बार कठोरता परीक्षण करता है? उनकी उपलब्धता, स्केलेबिलिटी और प्रदर्शन के संदर्भ में उनके SLA क्या हैं?
- घटना प्रतिक्रिया मैनुअल को अपडेट करें और LLM से संबंधित घटनाओं को नियमित सुरक्षा अभ्यास परिदृश्य में शामिल करें।
- साइबर सुरक्षा में जनरेटिव एआई की अपेक्षित प्रदर्शन सुधार को मापने के लिए मौजूदा दृष्टिकोणों के साथ तुलना करने के लिए मेट्रिक्स की पहचान करें या उनका विस्तार करें।