Dezvoltare AI securizată
Complete developer guide to building secure AI applications - from input validation to deployment
Updated: August 2026
Principii de securitate
1. Apărare în profunzime
Implement multiple layers of security controls. No single control should be relied upon exclusively.
2 Privilegiul minim
Acordați permisiunile minime necesare utilizatorilor, API-urilor și componentelor AI.
3. Fail Secure
Când apar erori, securizează în mod implicit stările mai degrabă decât cele permisive.
4. Zero Trust
Never trust, always verify. Validate at every boundary, including internal systems.
Validare de intrare
All user input must be validated and sanitized before processing. This is your first line of defense against prompt injection and other attacks.
Mecanisme de validare a intrărilor de securitate
```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()
```
Lista de verificare pentru validare
- Validați la limita aplicației
- Verificați lungimea intrării
- Potrivirea modelului pentru mai multe injectare||
- Detectarea încercărilor de codificare
- Validarea tipului
- Sanitificare înainte de procesare
- Eșecurile de validare a jurnalului
- Limitarea ratei
Manevrarea ieșirii
LLM outputs must be validated and sanitized before being presented to users or passed to other systems.
Filtrarea conținutului
- Verificați expunerea la date sensibile
- Verificați că nu au fost scurse solicitări de sistem
- Validați formatul de ieșire
- Verificați conținutul injectat
Încercare de otrăvire a sculei
- Scanați pentru informații personale
- Mascați sau redactați datele sensibile
- Înregistrați încercările de expunere PII
- Notificarea utilizatorului când este detectată|:||Sanitizarea intrării
Validarea formatului
- Validați ieșirile JSON
- Verificați structura așteptată
- Verificarea valorilor permise
- Sanitizează HTML, dacă este cazul
Exemplu de gestionare a ieșirii
```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
```
Securitate API
Autentificare
- Folosiți o gestionare puternică a cheilor API
- Implementați setările OAuth acolo unde este posibil|| AI (COASP)
- Validarea jetonului JWT
- Rotația cheii API
Autorizare
- Controlul accesului bazat pe roluri (RBAC)
- Scopul cheii API
- Limite de rată per utilizator
- Izolarea chiriașilor
Limitarea ratei
- Limite bazate pe token
- Limite bazate pe cereri
- Controlul costurilor
- Terred throttling
Lista de verificare a securității API
- Utilizați numai HTTPS
- Implementați limitarea ratei
- Validați toate intrările
- Dezinfectați toate ieșirile
- Folosiți chei API, nu încorporate
- Implementați semnarea cererilor
- Acces API de jurnal
- Implementați corect CORS
Autentificare și autorizare
Autentificare utilizator
- Politicile de parole puternice
- Suport MFA
- Gestionarea sesiunii
- Expirare token
Autentificare API
- Gestionarea cheilor API
- Scoperii OAuth
- Validare JWT
- Rotația cheilor
Autorizare
- Implementare RBAC
- Verificări de permisiuni
- Acces la nivel de resursă
- Înregistrare de auditare
Securitatea datelor
Clasificarea datelor
- Identificarea datelor sensibile
- Clasificare în funcție de sensibilitate
- Aplicați controale în funcție de categorie
- Ieșirile LLM de tip Sandbox înainte de utilizarea în aval
Criptare
- TLS în tranzit
- AES în repaus
- Managementul cheilor
- Rotația cheilor
Gestionarea IPI
- Detecție
- Minimizare
- Gestionarea consimțământului
- Dreptul la ștergere
Înregistrare și monitorizare
Ce să vă înregistrați
Evenimente de securitate
- Încercări de autentificare
- Eșecuri de autorizare
- Limita de rată depășită
- Modele suspecte
Evenimente specifice AI
- Încercări de injectare promptă
- Acces prompt la sistem
- Invocări de instrumente
- Accesul la date prin AI
Accesul prompt al sistemului de acces și restricții operaționale
- Apeluri API
- Erori și excepții
- Metrici de performanță
- Urmărirea costurilor
Monitorizarea celor mai bune practici
- Alerta în timp real pentru evenimente de securitate
- Tabloul de bord pentru valorile de securitate
- Detecția automată a anomaliilor
- Integrare cu SIEM
- Revizuire regulată a jurnalului
- Politicile de reținere
Vulnerabilități comune
1. IDOR în Caracteristici AI
Referință nesigură a obiectelor directe când AI accesează resurse
Exemplu
User asks AI to "read file X" and AI has access without proper authorization checks.
2. SSRF prin LLM
Falsificarea cererilor pe server prin apeluri de instrumente AI
Exemplu
Trucurile prompte AI pentru a face cereri către serviciile interne.
3. Ocolire autentificare
Autentificare slabă sau lipsă pentru punctele finale AI
Exemplu
Punctele finale ale API-ului AI fără verificări corespunzătoare de autentificare.
4. Vector DB Exposure
Bază de date vectorială neprotejată cu încorporare sensibile
Exemplu
date sensibile încorporate.
Conformitate
GDPR (EU)
- Temei legale pentru procesare
- Minimizarea datelor
- Dreptul de acces/ștergere
- Portabilitatea datelor
CCPA (California)
- Dreptul de a cunoaște
- Dreptul de ștergere
- Dreptul la renunțare
- Nediscriminare, normalizare,| sau gestionați în mod corespunzător ieșirile LLM înainte de a le transmite sistemelor sau utilizatorilor din aval.
Specific AI||Priviliu AI pentru cel mai mic tranzit de date||TLS acțiuni
- |EU store in XmpSS în web. continut
- Evaluări ale riscurilor AI
- Obligații de transparență
- Supravghere umană