Can Developers rely on LLMs for Secure IaC Development?
यह अध्ययन सुरक्षित इंफ्रास्ट्रक्चर एज़ कोड (Infrastructure as Code) विकास के लिए GPT-4o और Gemini 2.0 Flash का मूल्यांकन करता है, जिसमें यह पाया गया कि हालांकि गाइडेड प्रॉम्प्ट्स सरल स्निपेट्स और वास्तविक दुनिया के रिपॉजिटरीज़ दोनों में सुरक्षा संबंधी खामियों (security smell) का पता लगाने में सुधार करते हैं, फिर भी मॉडल सुरक्षित कोड उत्पन्न करने में संघर्ष करते हैं, क्योंकि स्पष्ट निर्देश दिए जाने के बावजूद केवल एक बहुत छोटा हिस्सा ही सुरक्षा मानकों को पूरा कर पाता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक घर बना रहे हैं, लेकिन ईंटों और गारे के बजाय, आप अपनी दीवारों, खिड़कियों और सुरक्षा प्रणालियों को स्वचालित रूप से असेंबल करने के लिए कोड का उपयोग कर रहे हैं। इसे इन्फ्रास्ट्रक्चर एज़ कोड (IaC) कहा जाता है। यह एक रोबोट होने जैसा है जो आपके डिजिटल इन्फ्रास्ट्रक्चर को आपके लिए बनाता है।
समस्या यह है कि यदि आप रोबोट को एक खराब ब्लूप्रिंट (नक्शा) देते हैं, तो वह ऐसे घर का निर्माण कर सकता है जिसमें दरवाजे खुले हों, खिड़कियां सड़क की ओर खुलती हों, या एक तिजोरी हो जिसकी चाबी सामने वाले दरवाजे पर टेप से चिपकी हो। इन गलतियों को "सिक्योरिटी स्मेल्स" (सुरक्षा संबंधी कमियां) कहा जाता है।
इस शोध पत्र के लेखकों ने एक बड़ा सवाल पूछा: क्या हम AI चैटबॉट्स (जैसे GPT-4o और Gemini) पर भरोसा कर सकते हैं कि वे हमारे ब्लूप्रिंट को सुरक्षित रूप से लिखने में मदद करेंगे, या उनमें गलतियों को पहचान लेंगे?
यहाँ उन्होंने जो पाया है, उसे सरल कहानियों में विभाजित किया गया है:
1. "गलती पहचानो" परीक्षण (Detection)
शोधकर्ताओं ने AI को दो प्रकार के कार्य दिए: कोड के छोटे टुकड़ों (जैसे Stack Overflow पर पाए जाने वाले) में त्रुटियां ढूंढना और वास्तविक दुनिया की पूर्ण प्रोजेक्ट फाइलों (GitHub से) में त्रुटियां ढूंढना।
- "अस्पष्ट अनुरोध" वाला परिदृश्य: कल्पना करें कि आप एक सुरक्षा गार्ड से पूछते हैं, "इस घर को देखो और मुझे बताओ कि क्या यह सुरक्षित है।"
- परिणाम: AI छोटे टुकड़ों में स्पष्ट समस्याओं को पहचानने में ठीक था (लग लगभग 70-80% सफलता)। लेकिन पूर्ण, जटिल प्रोजेक्ट्स को देखते समय, AI ने आधे से अधिक खतरनाक खामियों को मिस कर दिया। यह ऐसा था जैसे गार्ड ने केवल खुले सामने के दरवाजे को देखा हो लेकिन पीछे की टूटी हुई खिड़की को नहीं देखा।
- "चरण-दर-चरण" वाला परिदृश्य: इसके बाद शोधकर्ताओं ने AI को एक विशिष्ट चेकलिस्ट दी: "पहले, ताले चेक करें। दूसरा, खिड़कियां चेक करें। तीसरा, पिछले मालिक द्वारा छोड़े गए नोट्स देखें।"
- परिणाम: यह बहुत बेहतर काम कर गया। गलतियों को खोजने की AI की क्षमता काफी बढ़ गई (एक मॉडल के लिए लगभग 90% तक पहुँच गई)।
- पेंच (The Catch): भले ही AI ने गलती ढूंढ ली हो, लेकिन इसने शायद ही कभी कोई विशिष्ट समाधान (fix) सुझाया। यह ऐसा था जैसे गार्ड कह रहा हो, "हे, वह खिड़की टूटी हुई है," लेकिन वह आपको उसे बदलने के लिए कांच नहीं थमा रहा है।
2. "बनाओ" परीक्षण (Generation)
इसके बाद, उन्होंने विशिष्ट अनुरोधों के आधार पर नए ब्लूप्रिंट को शून्य से बनाने के लिए AI से कहा, जिनमें से कुछ को AI को गलतियाँ करने के लिए उकसाने के लिए डिज़ाइन किया गया था (जैसे, "एक कमजोर ताला उपयोग करें" या "कोड में पासवर्ड छोड़ दें")।
- परिणाम: यहाँ AI सबसे अधिक संघर्ष करता है।
- जब एक सुरक्षित घर बनाने के लिए कहा गया, तो AI ने केवल 7% बार एक सुरक्षित घर बनाया।
- बाकी 93% मामलों में, इसने छिपे हुए जाल (सुरक्षा खामियों) वाले घर बनाए और अक्सर इसने आपको यह भी चेतावनी नहीं दी कि वहां जाल मौजूद हैं।
- यहाँ तक कि जब शोधकर्ताओं ने स्पष्ट रूप से चिल्लाकर कहा, "इसे सुरक्षित (SECURE) बनाओ!", तब भी AI ने लगभग 80% बार असुरक्षित घर बनाए।
3. "नकल करने वाला प्रभाव" (The Copycat Effect)
शोधकर्ताओं ने यह भी जांचा कि क्या AI पहले देखी गई खराब उदाहरणों की नकल कर रहा है। उन्होंने पाया कि AI द्वारा उत्पन्न कोड अक्सर मानव-लिखित फ़ोरम में पाए जाने वाले "सही" उत्तरों की तुलना में अन्य AI-जनित कोड जैसा दिखता है। यह ऐसा है जैसे AI ने उन लोगों के समूह से सीखा है जो सभी एक ही तरह की गलतियाँ कर रहे थे, न कि विशेषज्ञों से सीखा।
मुख्य निष्कर्ष (The Bottom Line)
यह शोध पत्र निष्कर्ष निकालता है कि हालांकि AI एक शक्तिशाली उपकरण है, आप वर्तमान में अपने डिजिटल इन्फ्रास्ट्रक्चर को सुरक्षित रखने के लिए केवल इस पर भरोसा नहीं कर सकते।
- त्रुटियों को खोजने के लिए: यह मदद करता है, लेकिन केवल तभी जब आप इसे बहुत विशिष्ट, चरण-दर-चरण निर्देश दें। बिना उस मार्गदर्शन के, यह बहुत सारी खतरनाक चीजों को मिस कर देता है।
- कोड लिखने के लिए: इसे शुरू से सुरक्षा कोड लिखने के लिए छोड़ना वर्तमान में बहुत जोखिम भरा है। यह बार-बार खुले दरवाजों वाले "घर" बनाता है और आपको इसके बारे में चेतावनी भी नहीं देता है।
उपमा (Analogy): AI को एक बहुत तेज़, बहुत आत्मविश्वासी प्रशिक्षु (apprentice) निर्माता के रूप में सोचें। यदि आप उससे कहें कि "इसे ठीक करो," तो वह कुछ दरारें ढूंढ सकता है। लेकिन यदि आप उससे कहें कि "एक किला बनाओ," तो वह संभवतः एक कार्डबोर्ड का किला बनाएगा जिसमें कागज का ताला होगा, और वह आपको यह भी नहीं बताएगा कि यह वास्तव में सुरक्षित नहीं है। आपको हर चीज़ की दोबारा जांच करने के लिए अभी भी एक मानव विशेषज्ञ की आवश्यकता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।