Ασφαλής ανάπτυξη τεχνητής νοημοσύνης
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.
Επικύρωση εξόδων LLM
Εκχωρήστε ελάχιστα απαραίτητα δικαιώματα σε χρήστες, API και στοιχεία τεχνητής νοημοσύνης.
3. Fail Secure
Όταν παρουσιάζονται σφάλματα, από προεπιλογή είναι ασφαλείς καταστάσεις αντί για επιτρεπτές.
4. Zero Trust
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.
Επικύρωση εισόδου|Μηχανισμός επικύρωσης | AI Adoption Survey 2025
```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()
```
Λίστα ελέγχου επικύρωσης
- Επικύρωση στο όριο της εφαρμογής
- Έλεγχος μήκους εισόδου
- Pattern match for injection
- Εντοπισμός προσπαθειών κωδικοποίησης
- Επικύρωση τύπου
- Λανθασμένη επικύρωση εισόδου, έλλειψη φιλτραρίσματος εξόδου
- Αποτυχίες επικύρωσης αρχείων καταγραφής
- Περιορισμός ρυθμού
Χειρισμός εξόδου
LLM outputs must be validated and sanitized before being presented to users or passed to other systems.
Περιεχόμενο|Φιλτράρισμα δεδομένων|Εισαγωγή δεδομένων|
- Έλεγχος για ευαίσθητα δεδομένα PI
- Επαληθεύστε ότι δεν έχουν διαρρεύσει μηνύματα συστήματος
- Επικύρωση μορφής εξόδου Περισσότερα||Πηγή αντιστοίχισης επανάληψης ένεσης|
- Έλεγχος για περιεχόμενο έγχυσης
Φάση 1: Αναγνώριση & Διαλογή (0-30 λεπτά)
- Σάρωση για προσωπικές πληροφορίες
- Απόκρυψη ή διόρθωση ευαίσθητων δεδομένων
- Προσπάθειες έκθεσης PII αρχείου καταγραφής
- Ειδοποίηση χρήστη κατά την ανίχνευση
Διάβαση διαδρομής: LLM αποκάλυψη ή πρόσβαση σε μη εξουσιοδοτημένα μονοπάτια
- Επικύρωση εξόδων 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
```
Ασφάλεια API
Έλεγχος ταυτότητας
- Χρήση ισχυρής διαχείρισης κλειδιών API
- Ειδίκευση στο επιθετικό AI (COASP)
- Επικύρωση διακριτικού JWT
- Περιστροφή πλήκτρων API
Εξουσιοδότηση
- Έλεγχος πρόσβασης βάσει ρόλων (RBAC)
- Εύρος κλειδιού API
- Όρια χρέωσης ανά χρήστη
- Απομόνωση ενοικιαστή
Περιορισμός ποσοστού
- Όρια που βασίζονται σε διακριτικά
- Όρια βάσει αιτημάτων
- Έλεγχοι κόστους
- Σε επίπεδο περιορισμό
Λίστα ελέγχου ασφάλειας API
- Χρησιμοποιήστε μόνο HTTPS
- Επαλήθευση προέλευσης διακομιστή και υπογραφών
- Επικύρωση όλων των εισόδων
- Απολύμανση όλων των εξόδων
- Χρησιμοποιήστε κλειδιά API, μη ενσωματωμένα
- Εφαρμογή υπογραφής αιτήματος
- Πρόσβαση API καταγραφής
- Εφαρμογή CORS σωστά
Επαλήθευση ταυτότητας και εξουσιοδότηση
Επαλήθευση χρήστη
- Πολιτικές ισχυρών κωδικών πρόσβασης
- Υποστήριξη MFA
- Διαχείριση συνεδρίας
- Λήξη διακριτικού
API S Authentication
- API key management
- Πεδία OAuth
- JWT επικύρωση
- Εναλλαγή κλειδιού
Εξουσιοδότηση
- Εφαρμογή RBAC
- Οι αρχικές ευπάθειες δεν είναι πλέον εκμεταλλεύσιμες
- Πρόσβαση σε επίπεδο πόρων
- Καταγραφή ελέγχου
Ασφάλεια δεδομένων
Ταξινόμηση δεδομένων
- Προσδιορισμός ευαίσθητων δεδομένων
- Αναφέρθηκαν παραβιάσεις απορρήτου Chatbot (2024)
- Εφαρμογή στοιχείων ελέγχου ανά κατηγορία
- Έξοδοι Sandbox LLM πριν από τη χρήση
Κρυπτογράφηση
- TLS κατά τη μεταφορά
- Το AES σε κατάσταση ηρεμίας
- Διαχείριση κλειδιών
- Εναλλαγή κλειδιού
Χειρισμός PII
- Ανίχνευση
- Ελαχιστοποίηση
- Διαχείριση συναίνεσης
- Δικαίωμα διαγραφής
Καταγραφή και παρακολούθηση
Τι να καταγράψετε
Συμβάντα ασφαλείας
- Προσπάθειες ελέγχου ταυτότητας
- Αποτυχίες λειτουργίας εξουσιοδότησης
- Υπέρβαση του ορίου ποσοστού
- Ύποπτα μοτίβα
Ειδικά συμβάντα AI
- Προώθηση απόπειρες έγχυσης
- Άμεση πρόσβαση στο σύστημα
- Επικλήσεις εργαλείων
- Πρόσβαση σε δεδομένα μέσω AI
Λειτουργικά συμβάντα
- Κλήσεις API
- Σφάλματα και εξαιρέσεις
- Μετρήσεις απόδοσης
- Παρακολούθηση κόστους
Βέλτιστες πρακτικές επικύρωσης|Επιλογή εγγράφων|
- Ειδοποίηση σε πραγματικό χρόνο για συμβάντα ασφαλείας
- Πίνακας ελέγχου για μετρήσεις ασφαλείας
- Αυτόματη ανίχνευση ανωμαλιών
- Ενσωμάτωση με το SIEM
- Τακτική αναθεώρηση αρχείου καταγραφής
- Πολιτικές διατήρησης
Κοινά τρωτά σημεία
1. IDOR σε Χαρακτηριστικά AI
Ασφαλής αναφορά άμεσου αντικειμένου όταν το AI έχει πρόσβαση σε πόρους
Παράδειγμα
User asks AI to "read file X" and AI has access without proper authorization checks.
2. SSRF μέσω LLM
Εργαλείο ασφαλείας Gartner τελικά σημεία:
Παράδειγμα
Τέχνη προτροπής για την υποβολή αιτημάτων σε εσωτερικές υπηρεσίες.
3. Παράκαμψη ελέγχου ταυτότητας
Αδύναμη ή λείπει έλεγχος ταυτότητας για τερματικά σημεία τεχνητής νοημοσύνης
Παράδειγμα
Τελικά σημεία API AI χωρίς κατάλληλους ελέγχους ταυτότητας.
Συμφωνώ για τους κανόνες δέσμευσης και διαδικασιών κλιμάκωσης
Μη προστατευμένη διανυσματική βάση δεδομένων με ευαίσθητες ενσωματώσεις
Παράδειγμα
Δεδομένα πελατών που εκτίθενται μέσω chatbots AI
Συμμόρφωση
GDPR (EU)
- Νόμιμη βάση για την επεξεργασία
- Εμμονή περιόδου λειτουργίας
- Δικαίωμα πρόσβασης/διαγραφής
- Φορητότητα δεδομένων
CCPA (California)
- Δικαίωμα γνώσης
- Δικαίωμα διαγραφής
- Δικαίωμα εξαίρεσης
- Μη διάκριση
Είσοδος AI-Specific|privile data
- Πολυτροπική ασφάλεια AI
- Αξιολογήσεις κινδύνου AI
- Διατήρηση όλων των αρχείων καταγραφής πρόσβασης για εγκληματολογική ανάλυση
- Ανθρώπινη επίβλεψη