सुरक्षित एआई विकास
Complete developer guide to building secure AI applications - from input validation to deployment
Updated: August 2026
सुरक्षा सिद्धांत
1। गहराई में रक्षा
Implement multiple layers of security controls. No single control should be relied upon exclusively.
2। न्यूनतम विशेषाधिकार
उपयोगकर्ताओं, एपीआई और एआई घटकों को न्यूनतम आवश्यक अनुमतियां प्रदान करें
3. फ़ेल सिक्योर
जब त्रुटियां होती हैं, तो अनुमेय राज्यों के बजाय सुरक्षित राज्यों में डिफ़ॉल्ट। कॉन्फ़िग
4। जीरो ट्रस्ट
Never trust, always verify. Validate at every boundary, including internal systems.
इनपुट सत्यापन
All user input must be validated and sanitized before processing. This is your first line of defense against prompt injection and other attacks.
इनपुट सत्यापन वर्ग
```python
import re
from typing import Optional, List
class InputValidator:
# Known injection patterns
INJECTION_PATTERNS = [
r"ignore\s+(previous|prior|all)\s+(instructions|rules)",
r"(forget|disregard)\s+(your|all)\s+(instructions|rules)",
r"you\s+are\s+(now|still)\s+(dan|do\s+anything)",
r"system\s+prompt:",
r"{{.*}}",
r"\[INST\]|\[/INST\]|<\|end\|>",
]
# Encoding patterns
ENCODING_PATTERNS = [
r"base64:", # Base64 prefix
r"\\x[0-9a-fA-F]{2}", # Hex encoding
r"%[0-9a-fA-F]{2}", # URL encoding
]
def validate(self, user_input: str) -> dict:
"""Validate user input for potential attacks."""
issues = []
# Length check
if len(user_input) > 10000:
issues.append("Input exceeds maximum length")
# Check for injection patterns
for pattern in self.INJECTION_PATTERNS:
if re.search(pattern, user_input, re.IGNORECASE):
issues.append(f"Suspicious pattern detected: {pattern}")
# Check for encoding attempts
for pattern in self.ENCODED_PATTERNS:
if re.search(pattern, user_input):
issues.append(f"Encoded content detected")
# Check for high entropy (possible encoding)
unique_chars = len(set(user_input))
if len(user_input) > 50 and unique_chars / len(user_input) < 0.3:
issues.append("High entropy detected - possible encoding")
return {
"valid": len(issues) == 0,
"issues": issues,
"sanitized": self._sanitize(user_input)
}
def _sanitize(self, user_input: str) -> str:
"""Basic sanitization."""
# Remove control characters
sanitized = re.sub(r'[\x00-\x1F\x7F]', '', user_input)
return sanitized.strip()
```
सत्यापन चेकलिस्ट
- आवेदन सीमा पर सत्यापन
- इनपुट लंबाई जांचें
- इंजेक्शन के लिए पैटर्न मिलान
- एन्कोडिंग प्रयासों का पता लगाएं
- प्रकार सत्यापन
- प्रसंस्करण से पहले स्वच्छता
- लॉग सत्यापन विफलताएं
- दर सीमित करना
आउटपुट हैंडलिंग
LLM outputs must be validated and sanitized before being presented to users or passed to other systems.
सामग्री फ़िल्टरिंग
- संवेदनशील डेटा एक्सपोज़र की जांच करें
- सत्यापित करें कि कोई सिस्टम संकेत लीक नहीं हुआ है
- आउटपुट प्रारूप को मान्य करें
- इंजेक्शन सामग्री की जाँच करें
वैध सामग्री को दबा सकते हैं
- डेटा विषाक्तता और मॉडल चोरी के जोखिमों का मूल्यांकन करें
- संवेदनशील डेटा को छुपाएं या संशोधित करें
- लॉग पीआईआई एक्सपोजर प्रयास
- पता चलने पर यूजर नोटिफिकेशन
प्रारूप सत्यापन
- JSON आउटपुट को मान्य करें
- अपेक्षित संरचना की जांच करें
- अनुमत मूल्यों को सत्यापित करें
- यदि लागू हो तो HTML को साफ करें
आउटपुट हैंडलर उदाहरण
```python
import re
import json
class OutputHandler:
PII_PATTERNS = {
"ssn": r"\b\d{3}-\d{2}-\d{4}\b",
"email": r"\b[\w.-]+@[\w.-]+\.\w+\b",
"phone": r"\b\d{3}[-.]?\d{3}[-.]?\d{4}\b",
}
def process_output(self, raw_output: str) -> dict:
"""Process and validate LLM output."""
result = {
"original": raw_output,
"cleaned": raw_output,
"warnings": [],
"blocked": False
}
# Check for system prompt leakage
if "system prompt" in raw_output.lower():
result["warnings"].append("System prompt reference detected")
# Scan for PII
for pii_type, pattern in self.PII_PATTERNS.items():
matches = re.findall(pattern, raw_output)
if matches:
result["warnings"].append(f"{pii_type} detected in output")
# Optionally mask
result["cleaned"] = re.sub(pattern, "[REDACTED]", result["cleaned"])
return result
```
एपीआई सुरक्षा
प्रमाणीकरण
- मजबूत एपीआई कुंजी प्रबंधन का उपयोग करें
- जहां संभव हो वहां ओएथ 2.0 लागू करें
- जेडब्ल्यूटी टोकन सत्यापन
- एपीआई कुंजी रोटेशन
प्राधिकरण
- भूमिका-आधारित पहुंच नियंत्रण (आरबीएसी)
- एपीआई कुंजी स्कोपिंग
- प्रति-उपयोगकर्ता दर सीमा
- Tenant isolation
नए पहचान नियमों के साथ निगरानी बढ़ाएँ
- टोकन-आधारित सीमाएं
- अनुरोध-आधारित सीमाएँ
- लागत नियंत्रण
- Tiered throttling
एपीआई सुरक्षा चेकलिस्ट
- केवल HTTPS का उपयोग करें
- दर सीमित करना
- सभी इनपुट को मान्य करना
- सभी आउटपुट को साफ करें
- एपीआई कुंजियों का उपयोग करें, एम्बेडेड नहीं
- अनुरोध पर हस्ताक्षर लागू करें
- लॉग एपीआई एक्सेस
- सीओआरएस को ठीक से लागू करें
प्रमाणीकरण और प्राधिकरण
उपयोगकर्ता प्रमाणीकरण
- मजबूत पासवर्ड नीतियां
- एमएफए समर्थन
- सत्र प्रबंधन
- टोकन समाप्ति
एपीआई प्रमाणीकरण
- एपीआई कुंजी प्रबंधन
- ओएथ स्कोप
- जेडब्ल्यूटी सत्यापन
- कुंजी रोटेशन
प्राधिकरण
- आरबीएसी कार्यान्वयन
- अनुमति जांच
- संसाधन-स्तर पहुंच
- ऑडिट लॉगिंग
डेटा सुरक्षा
डेटा वर्गीकरण
- संवेदनशील डेटा की पहचान करें
- संवेदनशीलता के आधार पर वर्गीकृत करें
- श्रेणी के अनुसार नियंत्रण लागू करें
- नियमित ऑडिट
एन्क्रिप्शन
- ट्रांजिट में टीएलएस
- एईएस एट रेस्ट
- कुंजी प्रबंधन
- कुंजी रोटेशन
पीआईआई हैंडलिंग
- डिटेक्शन
- न्यूनीकरण
- सहमति प्रबंधन
- हटाने का अधिकार
लॉगिंग और मॉनिटरिंग
क्या लॉग करें
सुरक्षा घटनाएं
- प्रमाणीकरण प्रयास
- प्राधिकरण विफलताएँ
- दर सीमा पार हो गई
- संदिग्ध पैटर्न
एआई-विशिष्ट घटनाएं
- शीघ्र इंजेक्शन प्रयास
- सिस्टम शीघ्र पहुंच
- टूल इनवोकेशन
- एआई के माध्यम से डेटा एक्सेस
ऑपरेशनल इवेंट
- एपीआई कॉल
- त्रुटियां और अपवाद
- प्रदर्शन मेट्रिक्स
- लागत ट्रैकिंग
सर्वोत्तम प्रथाओं की निगरानी करना
- सुरक्षा घटनाओं के लिए वास्तविक समय की चेतावनी
- सुरक्षा मेट्रिक्स के लिए डैशबोर्ड
- स्वचालित विसंगति का पता लगाना
- एसआईईएम के साथ एकीकरण
- नियमित लॉग समीक्षा
- रिटेंशन नीतियां
सामान्य कमजोरियाँ
1. एआई सुविधाओं में आईडीओआर
जब AI संसाधनों तक पहुंचता है तो असुरक्षित प्रत्यक्ष वस्तु संदर्भ
उदाहरण
User asks AI to "read file X" and AI has access without proper authorization checks.
2। LLM के माध्यम से SSRF
सर्वर-साइड अनुरोध एआई टूल कॉल के माध्यम से जालसाजी
उदाहरण
आंतरिक सेवाओं के लिए अनुरोध करने के लिए एआई युक्तियाँ बताएं
3. प्रमाणीकरण बाईपास
एआई एंडपॉइंट के लिए कमजोर या अनुपलब्ध प्रमाणीकरण
उदाहरण
उचित प्रमाणीकरण जांच के बिना एआई एपीआई एंडपॉइंट।
4. वेक्टर डीबी एक्सपोज़र
संवेदनशील एम्बेडिंग के साथ असुरक्षित वेक्टर डेटाबेस
उदाहरण
एम्बेडेड संवेदनशील डेटा के साथ सार्वजनिक रूप से सुलभ वेक्टर डीबी
अनुपालन
GDPR (EU)
- प्रसंस्करण के लिए वैध आधार
- डेटा न्यूनीकरण
- पहुंच/हटाने का अधिकार
- डेटा पोर्टेबिलिटी
CCPA (California)
- जानने का अधिकार
- हटाने का अधिकार
- ऑप्ट-आउट करने का अधिकार
- गैर-भेदभाव
एआई-विशिष्ट
- ईयू एआई अधिनियम आवश्यकताएं
- पोनमॉन इंस्टीट्यूट सुरक्षा अध्ययन
- पारदर्शिता दायित्व
- मानव निरीक्षण