LLM ऐप्लिकेशन्स के लिए OWASP Top 10
लार्ज लैंग्वेज मॉडल्स पर बने ऐप्स में होने वाले दस सबसे बड़े जोखिमों की एक साझा लिस्ट। हर एक को एक लाइन में जानें, और यह भी कि इस कोर्स में इसे कहाँ कवर किया गया है।
60 सेकंड में
LLM ऐप्लिकेशन्स के लिए OWASP Top 10
लार्ज लैंग्वेज मॉडल्स पर बने ऐप्स में होने वाले दस सबसे बड़े जोखिमों की एक साझा लिस्ट। हर एक को एक लाइन में जानें, और यह भी कि इस कोर्स में इसे कहाँ कवर किया गया है।
2025 की लिस्ट, हर एक एक लाइन में
| ID | जोखिम | एक लाइन में | आप इसे कहाँ सीखते हैं |
|---|---|---|---|
| LLM01 | Prompt Injection | किसी यूज़र का टेक्स्ट या ऐसा कंटेंट जिसे मॉडल पढ़ता है, वह मॉडल के काम करने के तरीके को बदल देता है। | Prompt injection, करीब से · Indirect injection: अदृश्य नोट |
| LLM02 | Sensitive Information Disclosure | ऐप पर्सनल डेटा, बिज़नेस सीक्रेट्स या दूसरे यूज़र्स का डेटा उजागर कर देता है। | RAG को सुरक्षित करना · Vector stores और एम्बेडिंग लीक्स · लॉगिंग और मॉनिटरिंग |
| LLM03 | Supply Chain | कोई मॉडल, लाइब्रेरी, डेटासेट या प्लगइन जिस पर आप निर्भर हैं, वह कमज़ोर या दुर्भावनापूर्ण (malicious) है। | Supply chain: प्लगइन्स, MCP सर्वर्स और स्किल्स · AI पाइपलाइन में सुरक्षा टेस्टिंग |
| LLM04 | Data and Model Poisoning | कोई ट्रेनिंग, फाइन-ट्यूनिंग या आपके डॉक्यूमेंट स्टोर में खराब डेटा डाल देता है। | RAG को सुरक्षित करना (पॉइज़न किए गए डॉक्यूमेंट्स) · Data poisoning और पिछले दरवाज़े (backdoors) |
| LLM05 | Improper Output Handling | मॉडल के आउटपुट को बिना जांचे दूसरे कोड द्वारा इस्तेमाल किया जाता है: रेंडर किया जाता है, चलाया जाता है या फ़ेच किया जाता है। | मॉडल आउटपुट को अविश्वसनीय इनपुट की तरह समझें |
| LLM06 | Excessive Agency | मॉडल के पास काम की ज़रूरत से ज़्यादा टूल्स, अनुमतियाँ (permissions) या आज़ादी होती है। | Excessive agency और ब्लास्ट रेडियस · भ्रमित डिप्टी (The confused deputy) |
| LLM07 | System Prompt Leakage | छिपे हुए निर्देश सामने आ जाते हैं, और उनके साथ अंदर मौजूद कोई भी सीक्रेट्स या नियम भी। | System prompt leakage: प्रॉम्प्ट्स कोई सीक्रेट्स नहीं हैं |
| LLM08 | Vector and Embedding Weaknesses | RAG के लिए इस्तेमाल होने वाले vector store और एम्बेडिंग्स में कमज़ोर एक्सेस कंट्रोल या आइसोलेशन। | RAG को सुरक्षित करना · Vector stores और एम्बेडिंग लीक्स |
| LLM09 | Misinformation | मॉडल गलत लेकिन सच लगने वाला कंटेंट बनाता है, और लोग या सिस्टम उस पर भरोसा कर लेते हैं। | AI फ़ीचर्स में गलत जानकारी और ज़रूरत से ज़्यादा निर्भरता |
| LLM10 | Unbounded Consumption | इस्तेमाल पर कोई सीमा नहीं, इसलिए हमलावर या बग्स पैसे, क्षमता बर्बाद करते हैं या मॉडल की नकल कर लेते हैं। | Unbounded consumption: जेब खाली होना (denial of wallet) |
याद रखने में आसान बनाने वाले तीन ग्रुप
- अंदर क्या जाता है: prompt injection (LLM01), poisoning (LLM04), supply chain (LLM03)।
- बाहर क्या आता है: disclosure (LLM02), output handling (LLM05), prompt leakage (LLM07), misinformation (LLM09)।
- सिस्टम को क्या करने की अनुमति है: excessive agency (LLM06), vector store access (LLM08), unbounded consumption (LLM10)।
लिस्ट का इस्तेमाल कैसे करें
- 1
फ़ीचर के बारे में बताएं
यह क्या पढ़ता है, क्या कर सकता है, इसका इस्तेमाल कौन करता है? - 2
सभी दस जोखिमों को देखें
हर जोखिम के लिए लिखें: लागू होता है, आंशिक रूप से लागू होता है, या लागू नहीं होता है, और क्यों। - 3
कंट्रोल्स चुनें
लागू होने वाले हर जोखिम के लिए, एक या दो कंट्रोल्स और एक ज़िम्मेदार व्यक्ति (owner) तय करें। - 4
कंट्रोल्स का टेस्ट करें
हर जोखिम को ऐसे टेस्ट मामलों में बदलें जिन्हें आप दोबारा चला सकें (यूनिट 4)। - 5
हर बड़े बदलाव पर रिव्यू करें
नया टूल, नया डेटा सोर्स या नया मॉडल आने का मतलब है एक नया रिव्यू।
- एक ही मीटिंग में सभी दस बॉक्स को "हो गया" टिक कर देना
- यह मानना कि केवल यही जोखिम मौजूद हैं
- हर जोखिम के लिए सिस्टम प्रॉम्प्ट में एक लाइन जोड़ना
- हर जोखिम के लिए एक कारण और एक कंट्रोल लिखना
- अपने फ़ीचर के असली थ्रेट मॉडल के साथ इसका इस्तेमाल करना
- कंट्रोल्स को कोड, डेटा एक्सेस और डिज़ाइन में शामिल करना
और देखें और पढ़ें
लैब
OWASP के सभी दस जोखिमों के सामने किसी एक AI फ़ीचर का एक पेज का रिस्क मैप।
समस्या
कोई काल्पनिक फ़ीचर चुनें, उदाहरण के लिए: "किसी बैंक की वेबसाइट पर मौजूद एक चैटबॉट जो सार्वजनिक FAQ पेजों से सवालों के जवाब देता है और लॉग-इन किए हुए ग्राहक को उसके पिछले पाँच लेन-देन दिखा सकता है।"
- इसके बारे में बताते हुए तीन लाइनें लिखें: यह क्या पढ़ता है, इसके पास कौन-से टूल्स हैं, इसे कौन इस्तेमाल करता है।
- एक टेबल बनाएँ जिसमें ये कॉलम हों: जोखिम, क्या लागू होता है? (हाँ / कुछ हद तक / नहीं), क्यों, एक कंट्रोल।
- दसों जोखिमों के लिए एक-एक पंक्ति भरें। जहाँ जवाब "नहीं" हो, वहाँ भी वजह लिखें।
- शीर्ष तीन जोखिमों पर और जोखिमों के उस एक मेल पर गोला लगाएँ जो आपको सबसे ज़्यादा डराता है।
आपका काम तब पूरा होगा जब
कठिन सवाल
उत्तर देखने से पहले ख़ुद जवाब देने की कोशिश करें। अगर आप इनके जवाब दे सकते हैं, तो आप पाठ समझ गए हैं।
Q1SQL injection को काफ़ी हद तक parameterised queries से सुलझा लिया गया था। Prompt injection के लिए वैसा ही कोई साफ़-सुथरा समाधान क्यों नहीं है?दिखाएं
Parameterised queries इसलिए काम करती हैं क्योंकि डेटाबेस के पास डेटा के लिए एक सख्त, अलग चैनल होता है जिसे कभी कोड की तरह नहीं पढ़ा जाता। किसी लैंग्वेज मॉडल के पास ऐसा कोई चैनल नहीं होता: निर्देश और डेटा, दोनों एक ही context में सिर्फ़ टेक्स्ट होते हैं, और मॉडल तय करता है कि किस बात को मानना है। इसलिए हम इसके असर को कम करते हैं: मॉडल क्या देख और कर सकता है उसे सीमित करें, कोड में उसके ऐक्शन चेक करें, और जोखिम भरे कदमों के लिए मंज़ूरी लेना ज़रूरी बनाएँ।
Q2आपका फ़ीचर सिर्फ़ पब्लिक पेज पढ़ता है और उसके पास कोई टूल नहीं हैं। क्या LLM02 (Sensitive Information Disclosure) फिर भी लागू हो सकता है?दिखाएं
हाँ। हो सकता है कि यूज़र्स चैट में अपना पर्सनल डेटा पेस्ट कर दें, जो फिर logs, analytics या किसी provider के सिस्टम में रह जाता है। System prompt में अंदरूनी जानकारी हो सकती है। बातचीत cache हो सकती है और किसी गलत यूज़र को दिख सकती है। "सोर्स में कोई प्राइवेट डेटा नहीं है" का मतलब यह नहीं कि "सिस्टम में कोई प्राइवेट डेटा नहीं है"।
अक्सर पूछे जाने वाले सवाल
क्या LLMs के लिए OWASP Top 10 कोई कानून या सर्टिफ़िकेट है?
नहीं। यह मुफ़्त कम्युनिटी मार्गदर्शन है। कुछ कंपनियाँ और ऑडिटर्स इसे चेकलिस्ट की तरह इस्तेमाल करते हैं, लेकिन इसे फ़ॉलो करने से आपका ऐप सुरक्षित सर्टिफ़ाई नहीं हो जाता।
क्या यह केवल चैटबॉट्स को कवर करता है?
नहीं। यह सामान्य रूप से लार्ज लैंग्वेज मॉडल्स पर बने ऐप्लिकेशन्स को कवर करता है, जिसमें RAG सर्च, अन्य ऐप्स के अंदर AI फ़ीचर्स, और टूल्स का इस्तेमाल करने वाले एजेंट्स शामिल हैं।
Prompt injection सबसे पहले क्यों है?
क्योंकि यह लगभग हर LLM ऐप को प्रभावित करता है और इसका अभी तक कोई पूरा समाधान नहीं है। मॉडल्स निर्देशों और डेटा को टेक्स्ट की एक ही स्ट्रीम में पढ़ते हैं, इसलिए सुरक्षा के उपाय जोखिम को कम करते हैं लेकिन खत्म नहीं करते। यही कारण है कि अन्य कंट्रोल्स, जैसे सीमित अनुमतियाँ, इतने महत्वपूर्ण हैं।
क्या यह लिस्ट बदलेगी?
हाँ, जैसे-जैसे हमले और ऐप्स बदलते हैं, इसे समय-समय पर अपडेट किया जाता है। 2025 के संस्करण ने पिछले वर्ज़न की जगह ली है। किसी ऑडिट या रिव्यू से पहले ताज़ा लिस्ट के लिए प्रोजेक्ट की वेबसाइट देखें।
पाठ का टेस्ट
5 सवाल। पास होने और इस पाठ को पूरा करने के लिए 3 सही होने चाहिए (60%)।