आरएजी सुरक्षा: पूर्ण गाइड
Securing Retrieval-Augmented Generation systems against document poisoning, retrieval manipulation, and embedding attacks
Updated: August 2026 • ओडब्ल्यूएएसपी एलएलएम08 का हिस्सा
RAG क्या है?
Retrieval-Augmented Generation (RAG) is an AI architecture that combines large language models with external knowledge retrieval. Enterprise LLM deployments now use RAG extensively, making its security critical.
1. उपयोगकर्ता प्रश्न
उपयोगकर्ता सिस्टम के लिए एक प्रश्न या संकेत प्रस्तुत करता है
2. एंबेडिंग
क्वेरी को वेक्टर एम्बेडिंग में परिवर्तित किया जाता है
3. पुनर्प्राप्ति
वेक्टर डीबी से प्राप्त समान दस्तावेज़
4। ऑग्मेंटेशन
पुनर्प्राप्त संदर्भ को संकेत में जोड़ा गया
5। जनरेशन
एलएलएम संदर्भ का उपयोग करके प्रतिक्रिया उत्पन्न करता है
ट्रस्ट पैराडॉक्स
RAG systems have a fundamental security flaw: user queries are treated as untrusted input, but retrieved context is implicitly trusted - even though both enter the same prompt. This creates a significant attack surface that traditional security doesn't address.
हमला वेक्टर
1. दस्तावेज़ विषाक्तता
ज्ञानकोष में संग्रहीत दस्तावेज़ों में दुर्भावनापूर्ण सामग्री डालना।
यह कैसे काम करता है
- हमलावर दुर्भावनापूर्ण दस्तावेज़ अपलोड या इंजेक्ट करता है
- दस्तावेज़ वेक्टर डीबी में एम्बेडेड और संग्रहीत हैं
- जब प्रासंगिक क्वेरी की जाती है, तो जहरीले दस्तावेज़ को पुनः प्राप्त किया जाता है
- LLM प्रतिक्रिया में दुर्भावनापूर्ण संदर्भ शामिल करता है
प्रभाव
- 90% success सिर्फ 5 जहरीले दस्तावेजों के साथ
- लाखों दस्तावेजों वाले डेटाबेस में भी काम करता है
- Can cause harmful, biased, or incorrect outputs
- तैनाती के बाद पता लगाना मुश्किल
2. पुनर्प्राप्ति हेरफेर
आउटपुट को प्रभावित करने के लिए कौन से दस्तावेज़ पुनर्प्राप्त किए गए हैं, उनमें हेरफेर करना
यह कैसे काम करता है
- विशिष्ट पुनर्प्राप्ति को ट्रिगर करने के लिए हमलावर शिल्प प्रश्न
- रैंकिंग एल्गोरिदम कमजोरियों का फायदा उठाता है
- पुनर्प्राप्ति को हाईजैक करने के लिए शब्दार्थ समानता का उपयोग करता है
- साझा सिस्टम में क्रॉस-उपयोगकर्ता हेरफेर
प्रभाव
- हमलावर-नियंत्रित सामग्री की पुनर्प्राप्ति को बल देता है
- पासवर्ड रीसेट को बाध्य करें, सभी एपीआई कुंजियों को घुमाएं
- लक्षित हेरफेर को सक्षम करता है
- सभी लॉग सुरक्षित रखें
3. एम्बेडिंग व्युत्क्रम
वेक्टर एम्बेडिंग से मूल डेटा पुनर्प्राप्त करना।
यह कैसे काम करता है
- हमलावर वेक्टर डेटाबेस तक पहुंच प्राप्त करता है
- एम्बेडिंग पर व्युत्क्रम तकनीकों का उपयोग करता है
- वेक्टर से मूल पाठ का पुनर्निर्माण
- संवेदनशील एम्बेडेड डेटा पुनर्प्राप्त करता है
प्रभाव
- Recover 50-70% of input words
- एंबेडिंग में संवेदनशील डेटा को उजागर करना
- गोपनीयता उल्लंघन
- अनुपालन मुद्दे (जीडीपीआर, आदि)
4. क्रॉस-टेनेंट हमले
बहु-किरायेदार प्रणालियों में साझा आरएजी बुनियादी ढांचे का शोषण
यह कैसे काम करता है
- हमलावर साझा प्रणाली का एक किरायेदार है
- अन्य किरायेदारों को प्रभावित करने वाली सामग्री को इंजेक्ट करता है
- साझा वेक्टर डेटाबेस का शोषण
- अन्य किरायेदारों से डेटा पुनर्प्राप्त करता है
प्रभाव
- किरायेदारों के बीच डेटा रिसाव
- प्रतिस्पर्धी डेटा तक अनधिकृत पहुंच
- अनुपालन उल्लंघन
- प्रतिष्ठित क्षति
वास्तविक दुनिया सीवीई
आरएजी सिस्टम में प्रलेखित कमजोरियां
| सीवीई आईडी | उत्पाद | विवरण | गंभीरता | सीवीएसएस |
|---|---|---|---|---|
CVE-2025-68700 |
RAGFlow | RCE via Canvas CodeExec component - untrusted data parsed with eval() | Critical | 9.1 |
CVE-2025-69286 |
RAGFlow | Insecure API key generation allows mutual token derivation (authentication bypass) | Critical | 8.9 |
CVE-2025-25282 |
RAGFlow | IDOR vulnerability allowing cross-tenant access and unauthorized user addition | High | 8.1 |
CVE-2025-69286 |
RAGFlow | Token generation using same URLSafeTimedSerializer for API keys | High | 8.9 |
GHSA-8xw3-v6c2-j84j |
RAGFlow | RCE via stdout parsing in CodeExec component | High | 8.5 |
रक्षा रणनीतियाँ
1. अंतर्ग्रहण चरण सुरक्षा
दस्तावेज़ सत्यापन
- मैलवेयर के लिए सभी दस्तावेजों को स्कैन करें
- दस्तावेज़ प्रारूप और संरचना को मान्य करें
- संदिग्ध सामग्री पैटर्न की जांच करें || सामान्य एआई घटनाओं के लिए घटना प्रतिक्रिया प्रक्रियाएँ
- दस्तावेज़ प्रकारों को सीमित करने की अनुमति है
सामग्री फ़िल्टरिंग
- एम्बेड करने से पहले पीआईआई हटाएं
- संवेदनशील डेटा पैटर्न को फ़िल्टर करें
- ज्ञात दुर्भावनापूर्ण पैटर्न को ब्लॉक करें ||
- अनुमति/ब्लॉक सूचियां लागू करें
एक्सेस नियंत्रण
- दस्तावेजों का मान्य स्रोत
- अंतर्ग्रहण के लिए आरबीएसी लागू करें
- सभी अपलोड के लिए ऑडिट ट्रेल
- नए दस्तावेज़ों को संगरोधित करें
2। पुनर्प्राप्ति चरण सुरक्षा
क्वेरी सैनिटाइजेशन
- उपयोगकर्ता प्रश्नों को मान्य और स्वच्छ करना
- इंजेक्शन प्रयासों का पता लगाएं
- क्वेरी जटिलता को सीमित करें
- दर सीमित करना
पुनर्प्राप्ति फ़िल्टरिंग
- पुनर्रैंकिंग सुरक्षा लागू करें
- विश्वसनीय स्रोतों के साथ क्रॉस-रेफरेंस
- असंगत पुनर्प्राप्ति पैटर्न का पता लगाएं
- दस्तावेज़ों की सीमित संख्या
मल्टी-टेनेंसी आइसोलेशन
- अलग वेक्टर नेमस्पेस
- सख्त किरायेदार सीमाएं
- क्रॉस-टेनेंट क्वेरी रोकथाम
- प्रति किरायेदार एन्क्रिप्शन
3। जनरेशन चरण सुरक्षा
आउटपुट सत्यापन
- एलएलएम आउटपुट मान्य करें
- इंजेक्शन सामग्री की जाँच करें
- स्रोतों के खिलाफ तथ्य-जांच
- सामग्री फ़िल्टरिंग
संदर्भ सत्यापन
- तैनाती से पहले सभी एमसीपी सर्वर पर प्रमाणीकरण सक्षम करें
- हेरफेर प्रयासों का पता लगाएं
- असामान्य संदर्भ पैटर्न चिह्नित करें
- सभी संदर्भ उपयोग लॉग करें
ह्यूमन-इन-द-लूप
- संवेदनशील आउटपुट की समीक्षा करें
- उच्च जोखिम वाले कार्यों को मंजूरी दें
- मैन्युअल ओवरराइड क्षमता
- एस्केलेशन पथ
4. डेटा सुरक्षा
एन्क्रिप्शन
- एन्क्रिप्ट वैक्टर एट रेस्ट
- ट्रांजिट में डेटा के लिए टीएलएस
- मुख्य प्रबंधन सर्वोत्तम अभ्यास
- होमोमोर्फिक एन्क्रिप्शन पर विचार करें
वेक्टर डीबी सुरक्षा
- मजबूत प्रमाणीकरण
- नेटवर्क अलगाव
- नियमित सुरक्षा ऑडिट
- पैच प्रबंधन
गोपनीयता सुरक्षा
- डेटा न्यूनीकरण
- पीआईआई का पता लगाना और हटाना
- रिटेंशन नीतियां
- हटाने का अधिकार
परीक्षण पद्धति
आरएजी सुरक्षा परीक्षण चेकलिस्ट
- दस्तावेज़ इंजेक्शन परीक्षण
- पुनर्प्राप्ति हेरफेर परीक्षण
- एंबेडिंग व्युत्क्रम प्रयास
- क्रॉस-टेनेंट अलगाव परीक्षण
- पीआईआई रिसाव परीक्षण
- संदर्भ अतिप्रवाह परीक्षण
- रैंकिंग हेरफेर परीक्षण
- प्रमाणीकरण बाईपास परीक्षण
- एपीआई इंजेक्शन परीक्षण
- सेवा परीक्षणों से इनकार
- डेटा एक्सफिल्ट्रेशन परीक्षण
- अनुपालन ऑडिट
अनिश्चित आउटपुट को चिह्नित करें
कोड उदाहरण
दस्तावेज़ सत्यापन उदाहरण
```python
import re
from typing import List
class RAGDocumentValidator:
SUSPICIOUS_PATTERNS = [
r"ignore previous instructions",
r"system prompt:",
r"{{.*}}",
r"you are now dan",
]
PII_PATTERNS = [
r"\b\d{3}-\d{2}-\d{4}\b", # SSN
r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b", # Email
r"\b\d{16}\b", # Credit card
]
def validate_document(self, content: str) -> dict:
"""Validate document before embedding."""
warnings = []
blocked = False
# Check for suspicious patterns
for pattern in self.SUSPICIOUS_PATTERNS:
if re.search(pattern, content, re.IGNORECASE):
warnings.append(f"Suspicious pattern: {pattern}")
blocked = True
# Check for PII
for pattern in self.PII_PATTERNS:
if re.search(pattern, content):
warnings.append(f"PII detected: {pattern}")
return {
"valid": not blocked,
"warnings": warnings,
"pii_detected": len([w for w in warnings if "PII" in w]) > 0
}
```