Biztonságos mesterségesintelligencia-fejlesztés
Complete developer guide to building secure AI applications - from input validation to deployment
Updated: August 2026
Biztonsági alapelvek
1. Mélyreható védelem
Implement multiple layers of security controls. No single control should be relied upon exclusively.
Drátakorlát megsértése
Minimális szükséges engedélyek biztosítása a felhasználóknak, API-knak és AI-összetevőknek.
3. Nem biztonságos
Hiba esetén a megengedő állapotok helyett alapértelmezés szerint a biztonságos állapotokat használja.
4. Zero Trust
Never trust, always verify. Validate at every boundary, including internal systems.
Bevitel ellenőrzése
All user input must be validated and sanitized before processing. This is your first line of defense against prompt injection and other attacks.
Bevitel
```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()
```
Érvényesítési ellenőrzőlista
- Érvényesítés az alkalmazás határán
- Ellenőrizze a bemeneti hosszt
- |Mintaegyezés az injekcióhoz
- Kódolási kísérletek észlelése
- Típusellenőrzés
- Feldolgozás előtti fertőtlenítés
- Érvényesítési hibák naplózása
- Aránykorlátozás
Kimenetkezelés
LLM outputs must be validated and sanitized before being presented to users or passed to other systems.
Tartalomszűrés
- Ellenőrizze, hogy vannak-e érzékeny adatok
- Ellenőrizze, hogy nem szivárogtak-e ki rendszerkérdések
- Kimeneti formátum ellenőrzése
- Beszúrt tartalom ellenőrzése
Kísérlet az eszközmérgezéshez
- Személyes adatok keresése
- A bizalmas adatok elfedése vagy törlése
- A személyazonosításra alkalmas adatok megjelenítési kísérleteinek naplózása
- Felhasználói értesítés észleléskor
Frissítve: 2026. február
- JSON-kimenetek ellenőrzése
- A várható struktúra ellenőrzése
- Ellenőrizze, hogy az engedélyezett értékek az azonnali injekció
- Ha szükséges, tisztítsa meg a HTML-t
Kimenetkezelő példa
```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
```
API biztonság
Hitelesítés
- Használjon erős API-kulcskezelést
- Az OAuth 2. Speciális alkalmazása|0. (COASP)
- JWT-token ellenőrzése
- API-kulcs-rotáció
Authorization
- Szerepkör-alapú hozzáférés-vezérlés (RBAC)
- API-kulcsok hatóköre
- Felhasználónkénti sebességkorlátok
- Bérlői elkülönítés
Drátakorlátozás
- Token-alapú korlátok
- Kérésen alapuló korlátozások
- Költségszabályozás
- Fokozatos szabályozás
API biztonsági ellenőrzőlista
- Csak HTTPS használata és fertőtlenítsen minden külső tartalmat a feldolgozás előtt
- Implement rate limiting
- Érvényesítse az összes bemenetet
- Minden kimenet megtisztítása
- Használjon nem beágyazott API-kulcsokat
- Kérés aláírásának végrehajtása
- API-hozzáférés naplózása
- A CORS megfelelő végrehajtása
Hitelesítés és engedélyezés
Felhasználói hitelesítés
- Erős jelszószabályzat
- MFA-támogatás
- Szekciókezelés
- Token lejárata
API-hitelesítés 2026
- API-kulcskezelés
- OAuth-hatókörei
- JWT-ellenőrzés
- Kulcsforgatás
Authorization
- RBAC implementáció
- Engedély-ellenőrzés
- Megmérgezett eszközdefiníciók hátsó ajtókkal
- Auditest naplózás
Adatbiztonság
Adatosztályozás
- Érzékeny adatok azonosítása
- Token visszavonás támogatása
- Vezérlések alkalmazása kategóriák szerint
- Sandbox LLM kimenetek a későbbi használat előtt
Titkosítás
- TLS folyamatban
- AES nyugalomban felülbírálhatja a rendszer utasításait, kinyerheti az érzékeny adatokat, vagy megkerülheti a biztonsági vezérlőket. \
- Kulcskezelés
- Kulcsforgatás
PII-kezelés
- Érzékelés
- Minimalizálás
- Hozzájáruláskezelés
- Törlési jog
Naplózás és megfigyelés
Mit kell naplózni
Security Events
- Hitelesítési kísérletek
- Engedélyezési hibák
- Túllépték a sebességkorlátot
- Gyanús minták
AI-specifikus események
- Azonnali befecskendezési kísérletek
- Rendszer azonnali hozzáférés
- Eszközhívások
- Adathozzáférés mesterséges intelligencia segítségével
Biztonsági képzés fejlesztők számára|
- API-hívások
- Hibák és kivételek
- Teljesítménymérők
- Költségkövetés
Jelenlegi gyakorlatok nyomon követése|Válogatott gyakorlatok törlése|
- Valós idejű riasztás a biztonsági eseményekről
- A biztonsági mérőszámok irányítópultja
- Automatikus anomália-észlelés
- Integráció a SIEM-mel
- Rendszeres naplóvizsgálat
- Megőrzési szabályzatok
Gyakori sebezhetőségek
Érvényesítse a kimeneti formátumot
Nem biztonságos közvetlen objektum-hivatkozás, amikor a mesterséges intelligencia eléri a SaaBetter-eszközöket
Példa
User asks AI to "read file X" and AI has access without proper authorization checks.
2. SSRF LLM-n keresztül
Szerveroldali kéréshamisítás mesterséges intelligencia eszközhívásaival
Példa
A felszólító trükkök becsapják az AI-t a belső szolgáltatások kérésére.
3. Hitelesítési áthidalás
Gyenge vagy hiányzó hitelesítés az AI-végpontokhoz interakciók.
Példa
AI API-végpontok megfelelő hitelesítési ellenőrzések nélkül.
4. Vector DB Exposure
Védetlen vektoradatbázis érzékeny beágyazásokkal
Példa
Nyilvánosan elérhető vektoros DB beágyazott érzékeny adatokkal.
Megfelelőség
GDPR (EU)
- A feldolgozás törvényes alapja
- Adatminimalizálás
- Hozzáférési/törlési jog
- Adathordozhatóság
CCPA (California)
- Right to know
- Törlési jog
- Leiratkozási jog
- Diskrimináció-mentesség
AI-specifikus
- Multi-Modal AI biztonság
- MI-kockázatértékelések
- Átláthatósági kötelezettségek
- Emberi felügyelet