Suojattu tekoälykehitys
Complete developer guide to building secure AI applications - from input validation to deployment
Updated: August 2026
Suojausperiaatteet
1. Puolustus perusteellisesti
Implement multiple layers of security controls. No single control should be relied upon exclusively.
Nopeusrajoituksen rikkomukset
Anna käyttäjille, API:ille ja tekoälykomponenteille tarvittavat vähimmäisoikeudet.
3. Fail Secure
Jos tapahtuu virheitä, käytä oletusarvoisesti suojattuja tiloja sallivien tilojen sijaan.
4. Zero Trust
Never trust, always verify. Validate at every boundary, including internal systems.
Syötteen vahvistus
All user input must be validated and sanitized before processing. This is your first line of defense against prompt injection and other attacks.
Syötteen vahvistusluokka
```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()
```
Vahvistuksen tarkistuslista
- Tarkista sovelluksen rajalla
- Tarkista syötteen pituus
- Pattern match for injection
- Tunnista koodausyritykset
- Tyyppien vahvistus
- Sennisoi ennen käsittelyä
- Loki vahvistusvirheet
- Nopeuden rajoitus
Tulosteiden käsittely
LLM outputs must be validated and sanitized before being presented to users or passed to other systems.
Sisällön suodatus
- Tarkista arkaluontoisten tietojen altistuminen
- Varmista, ettei järjestelmäkehotteita ole vuotanut
- Tarkista tulostusmuoto
- Tarkista lisätty sisältö
PII-tunnistus
- Skannaa henkilökohtaisia tietoja
- Peitä tai poista arkaluontoiset tiedot
- Kirjaa henkilökohtaisten tunnistetietojen altistumisyritykset
- Käyttäjälle ilmoitus, kun se havaitaan|:||
Muotoilun vahvistus
- Validoi JSON-lähdöt
- Tarkista odotettu rakenne
- Tarkista sallitut arvot
- Puhdista HTML tarvittaessa
Tulostenkäsittelyesimerkki
```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-suojaus
Todennus
- Käytä vahvaa API-avainten hallintaa
- Ota käyttöön OAuth 2.0-asetuksissa. (COASP)
- JWT-tunnuksen validointi
- API-avainten kierto
Authorization
- Roolipohjainen kulunvalvonta (RBAC)
- API-avaimen kattavuus
- Käyttäjäkohtaiset nopeusrajoitukset
- Vuokralaisen eristäminen
Rate Limiting
- Token-pohjaiset rajoitukset
- Pyyntöpohjaiset rajoitukset
- Kustannusten hallinta
- porrastettu rajoitus
API-suojauksen tarkistuslista
- Käytä vain HTTPS-protokollaa
- Toteuta nopeuden rajoitus
- Vahvista kaikki syötteet
- Poista kaikki tuotokset
- Käytä API-avaimia, ei upotettuja
- Ota käyttöön pyynnön allekirjoitus
- Loki API-käyttö
- Ota CORS käyttöön oikein
Todennus ja valtuutus
Käyttäjän todennus
- Vahvat salasanakäytännöt
- MFA-tuki
- Istunnon hallinta
- Tunnusten vanheneminen
Skannausresurssit
- API-avainten hallinta
- OAuth-laajuudet
- JWT-vahvistus
- Avainten kierto
Authorization
- RBAC-toteutus
- Alkuperäisiä haavoittuvuuksia ei voi enää hyödyntää
- Myrkylliset työkalumäärittelyt takaovilla
- |Tarkista|
Data Security
Tietojen luokittelu
- Tunnista arkaluontoiset tiedot
- Luokittelu|C-hakuluettelo| raportoitu tietosuojaloukkaus (2024)
- Käytä ohjaimia luokittain
- Sandbox LLM -lähdöt ennen jatkokäyttöä
Salaus
- TLS siirretty
- AES levossa
- Avainhallinta
- Avainten kierto
PII-käsittely
- Havaitseminen
- Minimointi
- Suostumusten hallinta
- Oikeus poistaa
Kirjaus ja seuranta
Mitä kirjata
Turvatapahtumat
- Todennusyritykset
- Valtuutusvirheet
- Nopeusraja ylitetty
- Epäilyttävät kuviot
AI-spesifiset tapahtumat
- Nopea injektioyritykset
- Järjestelmän nopea käyttö
- Työkalukutsut
- Tietojen käyttö tekoälyn kautta
Operational Events
- API-kutsut
- Virheet ja poikkeukset
- Suorituskykymittarit
- Kustannusten seuranta
|Parhaiden käytäntöjen seuranta|
- Reaaliaikainen varoitus tietoturvatapahtumista
- Suojausmittareiden hallintapaneeli
- Automaattinen poikkeamien havaitseminen
- Integraatio SIEM:n kanssa
- Säännöllinen lokitarkistus
- Säilytyskäytännöt
Yleiset haavoittuvuudet
Vahvista tulostusmuoto
Turvallinen suora objektiviittaus, kun tekoäly käyttää resursseja
Esimerkki
User asks AI to "read file X" and AI has access without proper authorization checks.
2. SSRF LLM:n kautta
Palvelinpuolen pyyntöväärennös tekoälytyökalukutsujen avulla
Esimerkki
Tekoälytemppuja tekemään pyyntöjä sisäisille palveluille.
3. Todennuksen ohitus
Heikko tai puuttuu AI-päätepisteiden todennus
Esimerkki
AI-sovellusliittymän päätepisteet ilman asianmukaisia todennustarkistuksia.
4. Vector DB Exposure
Suojaamaton vektoritietokanta, jossa on herkät upotukset
Esimerkki
Julkinen vektoritietokanta, jossa on upotettuja arkaluontoisia tietoja.
Compliance
GDPR (EU)
- Lakillinen peruste käsittelylle
- Tietojen minimointi
- Oikeus käyttää/poistaa
- Tietojen siirrettävyys
CCPA (California)
- Oikeus tietää
- Oikeus poistaa
- Oikeus kieltäytyä
- LLM-tulosteiden validointi, puhdistaminen tai oikea käsittely epäonnistuminen ennen niiden välittämistä jatkojärjestelmille tai käyttäjille.
AI-kohtainen
- |EU:n XAI-lain vaatimukset| sisältö
- Tekoälyriskinarvioinnit
- Läpinäkyvyysvelvollisuudet
- Ihminen valvonta